Unity

유니티 시작

방프 2021. 4. 16. 19:56

" 유니티는 게임오브젝트컴포넌트 기반 구조의 게임엔진이다. "

* 스크립트는 컴포넌트다! → 씬에 올려지려면 게임오브젝트가 필요한데, 컴포넌트가 올라가기 위해선 게임오브젝트에 붙어야한다.

 

< 유니티 시스템의 특징 >

렌더링 시스템과 물리 시스템의 분리

렌더링 시스템 : 화면에 보여주는(눈에 보이는) 것에 관여하는 시스템.

물리 시스템 : 물리 연산에 관연하는 시스템

 ⇒ 화면에 보이는 위치와 물리 연산을 위한 충돌체(Collider)의 위치가 다를 수 있다! → 화면에 보이는 것은 자신의 앞에 있지만 물리 연산을 위한 충돌체의 위치는 아직 자신의 앞으로 이동하지 못한 상황이 발생할 수 있음

EX) 날아가는 오브젝트(발사체)는 우리 눈에 보일땐 A지점에 있지만(렌더링 위치:A) 실제 충돌을 구현하려면 물리시스템의 위치는 B가 될수있음

 

* 물리 시스템은 연산량이 많다. FixedUpdate는 물리량 계산 전용 함수이다.

* 속도는 Update함수가 더빠르다. 랜더링 속도가 더 빠르다보니 물리 시스템이 렌더링 위치를 못따라갈수가 있다. 따라서 다른 결과를 보여줄 수 있다는것이다.

* 그래서 렌더링 속도 기준으로 코드작성(Update)을 하는것이 아니라 물리를 사용한다면 물리 시스템 속도(FixedUpdate)에 맞춰서 작성해야한다. 만약 랜더링쪽에서 물리계산을 해도 계산이 잘 되지 않을것이다.