transform.position
이 함수를 이용해서 오브젝트를 이동시킬 수 있다.
transform.position = transform.position + new Vector3(1, 0, 0) * 1;
위의 코드는 새로운 위치 = 현재 위치 + (방향 * 속도)라는 것을 의미한다. 그러면 이 오브젝트는 1만큼의 속도로 x축에 이동하게 된다.
코드에 작성한 것과 같이 1의 속도를 가지고 x축 방향으로 1만큼만 움직인 뒤 더는 움직이지 않는다.
Time.deltaTime
이전 Update() 종료부터 다음 Update() 시작까지의 시간으로, 즉 업데이트 사이의 시간을 말한다. 사양이 좋을수록 Update()의 호출 횟수가 많아진다. 1분(60초)를 기준으로 계산하기 때문에 1분에 Update()가 60번 호출된다면 Time.deltaTime은 1이고 컴퓨터의 사양이 좋을수록 이 값이 낮아진다. 그러면 캐릭터의 움직임이 끊김없이 부드럽게 연결된다.
Input.GetAxisRaw
유니티에 미리 설정된 단축키를 이용하는 함수
edit - project settings - input manager에서 위아래양옆 총 4가지의 단축키를 설정할 수 있음.
Rigidbody2D 컴포넌트
2차원 공간에서 오브젝트의 물리와 중력을 담당하는 컴포넌트이다.
Collider2D 컴포넌트
2차원 공간에서 오브젝트의 충돌 범위를 나타내는 컴포넌트로, 충돌 범위의 생김새나 특징에 따라 이름을 명명한다.
서로 다른 두 오브젝트가 충돌하기 위해서는 두 오브젝트 모두 충돌 범위를 처리하는 Collider2D 컴포넌트를 가지고 있어야 하고, 둘 중 하나 이상의 오브젝트가 물리 처리를 담당하는 Rigidbody2D 컴포넌트를 가지고 있어야 한다.
OnCollision2D 충돌 이벤트 함수
물리적인 충돌과 충돌 이벤트 함수가 둘 다 호출되는 이벤트 함수
게임 오브젝트의 회전 정도를 나타내고 연산하는 방식에는 오일러와 쿼터니온이 있다.
Euler 오일러
3차원의 3개 각도를 표현하기 위해 사용하는 3x3 크기의 행렬
회전 순서에 따라 결과가 달라진다! 그러므로 회전 순서에 주의해야 한다.
Quaternion 쿼터니온
4개의 -1~1값을 가지는데, 이는 3개의 벡터 요소와 하나의 스칼라 요소로 구성된다.
오일러 방식 | 쿼터니온 방식 | |
장점 | 0~360도의 일반적인 각도를 표현할 수 있음 | 연산속도가 빠르고, 짐벌락 현상이 발생하지 않음 |
단점 | 지속적으로 회전하는 연산을 할 때 연산속도가 느리고, 짐벌락 현상*이 발생할 수 있음 | 일반적인 각도 방식을 사용하지 않아 특정 각도를 표현하기 어려움 |
*짐벌락 현상: 세 개의 축이 독립적이지 않고 서로 종속되는 관계를 가지고 있기 때문에 발생하는 문제인데, 회전 연산 도중 축이 하나 사라져 3차원의 오브젝트가 일그러지는 현상을 말한다.
짐벌이란 단일 축을 중심으로 물체가 회전할 수 있도록 만들어진 구조물이다.
안쪽 고리가 여러 방향으로 회전하는 이유는 고리가 종속 관계를 형성하기 때문이다. 즉 한 고리의 회전이 안쪽 고리의 회전에 영향을 주며 고리의 회전으로 인해 의도치 않게 두 개 이상의 고리가 겹치게 되면 한 축의 회전각이 소실되는데 우리는 이것을 짐벌락이라 한다. 따라서 x축을 회전하면 y축과 z축이 회전하고 y축을 회전하면 x축 z축이 회전하게 된다!
해당 포스트는 고박사, [ 따라하면서 배우는 고박사의 유니티 기초[유니티 2D 기초 (Unity 2D Basic)] ], (2020, 07월 06일), 인프런 강의, '좋아하는 일, 잘하는 일, 그 사이 어딘가', [[Unity] 짐벌락과 오일러 각 그리고 쿼터니언 ], (2021, 12월 4일)을 참고하여 작성하였습니다.
Corner Unity
Editor : 보리밥
[유니티 소소모임] 3주차. 유니티 에디터 배우기 2 (Editor: Luna) (0) | 2024.11.08 |
---|---|
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: Hetbahn) (1) | 2024.10.11 |
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: Luna) (0) | 2024.10.11 |
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: 동동) (1) | 2024.10.11 |
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor : Ijin) (1) | 2024.10.11 |