[Unity 최적화] UI SetActive 호출 타이밍
·
유니티(Unity)/최적화 기법
✍️ 개요      📌 UI SetActive 최적화 방법 /// Bad Case (총 3회의 dirty 플래그 처리)Image img = GetComponent();img.gameObject.SetActive(true); //dirty 플래그 처리img.fillAmount = 1f; //dirty 플래그 처리img.transform.position = Vector3.zero; //dirty 플래그 처리/// Good Case (총 1회의 dirty 플래그 처리)Image img = GetComponent();img.fillAmount = 1f;img.transform.position = Vector3.zero;img.gameObject.SetActive(true); //d..
[Unity 최적화] 오디오(사운드) 최적화
·
유니티(Unity)/최적화 기법
📌 개요    게임에서 오디오 리소스는 많은 메모리 사용량을 차지하는 에셋 중 하나입니다. 특히 3D 환경을 지원하는 기능을 2D에서 사용하도록 설정하여 메모리 혹은 성능 최적화에 실패하기도 합니다. 그래서 오늘은 Unity에서 오디오를 최적화하는 방법에 대해 살펴보겠습니다.     📌 Audio Import 세팅 최적화  Force To Mono오디오를 단일 채널 사운드로 다운 믹싱합니다.입체 음향이 사라지지만 비약적으로 용량을 줄일 수 있습니다.단, 모노 음원이라면 아무런 영향이 없음3D 게임이 아니라면 체크합니다.Normalize : 사운드 정규화 (일반적으로 체크)단, 이미 사전에 볼륨 작업을 했다면 체크 해제  Load In Background비동기 방식으로 백그라운드에서 로딩됩니다.천천히 ..
[Unity] 카메라와 컬링
·
유니티(Unity)/이론 정리
✍️ 개요   [ Model이 렌더링(Rendering)되는 과정 (1편) ] [Unity] Model이 렌더링(Rendering)되는 과정 (1편)✍️ 개요 Unity에서 특정 Model을 이동시키는 로직을 구현해보셨나요? 언뜻 보기에는 모델 자체가 이동되는 것처럼 보입니다. 하지만 실제로는 Model을 구성하는 여러 정점(Vertices)들이 이동한 뒤gus6615.tistory.com 이전에 Model을 렌더링하기 위해 CPU는 Draw Call을 통해 GPU로 렌더링에 필요한 정보인 Mesh, Material, Texture, Shader, DP Call을 전송한다는 것을 확인했습니다. 여기서 GPU는 가장 먼저 Mesh을 구성하는 정점들의 좌표계를 로컬 -> 월드 -> 뷰 -> 투영 -> 클립 ..
[Unity 최적화] UGUI 최적화
·
유니티(Unity)/최적화 기법
✍️ 개요 이번 글에서는 Unity UGUI와 관련하여 최적화하는 방법을 소개하도록 하겠습니다. 주로 현업에서 자주 사용하는 Text 또는 Image와 같은 컴포넌트 최적화에 대해 살펴보고, 어떤 컴포넌트는 지양해야 하는 지 등 컴포넌트 관련 최적화 방법을 살펴보겠습니다.    [ UI 시스템 설계 참고 ] [Unity 최적화] UI 시스템 설계📌 개요    Unity로 게임을 개발하면 UI 시스템은 반드시 필요한 요소 중 하나입니다. 하지만 많은 개발자 분들이 UI 시스템을 최적화하지 않고 설계하는 경우가 많습니다. 오늘은 Unity UI의 기gus6615.tistory.com UI 시스템 설계의 내용을 일부 포함하고 있습니다. 이번 포스터에서는 설계보다는 콘텐츠 개발 입장에서 최적화하는 법을 살펴보..
[Unity 최적화] UI 시스템 설계
·
유니티(Unity)/최적화 기법
📌 개요    Unity로 게임을 개발하면 UI 시스템은 반드시 필요한 요소 중 하나입니다. 하지만 많은 개발자 분들이 UI 시스템을 최적화하지 않고 설계하는 경우가 많습니다. 오늘은 Unity UI의 기본 동작 원리를 이해하고, UI 설계 최적화 결과를 분석하며 살펴보도록 하겠습니다.   📌 캔버스(Canvas) 분리  캔버스는 UI 요소를 나타내는 메시를 생성하고, UI 요소가 변경되면 메시를 재생성하며, 실제로 UI가 표시되도록 GPU에 드로우 콜(Draw Call)을 발행합니다. 여기서 문제점은 하나의 UI 요소가 변경되면 캔버스에 존재하는 모든 UI 요소의 메시를 재구축한다는 점입니다. 많은 개발자가 하나의 캔버스에 수천 개의 UI 요소를 배치하는데, 이 방법은 CPU 비용을 급증시킬 수 있..
[기능] GetComponent 최적화 (CachedMonobehaviour.cs)
·
유니티(Unity)/기능 구현
Unity 개발을 하다 보면 GetComponent를 빈번하게 사용하게 됩니다. 하지만 매번 호출할 때마다 성능 오버헤드가 발생한다는 사실을 알고 계신가요? 이번 포스팅에서는 GetComponent를 캐싱하여 최적화하는 방법과 그 중요성에 대해 다뤄보겠습니다. 캐싱(Caching)이란?캐싱: 자주 사용되는 데이터를 미리 저장해두고, 이후에 해당 데이터에 빠르게 접근할 수 있도록 하는 기술 캐싱은 성능을 크게 향싱시키는 중요한 최적화 기법 중 하나 특히 GetComponent와 같은 무거운 연산을 반복적으로 호출하는 상황에서 매우 유용함 이제 캐싱으로 GetCompoent를 최적화하는 방법을 살펴보자   CachedMonobehaviourusing System;using System.Collections...