| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 플러그인
- 게임 개발
- 1인 개발
- 최적화
- Android Plugin
- 포스트 프로세싱
- 디자인 패턴
- Strategy Pattern
- Boxing
- ==
- ReferenceEquals
- 인앱 결제
- design pattern
- Post Processing
- c#
- UniRx
- 스프라이트 아틀라스
- Abstract Factory Pattern
- Addressable System
- sprite atlas
- Unboxing
- equals
- Zenject
- Reflection
- addressable
- Unity
- ScriptableObject
- Today
- Total
목록전체 글 (27)
One_KWS
Equality C#에는 두 가지 같음(Equality 또는 Identity)가 존재한다. Reference Equality 두 개의 객체가 동일한 인스턴스를 참조하는지 여부를 비교한다. 즉, 두 개의 참조 변수가 같은 객체를 가리키는지를 확인한다. Value Equality 두 개의 객체가 내부적으로 같은 값을 가지는지 여부를 비교한다. ==, Equals(), ReferenceEquals() 두 객체의 같음을 확인하기 위해서 아래 세 가지 방법을 사용할 수 있다. == == 연산자는 두 개의 객체의 참조를 비교하여 같은지 판단한다. == 연산자를 재정의하지 않은 경우에는 참조가 같은지 판단한다. (Value Type 비교에 사용할 경우 값을 비교한다.) ReferenceEquals() Refe..
박싱(Boxing) 값 타입(Value Type)을 참조 타입(Reference Type)으로 변환하는 것을 박싱이라고 한다. 값 타입은 스택에 저장되고 참조 타입은 힙에 저장이 된다. 박싱된 값은 힙 메모리에 저장되며, 이 때문에 메모리 오버헤드가 발생한다. int i = 123; // Boxing copies the value of i into object o. object o = i; 언박싱(Unboxing) 참조 타입을 값 타입으로 변환하는 것을 언박싱이라고 한다. 박싱된 값은 힙 메모리에서 스택 메모리로 복사된다. 이 때 복사가 발생하므로 성능에 영향을 줄 수 있다. int i = 123; // a value type object o = i; // boxing int j = (int)o; // ..
안드로이드 프로젝트 생성 안드로이드 플러그인을 만들기 위해 Android Studio 프로젝트를 생성한다. Empty Activity로 생성하고 Minimum SDK는 Unity Build Setting과 맞춰주었다. Module 생성 프로젝트를 만들었으면 File - New - New Module로 Module을 생성한다. classes.jar 추가 다음으로 아래 위치에서 classes.jar 파일을 복사한다. Window : C:\Program Files\Unity\Hub\Editor\(사용하고 있는 유니티 버전)\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp/Release\Classes Mac : Applications/Unity/Play..
스프라이트 아틀라스(Sprite Atlas)를 사용하면 여러 개의 텍스처를 단일 텍스처로 합칠 수 있다. 여러 개의 텍스처를 호출할 경우 드로우 콜이 텍스처의 개수만큼 발생하게 되어 성능 저하가 일어날 수 있다. 스프라이트 아틀라스를 사용하면 드로우 콜을 줄일 수 있다. Sprite Atlas 설정 Edit - Project Settings - Editor에서 Sprite Packer - Mode를 Sprite Atlas V1 - Always Enabled로 변경한다. Sprite Atlas 만들기 Create → 2D → Sprite Atlas를 선택하여 Sprite Atlas를 생성한다. 생성된 스프라이트 아틀라스의 Inpector 창의 하단에 있는 Objects for Packing에 스프라이트를..
에셋 파이프라인은 애플리케이션의 성능에 큰 영향을 미칠 수 있다. 에셋의 설정에 따라 빌드 크기 및 시간을 증가시키고 메모리 사용량에 영향을 미칠 수 있다. Texture Max Size 해당 Texture가 가질 수 있는 최대 크기이다. Max Size 값이 작으면 Texture의 품질이 낮아지지만, 메모리 사용량이 줄어들고 더 빠르게 로드된다. 반면, Max Size 값이 크면 Texture의 품질은 높아지지만, 더 많은 메모리를 사용하게 되고 로드 시간이 늘어난다. 모바일에서는 보통 Texture의 Max Size를 2048 또는 1024로 설정한다. Power Of Two (POT) Texture Compression이 ETC 또는 PVRCT일 경우 POT 텍스처를 사용해야 압축이 된다. POT ..
소개 스트래티지 패턴(Strategy Pattern)은 행위를 클래스로 캡슐화하여 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴이다. 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있다. 스트래티지 패턴을 이용하면 수정이 필요한 부분을 최소화할 수 있다. 스트래티지 패턴은 아래와 상황에서 사용할 수 있다. 비슷한 작업을 하는 알고리즘이 여러 개 존재할 경우 알고리즘을 사용하는 클라이언트 코드와 알고리즘의 구현 코드를 분리하고 싶을 경우 알고리즘을 쉽게 교체하거나 확장하고 싶을 경우 Strategy Strategy 인터페이스에서는 알고리즘을 정의하는 메서드를 포함한다. public interfac..