Unity
유니티 시작
방프
2021. 4. 16. 19:56
" 유니티는 게임오브젝트와 컴포넌트 기반 구조의 게임엔진이다. "
* 스크립트는 컴포넌트다! → 씬에 올려지려면 게임오브젝트가 필요한데, 컴포넌트가 올라가기 위해선 게임오브젝트에 붙어야한다.
< 유니티 시스템의 특징 >
렌더링 시스템과 물리 시스템의 분리
렌더링 시스템 : 화면에 보여주는(눈에 보이는) 것에 관여하는 시스템.
물리 시스템 : 물리 연산에 관연하는 시스템
⇒ 화면에 보이는 위치와 물리 연산을 위한 충돌체(Collider)의 위치가 다를 수 있다! → 화면에 보이는 것은 자신의 앞에 있지만 물리 연산을 위한 충돌체의 위치는 아직 자신의 앞으로 이동하지 못한 상황이 발생할 수 있음
EX) 날아가는 오브젝트(발사체)는 우리 눈에 보일땐 A지점에 있지만(렌더링 위치:A) 실제 충돌을 구현하려면 물리시스템의 위치는 B가 될수있음
* 물리 시스템은 연산량이 많다. FixedUpdate는 물리량 계산 전용 함수이다.
* 속도는 Update함수가 더빠르다. 랜더링 속도가 더 빠르다보니 물리 시스템이 렌더링 위치를 못따라갈수가 있다. 따라서 다른 결과를 보여줄 수 있다는것이다.
* 그래서 렌더링 속도 기준으로 코드작성(Update)을 하는것이 아니라 물리를 사용한다면 물리 시스템 속도(FixedUpdate)에 맞춰서 작성해야한다. 만약 랜더링쪽에서 물리계산을 해도 계산이 잘 되지 않을것이다.