본문 바로가기

TOOL/Unity

IL2CPP / GCC / C# C++ Assembly 변환과정 IL(Intermediate Language) CIL과 동일한 중간단계 언어이다. IL2CPP msc.exe를 이용하여 IL code를 생성한 후에 il2cpp.exe라는 프로그램을 이용해 IL code를 C++형태로 변환한다.AOT컴파일방식을 사용하며 mono보다 빌드 시간이 더 길다.(unity 2017에서 IL2CPP는 .NET 4.6 API를 지원한다.) P.S) mono framework에서는 C++로 변환하는 과정없이 IL을 바로 Assembly로 변환한다.IOS에서는 mono는 지원하지 않고 IL2CPP만 지원한다. 또한 Mono로 build하는것보다 IL2CPP로 Build를 하게될 경우 보안성이 우수해진다.mono로 build하였을 경우 apk file 내부에 Assembly-CSharp..
Asset Bundle Manager Asset Bundle Manager 이름 그대로 asset bundle을 효율적으로 사용할 수 있도록 만들기 위해 제작된 도구이다. Asset bundle Manager Package를 download하고 import하면 새로운 API호출이 추가될 뿐만 아니라 일부 Editor 기능이 추가되어 작업과정을 간소화 시켜준다. 이 기능은 Asset menu option에서 찾을 수있다. Assetbundles에는 다음과 같은 Option이 있다. Simulation Mode Simulation Mode를 활성화 하면 실제로 asset bundle을 build하지 않은 상태에서도 asset bundle manager가 asset bundle과 함께 작동할 수 있게 된다. Editor는 asset bundle에..
Asset bundle 사용법 Unity 5 기준 Asset bundle을 load 하는 방법은 4가지의 API를 사용할 수 있다. 4가지 API의 동작은 Asset bundle이 load되는 flatform과 build될때 사용되는 압축방법(Uncompressed, LZMA, LZ4)에 따라 다르다. 작업에 사용할 4가지 API -AssetBundle.LoadFromMemoryAsync -AssestBundle.LoadFromFile -WWW.LoadfromChacheOrDownload (사용하면 안됨, 아래있는 UnityWebRequest로 사용할것 / 이유는 다른글에서 설명했음) -UnityWebRequest, DownloadHandlerAssetbundle (Unity 5.3 or newer) AssetBundle.LoadFr..
대표적인 Memory leak 발생 유형 Singleton static instance 더이상 사용하지 않는 singleton객체의 OnDestroy( )함수에서 반드시 instance = null; 처리를 해 주어야 한다.그렇지 않으면 OnDestroy( ) 이후에도 객체는 계속해서 살아있다. OnDestroy( )함수를 만들어 두고, instance = null; 코드를 넣어둘것 Delegate 저번에도 언급한적 있지만A객체의 delegate에 B객체의 event를 등록한다.B객체를 파괴시키려 할때 A객체에 등록해준 event를 해제(unregister)해 주지 않으면A객체가 파괴되지않는 이상 B객체도 파괴되지 않는다. 따라서 B객체 파괴시 자신의 모든 event가 제대로 등록해 둔 모든 delegate에서 해제되는지를 보장해 주어야 한다...
Asset Bundle Resorce Folder 사용을 자제할것 Resorce Folder는 앱에 같이 묶여 들어가기 때문에 사용 유무에 상관없이 packaging되어 apk의 크기가 커지고그렇게 되면 app이 시작할때 resource file을 read하는 작업도 느려진다.또한 resource folder를 사용할 때 current scene에서 사용되지 않는 object라도 meta data를 전부 memory에 띄우기 때문에 asset이 많을수록기본적인 memory사용량이 계속 증가한다. 하지만 app에서 처음부터 끝까지 반드시 사용될경우 Resorce Folder에 넣어도 무관 Asset : Unity로 게임을 만들때 사용되는 Image, text, audio, animation data등을 의미 Asset Bundl..