Unity/R&D

    유니티 최적화(Unity Optimization) - UI

    유니티 최적화(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] 함수가 여러개일때는 함수명의 알파벳 순서대로 실행된다

    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 필드에 할당해서 쓰라고 되어있지만, 그렇게 되면 메모리에 바로 할당된다. 그러므로 메모리 할당을 바로 하지 ..

    Texture의 메모리 할당

    Texture의 메모리 할당

    1. SpriteAtlas가 Max Texture Size를 넘어가게 되면 자동으로 여러장으로 분리가 된다. 첫번째 문제는 Atlas를 유니티가 자동으로 묶기 때문에 드로우콜 관리가 안된다. 두번째 문제는 분리된 여러개의 Atlas중 1개의 이미지만 사용해도 모든 Atlas를 메모리에 올려버린다. 그러므로 Max Texture Size가 넘어가지 않게 잘 분리하는 것이 좋다. 2. 레퍼런스만 걸려있어도 Atlas가 메모리에 올라간다. 아래 그림처럼 Lobby 게임오브젝트에 New Prefab이 바인딩되어있고 New Prefab에는 107_a라는 Sprite가 바인딩 되어있다. New Prefab은 아직 Instantiate를 하지 않았지만 레퍼런스가 걸려있어도 107_a가 속한 Atlas가 메모리에 할당..

    SpriteAtlas에서 BuildPipeline으로 빌드시 유니티 크래시

    이슈 코드로 SpriteAtlas.Add() 하여 아틀라스에 이미지를 추가한 후 아틀라스파일을 Inspector에서 pack preview하는 순간 유니티 크래시. 해결 코드로 SpriteAtlas.Add() 한게 원인이 아니었음 SpriteAtlas.SetPackingSettings(packaingSettings); 한게 원인. 왜인지는 모르겠지만(유니티에 메일보냈지만 모르겠다고 상세 내용을 달라고 함. 더이상의 상세한 내용을 어찌 주지...) 해당 부분을 주석 처리하니 해결됨.

    Google Sheet <-> G2U 플러그인 연동

    Google Sheet <-> G2U 플러그인 연동

    1.구글 드라이브에 구글시트 생성 2.①스프레드 시트 이름 ②형식에 맞게 테이블 작성 ③시트명 작성 3.File - Publicsh To the Web 4.. 5.. 6.. 7.. 8.. 9.Ctrl + C해서 클립보드에 담는다 10.Ctrl + v하여 추가 11.완료! 12.만약 시트가 추가된다면 X 하여 remove한 후 다시 add하여야 한다.