일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프레임워크
- 이미지 폰트
- TextMeshPro
- 2D Camera
- AES
- jumping ball
- adfit
- unity
- 최적화
- 다이나믹 폰트
- Custom Package
- ui
- Dynamic Font
- Tween
- Job 시스템
- 단말기 해상도
- C#
- Framework
- 텍스트 메시 프로
- Unity Editor
- 암호화
- Dots
- DotsTween
- sha
- base64
- 커스텀 패키지
- 샘플
- 가이드
- RSA
- job
- Today
- Total
목록최적화 (7)
EveryDay.DevUp
Unity 5.5 미만 버전에서 foreach를 사용할 경우 가비지가 발생하는 이슈가 있었다. 원인 - Mono C# Unity 버전에서 foreach loop 종료 시 값을 강제로 박싱 - 값 형식의 열거자를 생성하였는데, 해당 열거자를 사용할 경우 loop가 종료되는 시점에 IDisposable 인터페이스를 구현 해야 했음 - 인터페이스는 참조 형식이기 때문에, 값 형식을 인터페이스로 변환하는 중에 박싱이 발생하게 됨 참고 : https://everyday-devup.tistory.com/106 [Unity] Struct (구조체) Struct (구조체)? - 데이터와 관련 기능을 캡슐화할 수 있는 값 형식 캡슐화 : 데이터와 기능을 하나로 묶고, 구현 내용 일부를 외부에 감춤 특징 1. 매개 변수가..
● Draw Call이란? : CPU가 GPU에게 오브젝트를 그려라 라는 명령을 내리는 것 ▶ 그려라 라는 명령 안에는 메시 정보, 텍스쳐 정보, 쉐이더 정보, 라이트 정보 등 하나의 오브젝트를 그리기 위한 정보가 담겨짐 ▶ 한 프레임이 그려지는 것은 CPU, GPU의 작업이 모두 끝났을 때가 됨. 게임 최적화를 위해서는 CPU의 부하인지, GPU의 부하인지를 체크 해야함 ▶ Unity에서는 Batch ( 그리라는 명령 + 상태 변경 )을 넓은 의미의 Draw Call이라고 하며, SetPass는 쉐이더로 인한 렌더링 패스 횟수을 이야기 함 ● Draw Call이 발생하는 경우 ▶ 하나의 오브젝트에 메시가 여러 개인 경우 ▶ 하나의 오브젝트에 여러개의 메터리얼이 있는 경우 ▶ 하나의 쉐이더에 멀티 패스가..
● UGUI : Unity에서 제공하는 Built-in UI 시스템 ▶ Unity 초기 UI 시스템은 매우 불편하였고, Asset Store에 UI를 용이하게 사용할 수 있는 EZGUI, NGUI와 같은 UI 어셋이 있었다. ▶ Unity 4.6 버전에서 UGUI가 릴리즈 되었는데, NGUI의 개발자가 Unity에 합류하여 개발해서 그런지 많은 시스템이 NGUI와 유사하다. ▶ 현재는 NGUI도 많이 사용하지만, UGUI도 많이 사용하여 개발하는 상황으로, 엔진 단에 코어한 코드( Canvas.. )를 제외한 나머지 UI 시스템은 오픈되어 있다. : UGUI 코드를 분석하면, UI 시스템 외에 Unity Custom Editor를 만들 때 사용할만한 코드와 Unity의 코드 스타일 같은 것도 알 수 있다..
Unity에서 가이드하는 GC 최적화 1. GC 호출 시기를 짧은 주기로 반복적으로 실행 ▶ GC가 필요 이상 호출되지만, 짧은 주기로 실행되기 때문에 그 사이에 쌓인 메모리가 적어 빠르게 GC가 수행됨 2. 초기 큰 힙 메모리를 설정 ▶ Mono는 런타임에 힙을 확장하는 것을 최대한 회피하려고 하기 때문에, 수동으로 큰 배열을 만들어 강제로 힙 메모리를 키움 ▶ 초기 메모리가 크게 할당 되기 때문에 메모리 부족으로 인한 GC 호출을 최소화 할 수 있음 3. 재사용 가능한 오브젝트 풀 생성 ▶ 반복적으로 생성/삭제 되는 게임 오브젝트를 Pool로 관리함으로써 최소한의 오브젝트 생성으로 메모리를 관리 4. 점진적 가비지 콜렉션 사용 ▶ Unity에서 현재 프리뷰로 제공하는 기능으로써, GC의 수행을 분할하..