728x90
1.오브젝트 회전(EulerAngle / Quaternion)
오일러 앵글은 X,Y,Z축을 기준으로 회전
쿼터니언은 X,Y,Z 축에 상관 없이 내가 회전시키고 싶은 기준 축을 잡아서 돌림(4원수)
Vector가 덧셈,뺄샘 / Quaternion은 곱셈
Vector의 회전 방법 = Quaternion * Vector
// 총알을 360도 발사하는 코드
void ShootBullet()
{
int deltaAngle = 360 / bulletCount;
Vector3 dir = Vector3.up;
for(int i = 0; i < bulletCount; i++)
{
GameObject bullet = Instantiate(bulletFactory);
// ***발사 방향을 정하는 여러가지 방법***
bullet.transform.eulerAngles = new Vector3(0, 0, deltaAngle * i);
bullet.transform.rotation = Quaternion.Euler(0, 0, deltaAngle * i);
bullet.transform.Rotate(0, 0, deltaAngle * i);
dir = Quaternion.Euler(0, 0, deltaAngle) * dir;
// ************************************
bullet.transform.position = transform.position;
}
}
Quaternion.fromtorotation / Quaternion.inverse
짐벌락
2. Vector3의 내적과 외적
3. 삼각함수를 이용한 플레이어 이동 및 미사일 발사
728x90
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
[Unity] GameManager 클래스 선언과 .NET 연관성, enum 타입 (0) | 2022.07.19 |
---|---|
[Unity] 2D 게임 플레이 영역 제한하기, Rendering Pipeline의 좌표 공간에 대한 이해(WorldToViewport / ViewportToWorld) (0) | 2022.07.19 |
[Unity] File 저장과 PlayerPrefs (0) | 2022.07.15 |
[Unity/C#] Call by Value / Call by Reference 비교, StringBuilder 사용 이유 (0) | 2022.07.13 |
[Unity] 유니티 특수 폴더 [Resources]의 역할과 동적 파일 Resources.Load 방법 (0) | 2022.07.08 |