일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Custom Package
- 프레임워크
- 다이나믹 폰트
- Unity Editor
- jumping ball
- Tween
- Job 시스템
- Dynamic Font
- base64
- unity
- DotsTween
- C#
- AES
- 텍스트 메시 프로
- 암호화
- ui
- Dots
- 이미지 폰트
- job
- 최적화
- adfit
- 샘플
- sha
- 2D Camera
- 단말기 해상도
- Framework
- 가이드
- 커스텀 패키지
- RSA
- TextMeshPro
- Today
- Total
목록전체 보기 (111)
EveryDay.DevUp
Unity에서 가이드하는 GC 최적화 1. GC 호출 시기를 짧은 주기로 반복적으로 실행 ▶ GC가 필요 이상 호출되지만, 짧은 주기로 실행되기 때문에 그 사이에 쌓인 메모리가 적어 빠르게 GC가 수행됨 2. 초기 큰 힙 메모리를 설정 ▶ Mono는 런타임에 힙을 확장하는 것을 최대한 회피하려고 하기 때문에, 수동으로 큰 배열을 만들어 강제로 힙 메모리를 키움 ▶ 초기 메모리가 크게 할당 되기 때문에 메모리 부족으로 인한 GC 호출을 최소화 할 수 있음 3. 재사용 가능한 오브젝트 풀 생성 ▶ 반복적으로 생성/삭제 되는 게임 오브젝트를 Pool로 관리함으로써 최소한의 오브젝트 생성으로 메모리를 관리 4. 점진적 가비지 콜렉션 사용 ▶ Unity에서 현재 프리뷰로 제공하는 기능으로써, GC의 수행을 분할하..
유니티를 사용하다보면, 익스펙터 창에 추가로 보여주고 싶은 UI가 생길 수 있게 됨 예시 ) Camera2D 스크립트에서 Unity 실행 중에는 변화된 카메라의 사이즈를 보여주고 싶은 경우 실행 전에는 보이지 않던 Cam Size가 실행 후에 보이는 것을 확인 할 수 있음 using UnityEditor; using UnityEngine; [CustomEditor( typeof( Camera2D ) )] public class Camera2DEditor : Editor { Camera2D _cam2D; Vector2 _camSize = Vector2.zero; private void OnEnable() { _cam2D = (Camera2D)target; } public override void OnIns..
단말기에 따른 Camera 설정의 이론은 다음의 게시물을 통해 확인 가능 https://everyday-devup.tistory.com/7 [Unity] 해상도에 따른 2D Camera 설정 2D 카메라의 Size는 게임의 특징에 따라 가로로 고정 할지 세로로 고정을 할지 결정하게 된다. ( 단말기에 따라 보여지는 최소한의 영역을 보장함으로써 최대한 동등한 플레이를 할 수 있도록 하기 위함 ) ▶ 세.. everyday-devup.tistory.com ● 단말기의 해상도 체크 ▶ Unity Editor에서의 Game View 사이즈의 실시간 크기 조정이나, 해상도가 각기 다른 액정을 2개 가지고 있는 단말기 등 다양한 이유로 해상도가 실시간으로 변경되는 경우가 발생 ▶ ScreenManager는 Upda..
옵저버 패턴 : 변화가 있는 대상과 대상을 관찰하는 관찰자로 이루어지는 구조 ● 옵저버 패턴의 구현 ▶ 사용 예시 : Screen의 크기가 실시간으로 변화 되는지 감지하다가, Screen의 변화가 생기면 하위의 UI 크기를 변경할 때 사용 ▶ 범용적으로 사용하기 위해 인터페이스로 구현 IObserver : 대상을 관찰하는 관찰자로 대상의 변화 시점에 OnNotify를 통해 감지 public enum OBSERVER_STATE { PROGRSS, // 현재 관찰 중인 상태 REMOVE, // 관찰이 끝났기 때문에 삭제 요청을 한 상태 } public interface IObserver { int Priority { get; set; } // 처리 우선순위 OBSERVER_STATE State { get; ..