8월, 2018의 게시물 표시

Unity Google Play Games Services 연동 오류로 인한 삽질 기록

이미지
3줄 요약 1. Unity - Google Play Games Services 연동 오류 발생(Unity 2018.2.1f1, GPGS Plugin for Unity 0.9.50) 2. 구글링해보니 AndroidManifest.xml 파일 자동 생성시 공백이 잘못들어감 3. 생성할때 사용하는 템플릿 파일(template-AndroidManifest.txt)을 수정하고 다시 해보니 정상 동작! 삽질 & 구글링 나름 튜토리얼을 보면서 잘 따라 했것만... Google Play Console 의 출시관리>사전 출시 보고서에 비정상 종료 로그가 뜨고, APK 파일을 받아서 깔아보아도 제대로 실행이 안되었다. 오류 로그는 아래와 같음 사전출시 보고서 오류 리포트 문제: at com.google.android.gms.common.internal.zzh.handleMessage(Unknown Source:275) FATAL EXCEPTION: main Process: com.m2kestudio.unity.clicker, PID: 12207 java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information. at com.google.android.gms.common.internal.zze.zzv(Unknown Source:78) at com.google.android.gms.common.internal.zzi.zzakg(Unknown Source:54) at com.google.android.gms.common.internal.zzh.handleMessage(Unknown Source:275) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193)

Unity 오브젝트들을 찾기 위한 방법 (Find Objects)

Unity 오브젝트들을 찾기 위한 방법 (Find Objects) 단 하나인 오브젝트에 접근하는 법은 여러가지가 있고 방법 자체도 쉬운편인거 같은데 오브젝트'들' 에 접근하는 방법은 제약이 좀 있는 느낌이였기 때문에 정리해 보았음 GameObject.FindGameObjectsWithTag     GameObject[] itemList = GameObject.FindGameObjectsWithTag("TileItem");          for (int i = 0; i < itemList.Length; i++) {     BaseItem item = itemList[i].GetComponent<BaseItem>();     //...     } 미리 지정한 Tag 를 사용해서 같은 Tag 를 가진 객체들을 가져옴 비활성화된 객체에 접근이 안된다고 한다 배열이 null 인 경우가 있을 수 있어서 예외처리 필요함 Resources.FindObjectsOfTypeAll 또는 Object.FindObjectsOfType     BaseItem[] itemList = Resources.FindObjectsOfTypeAll<BaseItem>();     for (int i = 0; i < itemList.Length; i++) {     BaseItem item = itemList[i];         //...     } 클래스 타잎으로 객체들을 가져옴. FindObjectsOfTypeAll 모든유형의 비활성화 된 객체도 가져옴 FindObjectsOfType 에셋 제외, 비활성화 객체 제외 하고 가져옴 둘다 성능 이슈가 있어서(매우 느리다고 되어있음) 매 프레임 호출은 좋지 않다 싱글톤 패턴같은 디자인 패턴이나 다른 방법으로 대체하기를 권장 다른 방법으로 대체해서 구현하는 방법 같은 경우는 구글링하면 찾을 수 있을

Unity Pixel Perfect 구현 정보 추가 및 정리

이미지
Unity 에서 Pixel Perfect 구현을 위한 방법 정리 1. 이전에 올렸던 글들 Unity3D 에서 당신의 Pixel Art 게임을 Pixel Perfect 하게 만들기 Pixel Art 게임에서 Unity 2D 스프라이트 설정 2. 오래된 글(2015/06/19) 이긴 하지만 Unity Blog에 올라왔던 글 Pixel Perfect 2D 3.  2D Pixel Perfect  GitHub 프로젝트 가장 최근에 찾은 정보, 추후 정식으로 유니티 자체에 제공할 듯 하다 해당 프로젝트를 다운받아 유니티로 불러와서 테스트 해볼 수 있음. 아직 정식으로 추가된것이 아닌 상황(2018/8/4) 이긴 하지만 돈주고 에셋스토어에서 Pixel Perfect Camera 를 사는 것보다 나을 것 같아서 적용해보았고 잘 동작함! 아래 도큐먼트가 잘 되어있으나 영어의 압박이... https://docs.unity3d.com/Packages/com.unity.2d.pixel-perfect@1.0/manual/index.html - 유니티 버전 2018.2.b3 버전 이상에서 부터 지원 - Window>Package Manager> All 탭에서 2D Pixel Perfect 인스톨 - Main Camera 오브젝트에 Pixel Perfect Camera 를 추가하고 PPU 값, 적용하려는 해상도 값을 적용하고 테스트 해보았을때 잘 동작하였음 4. Font 설정 Font 를 Pixel 스럽게(?) 표현하기 위해서 빈 오브젝트를 생성하고 아래 스크립트를 추가 public Font[] fonts; void Start () {   //폰트가 Pixel Perfect 하게 보이도록 설정   for(int i=0; i<fonts.Length;i++) {     fonts[i].material.mainTexture.filterMode = FilterMode.Point;   } }