모바일을 위해 유니티 빌드 용량 줄이기_POT,폰트
·
STUDY/유니티
최근 오랜만에 게시물을 올리긴 했지만 사실 빌드 용량 줄이기는 예전부터 계속 노력해오던 숙원과도 같은 일입니다.처음에는 위의 이미지처럼 용량이 200이 넘어갔는데,용량 200MB가 엄청나게 크다..!까진 아니지만 제 단순한 게임에 비해서 용량이 크다는 말이었습니다. 그 당시에는 용량에 크게 신경을 안써서 리소스 정리도 되지 않은 상황이었고그냥 PC게임도 아닌 모바일 게임의 경우에는 글로벌로 나갈경우, 용량이 적은 저가폰 유저들이 생각보다 상당히 많다고하여 처음으로 리소스 정리를 시작했었습니다.  1. 텍스처 압축(Texture Compression) 먼저 텍스처 압축을 얘기하며서 POT을 빼놓고 말할 순 없을거같습니다. POT(Power Of Two)이란 이미지의 크기가 2의 거듭제곱인 경우를 얘기하고,..
[C#] null을 비교하기위한 여정3, ==과 is 그리고 Equals(,) 속도
·
STUDY/유니티
null 체크를 하기위해서 다양한 방법들을 알아보았습니다. 그러던 중 신기한 것을 발견하였죠. 바로 같은역할을 하는 친구들이 모두 속도가 다르단 것입니다! is, Equals ,== (ReferenceEquals의 경우에는 is와 속도가 거의 같아서 is로 대체하였습니다.) 테스트코드 테스트 코드 void Start() { Stopwatch sw = new Stopwatch(); sw.Start(); Test test1= TestClass1; for (int i=0;i Equals(object,null) > object == null 이렇게 결론이 나게됩니다. 자세한 함수의 코드는 잘 모르지만 나와있는 문서의 정보라던가 사람들의 이야기를 들어보고 정리한 결과, 해당 함수가 어떤 기능을 수행하는지를 알게되..
[C#] null을 비교하기위한 여정2, is 와 FakeNull
·
STUDY/유니티
이전에 null 비교를 위한 연산으로 ==와 Equals를 보던 중 같은 기능을 수행하는 is라는 연산자를 발견하였습니다. 그럼 is란 무엇인가? 여기서 is란? 연산자로써 C#7 이전에는 객체의 타입을 체크하는 용도로 쓰였지만, C#7 이후부터는 패턴으로써 사용할 수 있게되었습니다. 패턴은 크게 상수패턴/ 타입패턴 / var 패턴으로 나뉘어져있고 여기서 이번 게시물과 밀접한 관련이 있는 패턴은 상수패턴입니다. 상수패턴은 특정 상수값을 사용해 패턴을 체크함으로써 ==과 같은 기능을 합니다. (instance is null 과 instance==null은 같게 결과가 나옴.. 처럼 보이지만 내막이 있는데...) 하지만 기능이 같다고 아예 같다란 것은 아닙니다. 제가 본 글들은 is가 ==보다 속도면에서 우..
[C#] null을 비교하기위한 여정1, ==와 Equals()
·
STUDY/유니티
if (instance == null) { instance = this; } else if (instance != this) Destroy(gameObject); 싱글톤 코드를 작성하면서 들었던 의문이 있었습니다. ==대신에 Equals()를 써서 null인지를 체크할 수는 없을까? Equals로 인한 비교는 총 두가지 방법이 있습니다. 매개변수를 1개 쓰는것과 2개쓰는것 신기하게도 instance.Equals(null)를 쓰면 에러가 뜨지만 Equals(instance,null)을 쓰면 에러가 뜨지 않았습니다. 이유는 일단 instance는 null인 상태입니다. 그리고 그 null인 instance를 참조할려고하니 NullReferenceException 오류가 뜨는건 당연했죠. 하지만 instanc..