[멋쟁이사자처럼 부트캠프 TIL회고] Unity 게임개발 3기 8일차
어제 했던 내용인 InputManger를 활용하여 캐릭터의 움직임을 코딩.
좌측은 키변경도 안되고, 많이 쓴 하드 코딩, 우측과 같이 코딩하면 쉽게 바꿀수 있다.
![]() |
![]() |
InputManger를 추가로 만들어 사용할 수 있다. ( Size를 수정하고 설정해주면 됨)
![]() |
회전
오일러 회전(Euler Rotation) vs 쿼터니언 회전(Quaternion Rotation)
https://docs.unity3d.com/kr/2018.4/Manual/QuaternionAndEulerRotationsInUnity.html
Unity의 회전 및 오리엔테이션 - Unity 매뉴얼
3D 애플리케이션에서 회전은 일반적으로 쿼터니언 또는 오일러 각으로 표현됩니다. 각 방법에는 고유한 용도와 단점이 있습니다. Unity는 내부적으로 쿼터니언을 사용하지만 쉽게 편집할 수 있도
docs.unity3d.com
요약하자면, 오일러 각을 사용하는 방식은 쉽지만 짐벌락(축 겹침) 문제를 발생시킬수 있으며 , 둘 다 사용할줄 알아야한다.
코드를 사용해서도 가능하다.
회전을 줄 수 있는 코드들
Rotate : 특정 축으로 회전 가능
RotateAround : 대상을 기준으로 회전
LookAt : 특정 방향을 바라보게 회전
참고 : worldUp = Vector specifying the upward direction.
이 세 가지 모두 transform 안에 있음 즉, transform.Rotate||RotateAround||LookAt() 으로 사용
* 세가지 모두 transform 이동처럼 순간이동 판정이지만, Position 이동에 비해 문제가 될 요소가 적기 때문에 크게 신경쓸 필요는 없다. ( RotationAround는 조심해야 할 수도 )
*지금까지 해왔던 Transform Reset은 위치, 회전, 크기를 모두 기본으로 바꾸는 것.
Collider : 충돌이나 감지를 선택적으로 하는 Component
우측 큐브처럼 보고 싶으면 Scene View에서 다음과 같이 하면 된다.
콜라이더는 대표적으로 다음과 같이 네 가지 종류가 있다 : Capsule, Sphere, Box, Mesh
Is Trigger를 체크하면 감지, 체크하지 않으면 충돌이다.
충돌이나 감지가 발생하려면 두 물체 모두 Collider 컴포넌트를 갖고 있어야 한다.
두 물체 전부 Is Trigger이 체크되어 있지 않으면 충돌, 둘 중 하나라도 체크되어 있으면 감지가 일어난다.
*보통 캐릭터는 땅과 충돌해야 하기 때문에 총알이나 다른 물체에 트리거를 체크하는 경우가 많다.
충돌을 Collison Event , 감지를 Trigger Event라고 하며 Event의 3단계를 갖는다.
Rigdbody : 물리 계산을 하는 Component
Rigdbody는 Collider와 거의 같이 다니며, Collider가 영역이라면 Rigdbody는 계산이라고 보면 된다.
두 물체가 있으면 둘 중 하나라도 Rigdbody(계산기)를 갖고 있어야 하고 보통 움직이는 쪽이나 오래 존재하는 물체가 Rigdbody를 갖는다.
두 요소를 더 잘 설명하기 위한 예시
*충돌은 계속되기 때문에 Exit 로그가 생성되지 않는다. 이는 바닥면의 기울기를 달리해 굴러가게 만들면 해결된다.
*충돌 로그는 계속해서 생성되지 않는다(최적화를 위해 약 1초 정도 유지, 버전마다 다름)
알아두면 좋은 것들
*마젠타 : Material이 깨지는 것, 분홍색이고 쉐이더를 바꿔주면 해결이 가능하다.
![]() |
![]() |
*Inspector에는 처음 코드를 작성할때 쓴 값이 들어가진다, Script의 값을 갖고 다니게 하려면 Private로 설정해준다.
내일 배울 내용 : Aniamtor
살짝 진도가 빨랐으면 하는 느낌이 든다, 다만 점점 더 어려워질 것 생각하면 이 속도가 맞을지도.. ?
이동에 관한 내용이 설명해주신 방법 이외에도 굉장히 많다고 하셨다. 찾아볼 수 있으면 찾아봐야지.