유니티 안드로이드 빌드4 - 삼성 갤럭시에 apk 파일 설치하기 1)유니티 에디터에서 빌드를 완료하면 생성한 apk파일을 확인할수있다. 2)컴퓨터에 모바일 장치를 연결하고 폴더로 이동한다. 예에서는 삼성 갤럭시를 이용하였다. 3)phone 폴더에 새로운 폴더를 생성한다. 4)예에서 새로 생성한 폴더의 이름을 apkinstall로 설정하였다. 5)apk파일을 해당 폴더에 복사한다. 6)갤럭시 홈 화면에서 내 파일 앱으로 이동한다. 7)내장 메모리로 이동한다. 8)새로 생성한 폴더(apkinstall)로 이동한다. 9)해당 폴더에서 복사한 apk파일을 선택한다. 10)애플리케이션 설치를 진행한다. 11)play 프로텍트에 의해 차단됨 대화상자에서 무시하고 설치를 진행한다. 12)앱이 설치되면 완료한다. 13..
유니티 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)게임을 시작하고 순차적으로 버튼을 클릭하면 정상적으로 출력한다.
lospec - 픽셀 아트 제작을 위한 다양한 정보를 제공하는 웹사이트 lospec는 픽셀 아트 및 디지털 아트를 제작하기위한 유용한 도구와 정보를 제공하는 웹사이트이다. 웹에서 사용할수있는 무료 픽셀 아트 프로그램인 Lospec Pixel Editor, 픽셀 아트를 위한 팔레트 목록인 palette list등의 제작도구를 이용할수있으며 픽셀 아트에 관련된 유용한 정보와 튜토리얼을 확인할수있다. https://lospec.com/ Lospec - Free tools and resources for people making pixel art, voxel art and more Free online tools for people creating pixel art and other low-spec art. l..
Pixel FX Designer - 픽셀 아트 느낌의 파티클 이펙트를 제작할수있는 프로그램 픽셀 아트 느낌의 파티클 이펙트를 제작할수있는 프로그램이다. 프로그램이 제공하는 몇가지 옵션을 설정하여 실시간으로 작동하는 이펙트 파티클을 디자인하고 PNG 스프라이트시트, GIF파일로 내보내기할수있다. Pixel FX Designer 구매(steam) https://store.steampowered.com/app/939360/Pixel_FX_Designer/ Pixel FX Designer 웹사이트 https://codemanu.itch.io/particle-fx-designer 소개영상 https://youtu.be/fyP-oCGButw?list=PLLhVKO3HeaaypCtioAAHwSaMKBG6gEQHt 튜..
유니티에서 버튼이 반응하지않는경우 button의 영역에 같이 존재하는 다른 ui 오브젝트들의 raycast에 의하여 런타임에서 사용자 인풋에의해 버튼이 반응하지않는 경우 1)아래 예에서 씬에 canvas를 생성하고 button, panel를 구성하였다. 2)panel을 hierarchy에서 button의 하단에 위치시켰다. button과 panel이 같은 영역에 존재하면 런타임에서 버튼은 정상적으로 반응하지않는다. 3)panel의 image 컴포넌트에서 raycast target이 체크되어있는것을 확인할수있다. 4)raycast target을 체크해제하면 해당 오브젝트는 레이캐스팅 대상에서 제외된다. 5)런타임에서 버튼이 정상적으로 반응하는것을 확인할수있다.
유니티 URP에서 오버레이(overlay) 카메라 사용하기 오버레이 카메라(overlay camera)는 다른 카메라의 출력 위에 뷰를 렌더링하는 카메라이다. 오버레이 카메라를 사용하여 2D UI에 존재하는 3D 개체 또는 2D UI 위에 존재하는 3D개체를 렌더링할수있다. 1)씬에 캔버스와 ui를 생성하였다. 2)씬에 새로운 3D 게임오브젝트와 카메라를 생성한다. 3)game view에서 3D 오브젝트 위에 UI가 표시되는것을 확인할수있다. 4)현재 캔버스는 render mode가 screen space - overlay로 설정되어있는것을 확인할수있다. 5)screen space - camera로 변경하고 render camera에 메인 카메라를 설정한다. 6)메인 카메라(main camera)의 re..
유니티 URP 에서 custom render passes를 사용하여 아웃라인 렌더링하기 URP의 custom render passes와 custom shader를 사용하여 캐릭터의 아웃라인을 렌더링하는방법이다. 유니티에서 제공하는 샘플 커스텀 쉐이더(ToonBasicOutline.shader)를 사용하였다. gameobject layer 1)씬에 아웃라인을 렌더링할 캐릭터 및 게임오브젝트를 추가한다. 2)게임 오브젝트의 재질을 설정한다. 예에서 URP의 Lit 쉐이더를 사용하는 재질을 설정하였다. 3)게임 오브젝트의 레이어를 설정한다. 새로운 레이어를 추가하려면 인스펙터에서 layer의 add layer로 이동한다. 4)새로운 레이어를 추가하고 게임오브젝트에 해당 레이어를 설정한다. custom shad..
유니티에서 객체를 바이너리로 저장하기(BinaryFormatter) 마이크로소프트 공식 설명서에서 BinaryFormatter을 사용한 데이터처리는 보안에 취약하기 때문에 사용하지않을것을 권고하고있다. https://docs.microsoft.com/ko-kr/dotnet/standard/serialization/binaryformatter-security-guide 아래는 예제로써 BinaryFormatter 클래스를 사용하여 객체를 이진형식 및 바이너리(binary)로 직렬화하고 파일을 저장 또는 바이너리 파일을 역직렬화하여 객체를 생성하는 방법이다. 1)예에서 다음과 같이 클래스를 정의하였다. 2)클래스에 [Serializable] 어트리뷰트를 지정한다. 3)클래스의 객체를 생성한다. 4)Binar..
유니티에서 사용자 정의 클래스 만들기(직렬화, serializable) [serializable] 어트리뷰트를 사용하여 클래스를 직렬화하는 방법 1)아래 예에서 test 클래스를 정의하였다. 2)인스펙터에서 해당 클래스의 필드가 표시되지않는다. 3)클래스에 [Serializable] 어트리뷰트를 지정한다. [Serializable]는 클래스 또는 구조체를 직렬화 할수 있음을 나타낸다. test 클래스 유형의 private 변수를 선언하고 [SerializeField] 어트리뷰트를 지정한다. 4)인스펙터에서 클래스의 필드가 정상적으로 표시되는것을 확인할수있다.
유니티에서 splash screen을 사용하여 게임의 시작화면 구성하기 1)상단의 edit 메뉴에서 project settings로 이동한다 2)player의 splash image로 이동한다. 3)예에서 사용한 유니티 무료버전인 Unity Personal는 유니티 스플래시 스크린, 유니티 로고를 비활성화할수없다. show splash screen, show unity logo에 체크되어있는것을 확인할수있다. (unity plus 또는 unity pro는 이 속성을 체크해제할수있다) 4)현재 설정한 splash screen을 확인하려면 preview를 클릭한다. 5)game 뷰에서 스플래시(splash) 및 로고(logo)의 애니메이션이 실행되는것을 확인할수있다. 배경이미지 설정하기 6)splash의 배..
유니티에서 json 파일 쓰기 및 읽기(FileStream, Encoding) 1)예에서 json형식으로 저장할 객체의 클래스를 정의하였다. 2)JsonUtility.ToJson 함수를 사용하여 객체를 json 형식으로 직렬화한다. 3)FileStream 클래스와 Encoding 클래스를 사용하기위해서 using 지시문으로 아래 두 네임스페이스를 추가한다. using System.IO;, using System.Text; 4)아래 스크립트에서 객체로부터 Json형식의 문자열을 생성하고 해당 문자열을 바이트 시퀀스로 인코딩한후 파일을 생성한다. 5)해당 경로에서 생성한 json파일을 확인할수있다. 6)아래 스크립트에서 파일의 바이트 시퀀스를 문자열로 디코딩하고 객체를 생성한다.