유니티 안드로이드 빌드4 - 삼성 갤럭시에 apk 파일 설치하기 1)유니티 에디터에서 빌드를 완료하면 생성한 apk파일을 확인할수있다. 2)컴퓨터에 모바일 장치를 연결하고 폴더로 이동한다. 예에서는 삼성 갤럭시를 이용하였다. 3)phone 폴더에 새로운 폴더를 생성한다. 4)예에서 새로 생성한 폴더의 이름을 apkinstall로 설정하였다. 5)apk파일을 해당 폴더에 복사한다. 6)갤럭시 홈 화면에서 내 파일 앱으로 이동한다. 7)내장 메모리로 이동한다. 8)새로 생성한 폴더(apkinstall)로 이동한다. 9)해당 폴더에서 복사한 apk파일을 선택한다. 10)애플리케이션 설치를 진행한다. 11)play 프로텍트에 의해 차단됨 대화상자에서 무시하고 설치를 진행한다. 12)앱이 설치되면 완료한다. 13..
유니티 안드로이드 빌드3 - 프로젝트 player settings, 최종빌드하기 (company name, product name, minimum API level, scripting backend, build) 1)project settings의 player에서 회사명, 상품명(company name, product name)을 입력한다. 2)identification의 package name은 이전에 입력한 company name, product name으로 설정되어있는것을 확인할수있다. 3)최소 API 수준(minimum API level)을 선택한다. 4)scripting backend에서 mono 또는 IL2CPP를 선택한다. 5)64비트 아키텍처를 지원해야한다면 IL2CPP를 선택하고 하단의 ..
유니티 안드로이드 빌드2 - sdk, ndk, jdk 설치(NVIDIA CodeWorks for Android) 엔비디아의 CodeWorks 툴을 사용하여 유니티에 SDK, NDK, JDK를 설치하는 방법 1)아래 엔비디아 웹사이트로 이동하여 NVIDIA CodeWorks for Android를 다운로드한다. 2)다운로드 버전을 선택한다. 예에서 윈도우 버전을 선택하고 다운로드하였다. 3)NVIDIA CodeWorks for Android 설치를 진행한다. 해당 설치 프로그램은 안드로이드 개발에 필요한 몇가지 소프트웨어 패키지를 설치하고 개발 시스템을 구성한다. 4)설치경로를 기본으로 설정하고 다음으로 이동한다. 5)설치 예정인 패키지 목록을 표시한다. 목록에서 안드로이드 sdk, ndk, jdk와 설치..
유니티 안드로이드 빌드1 - 프로젝트를 안드로이드 플랫폼으로 전환하기 1)build settings으로 이동하고 플랫폼 목록에서 안드로이드(android)를 선택한다. 에디터에 대한 android build support 모듈이 설치되어있지않으면 하단의 switch platform버튼이 비활성화된다. 2)이 경우 install with unity hub에서 모듈 설치를 진행할수있다. 3)android build support를 선택하고 확인하면 해당 버전의 에디터에 대한 android build support 모듈 설치를 진행한다. 4)모듈이 정상적으로 설치되면 안드로이드의 추가 빌드옵션이 표시되고 switch platform 버튼이 활성화된다. switch platform을 클릭하면 프로젝트를 안드로이..
유니티 URP에서 legacy shader 사용하지않음 권장 1)아래 예에서 프로젝트는 렌더파이프라인으로 URP를 사용하고있다. 2)씬에 legacy shader를 사용하는 오브젝트를 추가하였다. 3)URP 프로젝트에서 일부 legacy shader를 사용하는 오브젝트들은 씬 또는 런타임에서 정상적으로 렌더링된다. 4)하지만 레거시 셰이더는 SRP Batcher와 GPU 인스턴싱(일부 셰이더)을 지원하지않음으로 최적화에 한계가 있어 권장하지않는다. 재질의 select shader를 선택한다. 5)해당 셰이더가 SRP Batcher와 호환되지않음을 확인할수있다(not compatible) SRP Batcher는 씬에서 CPU 렌더링 속도를 높이는 렌더링 루프로 SRP 프로젝트에서 사용가능하다(URP, HD..
유니티 onClick.AddListener에서 함수의 파라미터 전달 문제 1)예에서 아래와 같이 캔버스에 버튼을 구성하였다. 2)아래 스크립트의 for구문에서 순차적으로 버튼을 클릭했을때 호출되는 함수를 추가하고 함수에 전달하는 인수로 iteration 변수를 설정하였다. 3)게임을 시작하고 순차적으로 버튼을 클릭하면 의도한 iteration 변수를 출력하지않는것을 확인할수있다. 4)for 구문 내에서 임시적으로 정수형 변수를 선언하고 이 변수를 인수로 전달한다. 5)게임을 시작하고 순차적으로 버튼을 클릭하면 정상적으로 출력한다.
유니티 애니메이션 뷰에서 클립의 속성 목록이 노란색으로 표시되는 경우 1)씬에 애니메이션을 사용하는 모델을 추가하였다. 2)animation view에서 게임 오브젝트가 사용하는 애니메이션(우측 타임라인) 및 해당 애니메이션에 의해 제어되는 게임 오브젝트, 속성 목록(좌측)을 확인할수있다. 3)씬에서 게임 오브젝트의 이름을 변경하면 animation view에서 해당 게임 오브젝트 및 하위 게임 오브젝트의 속성 목록이 노란색으로 표시되며 애니메이션이 동작하지않는다(the gameobject or component is missing) 4)기존의 이름으로 재설정하면 정상적으로 목록을 표시하고 애니메이션이 동작한다. 5)이와같이 계층에 있는 게임 오브젝트의 이름과 해당 게임 오브젝트에 대한 애니메이션 속성의..
게임을 개발 및 출시하는 과정에서 테스트 종류 - 알파, 베타(CBT, OBT), 기타알파 테스트(Alpha Test)게임의 개발 초기 단계에서 게임의 기능적 문제나 큰 버그들을 해결하기 위해 내부적으로 수행하는 테스트 베타 테스트(Beta Test)CBT(Closed Beta Test) 제한된 인원(테스터)을 대상으로 게임을 테스트하는 단계. 주로 초대받은 인원들이 참여하여 게임의 핵심 시스템, 안정성 및 버그를 점검하는데 중점을 둡니다. OBT(Open Beta Test) 모든 사용자가 참여할 수 있는 공개 베타 테스트. 게임의 서버 성능, 대규모 사용자 경험을 테스트하며 최종 출시 전에 버그 수정 및 최적화를 위한 중요한 단계입니다. 기타FFT(Family and Friend Test)친구 또는..
유니티에서 버튼이 반응하지않는경우 button의 영역에 같이 존재하는 다른 ui 오브젝트들의 raycast에 의하여 런타임에서 사용자 인풋에의해 버튼이 반응하지않는 경우 1)아래 예에서 씬에 canvas를 생성하고 button, panel를 구성하였다. 2)panel을 hierarchy에서 button의 하단에 위치시켰다. button과 panel이 같은 영역에 존재하면 런타임에서 버튼은 정상적으로 반응하지않는다. 3)panel의 image 컴포넌트에서 raycast target이 체크되어있는것을 확인할수있다. 4)raycast target을 체크해제하면 해당 오브젝트는 레이캐스팅 대상에서 제외된다. 5)런타임에서 버튼이 정상적으로 반응하는것을 확인할수있다.
구글 플레이 게임 서비스(Google Play Game Services, GPGS) 구글 플레이 게임 서비스(Google Play Game Services, GPGS)는 구글이 제공하는 개발자들을 위한 서비스로 Android 앱 및 게임에서 다양한 게임 관련 기능을 제공하며 플레이어들 간의 상호작용을 촉진하고 게임의 사용자 환경을 개선하는 데 도움을 주는 플래폼입니다(GPGS는 Android 플랫폼에 특화된 서비스로, iOS나 기타 플랫폼에서는 사용할 수 없습니다) https://developers.google.com/games/services/?hl=ko GPGS의 주요기능 리더보드(Leaderboards), 도전과제(Achievements), 다중 플레이어(Multiplayer), 저장소(Saved ..
NHN TOAST gamebase - 게임 런칭 및 운영을 위한 플랫폼 네이버에서 제공하는 TOAST gamebase는 게임을 개발하고 운영하는데 필요한 다양한 기능들(인증, 결제, 지표/통계, 푸시, 게임운영툴, 게임보안, 리더보드등)을 통합 SDK로 제공하여 빠르고 효율적으로 게임을 개발, 서비스할수있는 플랫폼이다. TOAST gamebase 웹사이트 https://gameplatform.toast.com/ko_KR/service/gamebase TOAST gamebase 소개영상 https://youtu.be/2z6mShT3o64 TOAST gamebase 사용 가이드 http://docs.toast.com/ko/Game/Gamebase/ko/Overview/ 유니티에서 gamebase settin..
유니티에서 객체를 바이너리로 저장하기(BinaryFormatter) 마이크로소프트 공식 설명서에서 BinaryFormatter을 사용한 데이터처리는 보안에 취약하기 때문에 사용하지않을것을 권고하고있다. https://docs.microsoft.com/ko-kr/dotnet/standard/serialization/binaryformatter-security-guide 아래는 예제로써 BinaryFormatter 클래스를 사용하여 객체를 이진형식 및 바이너리(binary)로 직렬화하고 파일을 저장 또는 바이너리 파일을 역직렬화하여 객체를 생성하는 방법이다. 1)예에서 다음과 같이 클래스를 정의하였다. 2)클래스에 [Serializable] 어트리뷰트를 지정한다. 3)클래스의 객체를 생성한다. 4)Binar..