유니티 기본적인 개발 정보 정리
💡 꼭 알아야 하는 개발 정보를 적는 공간
Unity 기본적인 개발 정보
1. 함수/변수/상수
- [SerializeField] : private처럼 다른 스크립트에서 참조 못하게 하는것, private에 이걸 넣으면 inspector 뷰에서 컨트롤 할 수 있게 해줌
- Camera.main : main camera의 경우 편하게 접근가능 (Tag가 MainCamera로 되어있음)
Camera camera = Camera.main;
2. 물리시스템
- rigidbody : 물리시스템을 적용 받기 위해 필요한것 2d의 경우 gravity를 비활성화 해야한다
- colliders : rigidbody로 물리 시스템을 적용했다면 어떤 부분이 solid한 부분인지 알려줘야한다. 그것이 바로 collider이다. 게임 오브첵트의 외형을 가늠하여 충돌 연산을 할 수 있게 해주는것 적절한 크기 설정 필요
- Colliders with trigger : 특정 부분 충돌을 체크해서 체력등을 변경할때 물리적으로 충돌하면 안되는 경우가
- 있다. 이때 collider의 셋팅에 trigger 체크박스를 활성화 한다.
- freeze rotation : 특정 축을 회전하는것을 막는것
- 충돌 떨림 현상 : rigidbody가 아닌 transform 포지션을 움직이면 복사본을 이동하고 물리시스템 계산되고 해서 발생한다고 하는데 이건 해보면서 읽혀야할듯, 필자는 rigidbody 를 움직이는 식으로 변경해야한다고 한다.
3. Transform
여기 보고 공부함
이동
Translate 와 Position 차이
- Transform.translate() : 현재 위치에서 vector만큼 이동
- Transform.position : 해당 좌표값으로 이동
회전
회전은 Vector가 아닌 Quaternion으로 처리 vector를 사용하면 세 축의 회전중 하나가 동작하지 않는 짐벌락 때문에 내부적으로 quaternion으로 사용한다함 궁금하면 짐벌락을 찾아보자
- Transform.rotation : 방향직접 설정
- Transform.Rotate : 현재 방향에 회전을 더함
Vector 3 rotation = new Vector(0~360f, 0~360f, 0~360f);
transform.rotation = Quaternion.Euler(rotation);
transform.Rotate(rotation)
방향
- Transform.LookAt() : 바라보는 물체가 기준으로 위치를 옴기면 바라보는 방향이 바
- Transform.forward : 자기 자신이 기준이므로 위치를 옴겨도 방향이 바뀌지 않음
transform.LookAt(pos)
transform.forward = pos;
크기
local을 기준으로 크기를 바꾸는 이유 월드를 기준으로 하면 회전이 되어있는 경우 이상하게 찌그러지게 된다. 그래서 자기자신의 크기를 바꾸기 위함
transform.localScale = newScale;