Unity
EditorApplication.playModeStateChanged 호출 순서
EditorApplication.playModeStateChanged의 콜백 순서를 정리. Editor Play시 1. PlayModeStateChange.ExitingEditMode 2. PlayModeStateChange.EnteredPlayMode Editor Play 종료시 1. PlayModeStateChange.ExitingPlayMode 2. PlayModeStateChange.EnteredEditMode
Unity Profiler가 연결되지 않을 때
기본적으로 유니티 프로파일러를 사용하려면 Development Build Autoconnect Profiler Build And Run 이렇게하면 프로파일러 창에서 확인할 수 있다. 하지만 이렇게 해도 동작하지 않을 때 Autoconnect Profiler를 비활성화해보자. 나의 경우에는 프로파일러에서 확인할 수 있었다.
유니티 최적화(Unity Optimization) - UI
Text Rich Text는 필요하지 않다면 체크 해제 합니다. Best Fit은 필요없다면 사용하지 않습니다 FontSize별로 폰트 이미지 아틀라스를 생성합니다. 성능이 저하되고 메모리 단편화가 발생합니다. (메모리 사용량 증가와 빈번한 풀 GC 수행) Best Fit이 아닐경우 Hozizontal Overflow를 Wrap대신 Overflow 사용을 고려해보세요. RectTransform의 Width나 Height가 작다면 글자가 잘려보일 수 있습니다. Image Sprite를 None으로 두지마세요. None으로 비워두면 drawcall이 올라갑니다. None대신 주변 Image와 동일한 Atlas이미지를 넣어주세요. Raycast Target은 필요하지 않다면 체크 해제 합니다. Text와 같은..
유니티 코드 커버리지
코드 커버리지란? 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표중 하나다. 말 그대로 코드가 얼마나 커버되었는가이다. 소프트웨어 테스트를 진행했을 때 코드 자체가 얼마나 실행되었냐는 것이다. ( https://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%EC%BB%A4%EB%B2%84%EB%A6%AC%EC%A7%80 ) 코드 커버리지 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 유니티 코드 커버리지는 실행된 코드의 양을 측정하고 보고서를 백분율로 보여준다. 코드 확인 안된 부분이 코드 단위로 확인이 가능하다 튜토리얼은 패키지 페이지에 워낙 잘 되어 있어서 직접 확인해보면 좋다 https://docs.unity3d.com/Pack..
RuntimeInitializeOnLoadMethod 실행순서
1. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] 2. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] 3. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)] 4. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] 5. Awake() 6. [RuntimeInitializeOnLoadMethod] 7. [RuntimeInitializeOnLo..
[RuntimeInitializeOnLoadMethod] 어트리뷰트의 함수가 여러개일때 실행순서
[RuntimeInitializeOnLoadMethod] static void AAA() { Debug.Log("AAA"); } [RuntimeInitializeOnLoadMethod] static void BBB() { Debug.Log("BBB"); } //출력 AAA BBB [RuntimeInitializeOnLoadMethod] 함수가 여러개일때는 함수명의 알파벳 순서대로 실행된다
Unity 새로운 버전 설치 후 빌드 에러
android sdk command-line tools component is not found. make sure "command-line tools (latest)" is installed in the sdk manager. Unity2020.3.24f1을 설치한 후 위와 같은 에러가 나면서 빌드가 되지 않았다. 2020.3.13f1의 c:\Program Files\Unity\Hub\Editor\2020.3.13f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools 폴더를 통째로 복사해서 2020.3.24f1 폴더에 넣었더니 정상적으로 빌드가 실행됐다.
SpriteAtlas의 Include in Build
Include in Build 체크 SpriteAtlas의 A스프라이트가 Image / SpriteRenderer에 바인딩되어 있다면 화면에 잘 나온다. 메모리에도 바로 할당된다. Include in Build 체크 해제 SpriteAtlas의 A스프라이트가 Image / SpriteRenderer에 바인딩되어 있어도 화면에 나오지 않는다. 메모리에도 할당되지 않는다. SpriteAtlas.GetSprite를 통해 늦은 바인딩을 해야한다. (이때 메모리에 할당하게 된다) docs.unity3d.com/kr/2018.4/Manual/LateBinding.html 참고 위 링크의 예시에는 public 필드에 할당해서 쓰라고 되어있지만, 그렇게 되면 메모리에 바로 할당된다. 그러므로 메모리 할당을 바로 하지 ..