기술 면접용 질문들/유니티 관련 맨텀 2023. 3. 17. 14:39
쿼터니언의 정의 쿼터니언(사원수)는 회전 값을 나타내기 위해 복소수를 확장해 만든 수 체계이다. 유니티에서는? 직관적으로 회전값을 나타내기 위해서는 x, y, z의 방향으로 회전값을 각각 더해 각도를 표현하는 오일러(Euler) 체계를 사용한다. 직관적이고 적용하기도 쉬워서 유니티의 인스펙터에서는 오일러 값이 표시되고, 수정할 수 있다. 인스펙터를 Debug 모드로 확인하면 내부 값은 쿼터니언 값으로 관리되는 것을 확인할 수 있다. 주의할 점은 쿼터니언의 각 값들은 바로 어떤 회전값인지 알기 힘들다. 오일러에서 (0, 0, 90) 이었다면 -> 쿼터니언에서 (0, 0, 0.7071068, 0.7071068) 이다. 왜 사용하는데? 짐벌락을 방지하기 위해 사용된다. 짐벌락이란? 오일러체계에서 x, y, z..
기술 면접용 질문들/유니티 관련 맨텀 2021. 4. 22. 21:34
Awake 인스턴스 직후, 게임 오브젝트가 활성화 상태라면, 스크립트의 enable과 관계없이 최초1회 호출됨. OnEnable 스크립트가 enable라면 게임오브젝트의 활성화 직후에 호출됨. Start 인스턴스가 활성화되면 첫번째 프레임의 업데이트 전의 호출. 게임 오브젝트가 활성화된 상태에서 스크립트가 enable이라면 최초 1회 호출됨. FixedUpdate 유니티에서 설정된 Fixed Timestep 시간간격마다 호출됨. CPU나 GPU병목에 의해 프레임이 지연될경우 프레임마다 여러번 호출될 수 있음. Update 프레임마다 한번 호출됨. LateUpdate Update후 한번 씩 호출됨. 3인칭 카메라같이 Update에 영향을 받아 변경해야 하는 추적에 적절함. yield WaitForEndFr..
기술 면접용 질문들/유니티 관련 맨텀 2021. 4. 22. 21:26
참고서적 : 유니티 그래픽스 최적화 스타트업 최적화를 하다보면 드로우콜(draw call), 배치(batch), 셋 패스 콜(set pass call) 등의 용어를 접하게 된다. 드로우콜(draw call) - 오브젝트가 실제 화면에 렌더링 되려면 CPU가 가지고 있는 정보들이 GPU에 전달 되어야한다. - 이러한 정보들을 전달한 뒤, CPU가 GPU에 렌더링하라고 명령을 보내는 것을 드로우 콜이라 한다. - 오브젝트의 메시 정보 - 텍스쳐 정보 - 쉐이더 정보 - 위치, 스케일 등 트랜스폼 정보 - 기타 등등.. 렌더링 과정 - Storage(HDD, SSD)에 담긴 데이터를 CPU가 읽어 들이고, 파싱하여 GPU에 해당 정보들을 복사한다. - 매 프레임 메모리에 불러오는 과정을 거친다면 과부하가 심해..
기술 면접용 질문들/유니티 관련 맨텀 2021. 4. 16. 14:44
코루틴(Coroutine) - 여러 개의 루틴이 동시에 실행되며 서로 제어를 넘겨주는 방식. - yield return을 사용하여 현재 위치를 기억하고 다른 루틴에게 수행 권한을 넘겨서 여러개의 쓰레드가 동시 동작하는 것과 같은 효과를 제공한다. - 실제로는 단일 쓰레드 이기 때문에 멀티쓰레드가 가지는 교착 상태 경합 등의 문제에서 자유롭다는 장점이있다. - 특정 조건이 충족될때까지 실행 상태를 지연시킬 수 있다. - GameObject의 Active가 off가 된다면 이미 실행 중이었던 코루틴은 정지되며, StartCoroutine은 오류가 발생한다. - 정지된 코루틴은 GameObject가 다시 Active가 되더라도 재 실행되지 않는다. public void MyMethod() { StartCoro..