[Unity 기초 - C#] Instantiate() 게임 오브젝트 생성 함수(Quaternion)
기본 개념, 용어도 익히지 않은 채로 무작정 유니티로 게임 개발 따라하기를 하고 있다.
개념부터 잡고 가기엔 너무 지칠 것 같아서 무작정 진행하면서 새로운 모르는 개념들을 하나씩 정리해보려고 한다.
# Instantiate() 게임 오브젝트 생성 함수 및 Quaternion
# Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
: 오브젝트나 컴포넌트를 손쉽게 복제하여 사용할 수 있게 해주는 함수
즉, 특정 Object를 clone하여 특정 위치에 특정 회전된 상태로 생성할 수 있다.
# Quaternion(사원수)
: 쿼터니온, 사원수 다 생소한 표현인데, 간단히 말하면 4개의 -1~1 사이의 값으로 rotation을 표현할 수 있다.
3개의 벡터 요소와 1개의 스칼라 값으로 구성된다.
사실 쿼터니온은 익숙하지 않은 개념이라 우리에게 좀 더 익숙한 오일러(Euler) 각도를 사용하여 표현한 뒤,
쿼터니온으로 변환하여 사용할 수도 있다.
Quaternion q = Quaternion.Euler(0, 45, 90); // 각 각도는 0~360도까지 표현 가능
그러나 Euler 각도가 직관적이기는 하나,
3개의 축이 서로 종속적인 관계를 가지고 있어서 회전 연산 도중에 한 축 값이 사라져
오브젝트가 제대로 표현되지 못하는 짐벌락 문제가 발생할 수 있다.
※ Quaternion.identity : '회전 없음'을 나타냄
[매뉴얼 참고] https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
Unity - Scripting API: Object.Instantiate
This function makes a copy of an object in a similar way to the Duplicate command in the editor. If you are cloning a GameObject you can specify its position and rotation (these default to the original GameObject's position and rotation otherwise). If you
docs.unity3d.com
※ 이 포스팅은 인프런 유니티 강좌(따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02)를 따라 실습하면서 생소한 개념에 대해 정리하는 중입니다.
초보자가 정리하는 글이여서 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하겠습니다:)