Notice
Recent Posts
Recent Comments
Link
박민혁의 개발
플레이어주변을돌아가는 투사체 본문
public class A3107 : MonoBehaviour
{
// Start is called before the first frame update
int objSize;// 돌아가는 투사체 갯수
public float circleR=1f; //반지름
public float deg; //각도
public float objSpeed= 20f; //원운동 속도
public GameObject[] target;
private void Start()
{
objSize = target.Length;
}
void Update()
{
deg += Time.deltaTime * objSpeed;
if (deg < 360)
{
for (int i = 0; i < objSize; i++)
{
var rad = Mathf.Deg2Rad * (deg + (i * (360 / objSize)));
var x = circleR * Mathf.Sin(rad);
var y = circleR * Mathf.Cos(rad);
target[i].transform.position = transform.position + new Vector3(x, y);
target[i].transform.rotation = Quaternion.Euler(0, 0, (deg + (i * (360 / objSize))) * -1);
}
}
else
{
deg = 0;
}
}
}
위와 같은 식으로 사용
불이 1개 처럼 보이지만 같은위치에 3개가 겹쳐있다 코드가 타겟 오브젝트 갯수만큼 나눠서 위치값을 조절해주기에 초기 위치값을 바꿀필요가 없다 플레이어안에 넣어줄시 나이스 나이스
gif로 올리면 좋겠지만 생략한다 위 코드 로테이션 부분이 가운데로 보게 위치를 바꿔줌
'TIL' 카테고리의 다른 글
스크립터블 오브젝트를 사용하기 (0) | 2023.11.06 |
---|---|
유니티 일정 범위 대상에게 일정 간격으로 상호작용하기 (1) | 2023.11.03 |
유니티 2d 점프 시 코드 한줄로 바닥 체크 (1) | 2023.11.01 |
내 유니티에서 캐릭터는 점프하면 왜?? 벽에 걸리는가? (1) | 2023.10.31 |
중복 없는 랜덤 뽑기 (1) | 2023.10.30 |