반응형 최적화 [Unity] 스크립팅 최적화 (5) - 트랜스폼 (Transform) 2023. 5. 24. 스크립팅에서의 트랜스폼이란? 언리얼의 씬 컴포넌트와 마찬가지로 유니티는 트랜스폼 컴포넌트가 씬에 배치된 오브젝트의 크기/방향/위치 등을 조작할 수 있는 유일한 수단이다. 따라서 그만큼 스크립트에서 자주 사용하게 되는데, 많이 사용하는 만큼 최적화할 방법이 있을까? 트랜스폼 캐싱 (GameObject.transform vs transform caching) 일반적인 트랜스폼의 접근은 다음과 같다. public GameObject player; void Start() { player.transform = DoSomething(); } 하지만 Update 내부처럼 아주 많이 사용되는 경우 다음과 같이 캐싱해두는것도 고려해봐야 한다. public GameObject player; private Transform.. [Unity] 스크립팅 최적화 (4) - 빈 이벤트 콜백 제거 2023. 5. 19. 이벤트 콜백 함수란? 유니티에서 MonoBehaviour로 스크립트를 생성하면 기본적으로 제공되는 두 가지 이벤트 콜백 함수가 있다. Start와 Update가 그것인데, 만약 사용하지 않는다면 지워주는 것이 좋다. 왜냐면 내부 시스템이 빈 이벤트 함수들을 계속 호출하기 때문이다. 아무것도 들어있지 않은 함수를 사용하기 위해 매번 호출하는데 일을 시킬 필요가 있을까. // Use this for initialization void Start () { } // Update is called once per-frame void Update () { } 위처럼 함수가 비어있다면 함수를 지워주는 것을 습관화하도록 하자. [Unity] 스크립팅 최적화(1) - 반복되는 연산 줄이기 2023. 5. 12. 반복되는 구간 줄이기? 유니티에서 컴포넌트 스크립팅을 하다 보면 필연적으로 반복되는 구간이 나오게 된다. 예를 들어, Update이벤트에서 사용되는 함수가 대표적인 경우이다. 그중 몇 개는 매프레임마다 반드시 실행되어야 하지만 최초 1회 혹은 특정 순간만 필요한 경우일 때도 많다. 후자의 상황인 경우 우리는 불필요한 연산을 줄이도록 스크립팅을 해야 한다. 반복으로부터 발생하는 비용을 없앨 수 있을까? 많은 방법이 있지만 대표적으로 다음과 같은 방법을 사용할 수 있다. 컴포넌트 캐싱 캐싱은 스크립트 최적화의 기본이 되는 아주 중요한 개념이다. 유니티에서는 특별히 "GetComponent()"함수와 자주 사용되는데, 이는 GetComponent가 CPU 오버헤드를 일으킬 수 있는 반면, 캐싱이 이를 해결하기.. 이전 1 다음 1/1 반응형