개요 Adressable을 프로젝트에 도입할 때 관리할 Adressable 에셋들을 인스펙터 리스트에 담아두거나 하고싶은데 Adressable은 여러 에셋을 한번에 드래그해서 리스트에 담을 수 없다. 그래서 코드로 List 타입에서 List타입으로 복사하는 방법을 기록한다. 본문 코드는 다음과 같다. [SerializeField] private List adressableSprites; [SerializeField] private List tempSprites; #if UNITY_EDITOR [Button] public void SpritesToAdressableList() { adressableSprites = new List(); foreach (var spr in tempSprites) { stri..
개요 유니티 프로젝트에 광고를 넣기 위해 구글 애드몹SDK를 넣어서 구현했다. 우리 프로젝트는 기본적으로 가로화면 이지만 미니게임에 따라서 Screen.Orientation 을 건드려서 화면을 강제 회전을 시켰다. 그런데, 화면 회전 이후에 광고를 호출하면 광고가 호출되지 않는 버그가 있었다. (특히 iOS에서) 우여곡절끝에 발견한 해결법을 기록한다. 본문 먼저 해본 방법들은 이렇다. 광고 SDK 초기화를 화면을 돌린 이후에 다시 호출 (MobileAds.Initialize();) => 효과는 없었다. 광고를 호출하기 전에 화면을 가로로 다시 회전시키고 (앱이 시작할 때 가로였으니까) 광고가 끝나면 광고 호출 전 Screen.Orientation을 다시 복구 =>처음엔 되나 싶었지만 완벽하지 못했다. 그..
Firebase를 이용하여 구글이나 애플로그인 등등을 할 때 auth.SignInWithCredentialAsync(credential).ContinueWith(task => { ... }); 이런 콜백을 거치게 되는데 잘보면 콜백 타입이 Task이다 즉, 콜백이 메인스레드에서 돌아가지 않을 수 있다는 것. 😮 서브 스레드에서 돌아가면 어떤 문제가 일어나나요? - 유니티는 서브 스레드에서 유니티의 API를 호출할 수 없다. 에러와 함께 스레드가 종료돼버리고 try, catch문으로 에러를 출력하지 않는다면 콘솔에 에러도 출력되지 않는다. 그래서 이 경우엔 2가지 방법이 있다. 1. bool변수로 플래그를 세워서 Update()문에서 플래그 체크 후 이후 작업 진행 2. 큐에 액션을 담아놓고 외부 클래스에..
이 글은 작업 당시 급박했던지라 기록을 많이 남기지 않아서 깔끔하게 정리할 수 없습니다. 다른 분들이 보시면 이해하기 어려우실 수 있습니다. 개요 iOS에서 소셜 로그인 기능을 넣기위해 파이어 베이스 패키지를 임포트했는데 이때부터 윈도우에서 빌드하고 Xcode프로젝트를 맥으로 옮겨서 빌드하는 방법이 안통하기 시작 찾아보니 이 순간부터 빌드하는데 CocoaPods가 필요하기 시작 cocoapods? CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 27 thousand libraries and is used in over 1.6 million apps. CocoaPods can help you sca..
개요 -이 작업을 하게된 계기 효과음 사운드 적용 작업을 시작하게 됐는데 생각해보니 UI버튼에 사운드가 들어갈 대비를 미리 안했었다. 그래서 그 많은 UI에 일일히 사운드를 연결해줘야하나 고민하다가 Button 클래스를 상속받아 새로운 버튼 클래스를 만들어서 확장성을 넓히기로 결정했다. 본문 1. 일단 상속을 받아보자 ! 먼저 Button 클래스를 냅다 상속받고 변수를 하나 추가한 뒤에 인스펙터를 확인해보자. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; using UnityEditor; using UnityEdit..
개요 [Unity] HTTP REST api 통신 모듈 구현 개요 사내에 딱 정해진 REST api 통신 모듈이 없다보니 직접 만들고 다음 프로젝트가 진행될때마다 겪었던 시행착오들을 상기하며 모듈을 보완, 발전 시키고 있다. 이제는 틀이 꽤 잡힌것 같아서 trialdeveloper.tistory.com 위 글에서 작성했던 통신 모듈을 팝업 시스템 구현에 사용한 빌더패턴으로 재구성을 하는 글이다. 이유는 리퀘스트 전송 함수를 이런식으로 짰는데 protected virtual IEnumerator SendRequestCor(string url, SendType sendType, JObject jobj, Action onSucceed, Action onFailed, Action onNetworkFailed) ..