Instantiate(GameObject obj)
Original 게임오브젝트를 복제해서 생성
복제되는 오브젝트의 모든 컴포넌트 정보가 원본과 완전히 동일
Instantiate(GameObject obj, Vector3 position, Quaternion rotation)
생성된 복제본의 위치를 position
회전을 rotation으로 설정
Quaternion
3개의 벡터 요소와 하나의 스칼라 요소로 구성(4개의 -1 ~ 1 사이의 값)
장점: 연산속도가 빠르고, 짐벌락 현상이 발생하지 않음
단점: 우리가 알고있는 0 ~ 360의 각도가 아니기 때문에 특정 각도를 표현하기 힘들다.
Euler
3차원의 3개 각도를 표현하기 위해 사용하는 3x3 크기의 행렬
회전 순서에 따라 결과가 달라지기 때문에 회전 순서에 주의해야 함(유니티에서는 따로 계산할 일이 없기 때문에 걱정 놉)
장점: 우리가 알고 있는 0 ~ 360의 각도를 표현할 수 있다
단점: 지속적으로 회전을 하는 연산을 할 때 쿼터니온보다 연산속도가 느리고, 짐벌락 현상이 발생할 수 있다
짐벌락 현상?
세 개의 축이 서로 종속적인 관계를 가지고 있기 때문에 발생하는 문제로 회전 연산 도중 축이 하나 사라져 3차원의 오브젝트가 일그러지는 현상
transform.rotation 게임오브젝트의 쿼터니온 회전 정보
transform.localScale 게임오브젝트의 오일러 회전 정보
Inspector View에 보이는 Transform rotation은 개발자 편의르 위해 오일러로 보여줌
Quaternion q = Quaternion.Euler(0, 0, 0);
오일러 회전 정보를 입력해서 쿼터니온 회전 값으로 변경
'Study > Unity' 카테고리의 다른 글
Unity SerializeField (0) | 2021.07.15 |
---|---|
Unity Collision2D (0) | 2021.07.15 |
[Unity Component] Rigidbody2D Collider2D (0) | 2021.07.14 |
Unity Time.deltaTime (0) | 2021.07.14 |
Unity 이벤트 함수 (0) | 2021.07.13 |