유니티에서 사용하는 리소스를 관리하기 위한 패키지입니다. 유니티는 리소스의 경로를 'Resource'폴더에서만 관리해야 해서 불편합니다. (방법이 없는 건 아닙니다.)거기다 이 폴더의 내용은 자동 로딩이라 메모리를 미리 먹어버린다는 문제도 있습니다.(씬 기준)별도로 리소스를 관리하는 경우 개발(에디터)과 배포 시 경로가 달라진다는 문제도 있습니다. 그러다 보니 리소스를 동적으로 관리하는 라이브러리가 필요한데...어드레서블(Addressable)이 리소스를 동적으로 관리하는 패키지입니다. 메모리에 올리는 것뿐만 아니라 리소스를 배포 후에 다운로드하여 관리하거나 패치하는 기능도 들어 있습니다. 설치에서부터 사용까지 한 번에 따라 할 수 있도록 4부작으로 작성하였습니다.어드레서블(Addressable)의 기능..
1. 문제의 발견빌드전에 처리해야 할 것들이 있어서 'AssetPostprocessor'를 상속받아 '빌드 후 실행'을 했더니 아래와 같은 에러가 발생합니다.error CS0246: The type or namespace name 'AssetPostprocessor' could not be found (are you missing a using directive or an assembly reference?) 2. 해결 방법'AssetPostprocessor'는 에디터에서만 사용하는 기능이므로 빌드시 사용하지 않도록 처리해야 합니다. 2-1. ' Editor '폴더로 이동시키기가장 간단한 방법은 'Assets/Editor'폴더를 만들어 넣는 것입니다. 2-2. '조건부 컴파일 기호' 이용하기'조건부 ..
유니티에서 "Stack empty."에러가 발생하였습니다. 무조건 발생하는 건 아닌데 아주 가끔 에러가 납니다. 1. 원인을 찾자 처음에는 'enum'를 'switch'로 비교하는 곳에서 에러가 나서 아주 옛날에 있던 타입변환 버그를 의심했었습니다. 그런데 에러를 추적하다 보니 플레이메이커(Playmaker, FSM)의 함수를 호출하면 해당 에러가 나는 것을 발견하였습니다. 문제는 플레이메이커에서 나는 에러 잡는 방법을 몰라...... 검색을 해도 나오질 않는 겁니다. 2. 해결 방법 결국 여러 번의 삽질을 하다가 어떤 상황인지는 모르겠지만 스레드 에러가 나는 것을 확인했습니다. 이 에러가 "Stack empty."에러와 연관있는지는 모르겠지만 일단 예외 처리가 필요할 것으로 보여서 메인 스레드에서 실행..
검색해서 나오는 방법을 사용하여 유니코드 폰트(나눔 고딕)를 설치하고 TMP(TextMeshPro)로 변환했는데 한글이 계속 깨집니다. 레거시(Legacy text)는 잘만 나옵니다.폰트 자체가 잘못된 게 아니라 생성이 잘못됐다는 거죠. 1. 유니코드 범위 지정하기유니코드 폰트의 경우 폰트 범위를 지정하면 되는 경우가 있으니 해봅시다. 'Character Set'를 'Unicode Range (Hex)'로 설정합니다.그러면 'Character Sequence (Hex)'칸이 생기는데 이 칸에 아래와 같이 범위를 설정합니다. 가-힣, 초성, 중성, 종성의 범위는 다음과 같습니다.AC00-D7AF,1100-1112,1161-1175,11A8-11FF 아니면AC00-D7AF, 1100-11FF 이제 완성..
소켓 통신 라이브러리를 만들어 사용하는 중인데 '.NET' 응용프로그램에서는 문제가 없는데 유니티에서는 문자열이 깨지는 현상이 발생했습니다....???? 1. 문제의 발견 서버에서는 문자열을 아스키 배열로 보내고 있습니다. .NET 프로그램에서는 아스키를 문자열로 바꿀 때 다음과 같은 방법을 사용합니다. Encoding.Default.GetString(byteData); -- 혹은 -- Encoding.ASCII.GetString(byteData); 그런데 유니티에서는 이렇게 하면 한글 아스키가 디코딩되지 않는 현상이 있습니다. 재연하기 재연용 코드는 다음과 같습니다. //byte[] ascii = System.Text.ASCIIEncoding.Default.GetBytes("가나다라"); byte[] ..
유니티뿐만 아니라 UI/UX관련 작업을 하다 보면 UI쓰레드가 아닌 곳에서 작업하다가 문제가 생기는 경우가 종종 있습니다. 얼마 전 서버에서 온 데이터를 UI 뿌리는 테스트를 하고 있었는데 UI가 갱신되지 않는 현상이 일어났습니다. * 테스트에 사용된 버전 : Unity 2020.3.25f1 연관글 영역 1. 다른 쓰레드 이런 경우 원래는 에러가 나야 하지만 유니티도 그렇고 다른 플랫폼도 그렇고..... 에러가 안 나는 경우가 있긴 합니다. ㅎㅎㅎㅎ 결국 올 게 왔구나 하면서 검색을 하는데.... 뭐지? 증상을 격은 사람들은 많은데 해결에 대한 내용이 없지;;;; C#은 쓰레드에 액션만 던져주면 간단하게 해결이 가능합니다. 참고 : [WPF] 다른 스레드에서 UI쓰레드 접근하기 - Dispatcher.I..
audio: Failed to create voice 'adc' 라는 메시지와 함께 에뮬레이터에 디버깅이 안 되는 현상이 일어났습니다..... 1. 해결방법인터넷에 검색해보면 'dPad'설정을 바꿔 보라느니 안드로이드 스튜디오 설치를 다시 하라느니 하는 말이 있는데.....다 안됩니다. 메시지를 잘 보면 '오디오인'쪽에서 에러가 난것으로 보입니다. 그렇다면 컴퓨터에 마이크를 꼽아보고 해봅시다.그러니 진행은 됩니다.. 2. 응용이대로라면 설정에서 오디오 인풋만 제거하면 마이크 안 꼽아도 될것 같습니다. 그런데 막상 해보면 안됩니다;; 마무리검색해보면 마이크가 연결돼있지 않거나 운영체제가 마이크를 인식할 수 없는 상황에서 발생하는 경고라고 합니다. 그런데 잘 쓰던 에뮬레이터였는데....갑자기 이런 문제가....
7.0에서 되길래 별 생각 없이 프로덕션으로 올렸는데 8.0유저들이 알림 안 온다고 합니다 ㅡ.-;;; 그래서 빌드를 돌리니.... 잘쓰던 코드가 업데이트하고 나니 오류가 납니다. Unhandled Exception: Java.Lang.NoSuchMethodError: 알림이 뭐 어쨌다고?????? 1. 안드로이드 알림이 바뀌었다. 안드로이드 오래오(8.0, Oreo) 버전부터 알림의 구조가 좀 바뀌면서 자마린도 업데이트가 있었습니다. 어찌 됐건 오래오 버전부터는 'Notification.Builder'를 사용해야 합니다. 2. 오래오 미만버전에서는 안된다 'Notification.Builder'로 바꾸고 나니 이제 오래오 미만 버전에서 오류가 납니다 ㅋㅋㅋㅋ MSDN을 보다가 뭔가 다른 걸 발견했습니다..
이 메시지가 리젝(reject)사유로 뜨면 사실상 이것저것 다 확인해봐야 합니다. -_-;;;; Dear Developer, We identified one or more issues with a recent delivery for your app, "[앱 이름]". Please correct the following issues, then upload again. Invalid Signature - A sealed resource is missing or invalid. The file at path [앱 구분키] is not properly signed. Make sure you have signed your application with a distribution certificate, not an..
자마린으로 프로그램을 만들다 보면 가끔 어느 순간 부터 iOS 시뮬레이터에 연결하여 디버깅하면 시뮬레이터도 올라오고 프로그램도 설치되지만 디버깅은 끊기는 현상을 격을 수 있습니다. 1) 앱이 종료되었습니다. 시작에 실패했습니다. 'iPhone 8 Plus iOS 11.3'에서 '[번들 식별자]' 앱을 시작할 수 없습니다. 오류: error HE0042: Could not launch the app '[번들 식별자]' on the device '[iPhone 기종]': The request to open "[번들 식별자]" failed.. 자세한 내용은 로그를 확인하세요. 앱이 종료되었습니다. 2) Launch failed. The app '[번들 식별자]' could not be launched on '..