유니티의 패키지(pacakge) 라이프사이클 유니티 에디터 버전 2021.1(Unity Editor version 2021.1)부터 패키지는 아래와 같은 수명주기(라이프사이클, lifecycle)을 가집니다. (Experimental, Pre-release, Released, Deprecated) https://docs.unity3d.com/2021.1/Documentation/Manual/upm-lifecycle.html
유니티 실습 예제 공굴리기 게임 만들기1 (플레이어 방향키 이동 설정, 카메라 이동 설정) 1)씬에 sphere, plane 게임 오브젝트를 생성합니다(player, ground) 2)새로운 재질을 생성하고 ground에 할당합니다. 3)플레이어(player)에 리지드바디(rigidbody) 컴포넌트를 추가합니다. 4)상단의 edit 메뉴에서 project settings의 input으로 이동합니다. 5)Horizontal, Vertical 축에 대한 입력이 좌우 및 상하 방향 키로 설정되어있는것을 확인할수있습니다. 6)플레이어(player)에 새로운 사용자 스크립트를 추가합니다(PlayerController) 7)사용자 스크립트를 작성합니다. 게임을 플레이하고 방향 키를 입력하면 플레이어(player)..
유니티에서 카메라 뷰에 스카이박스 배경 설정하기(skybox) 카메라에 스카이박스(skybox) 컴포넌트를 추가하여 카메라 뷰 배경을 설정하는 방법 1)유니티에서 스카이박스의 배경으로 설정한 텍스처를 가져오기한다(import) 2)texture shape에서 cube를 선택한다. 3)apply를 클릭하면 하단 미리보기에서 텍스처 맵핑 결과를 확인할수있다. 4)새로운 재질을 생성한다. 재질의 쉐이더로 skybox의 cubemap를 선택한다. 5)cubemap에 배경으로 사용할 텍스처를 설정한다. 6)스카이박스 배경을 설정할 카메라를 선택한다. 7)카메라의 clear flags가 스카이박스(skybox)로 설정되어있는지 확인한다. 8)카메라 오브젝트에 skybox 컴포넌트를 추가한다. 9)추가된 스카이박스의..
유니티에서 그리드 프로젝터(grid projector)사용하기 게임 물리엔진에서 씬에 존재하는 오브젝트들의 현실적인 스케일은 매우 중요하다. 그리드 프로젝터(grid projector)는 오브젝트에 그리드(grid)를 투사하여 캐릭터, 사물, 지형등의 스케일을 가늠하기위해 사용할수있다. 1)에셋 스토어에서 유니티에서 제공하는 기본에셋인 standard assets를 다운로드한다. 2)projectors 하위의 에셋을 가져오기한다(import) 3)projectors의 prefabs폴더에 GridProjector 프리팹이 존재하는것을 확인할수있다. 4)씬에 GridProjector를 추가한다. 5)프로젝터의 프리스텀과 교차하는 오브젝트는 흰색 그리드 텍스쳐가 투사되는것을 확인할수있다. 6)프로젝터(proj..
유니티에서 Rotate함수를 사용하여 오브젝트 회전시키기 1)씬에 스피어 오브젝트를 생성하였다. 2)새로운 스크립트를 생성한다. 3)Transform.Rotate 함수는 축을 중심으로 오브젝트를 회전시킨다. 예에서 y축을 중심으로 초당 degreePerSecond 도씩 오브젝트를 회전시킨다. 4)스피어 오브젝트에 스크립트를 추가하고 degreePerSecond 수치를 입력한후 게임을 플레이하면 오브젝트가 회전하는것을 확인할수있다.
유니티 에셋 curvy에서 generator의 volume caps사용하기 generator로 생성한 볼륨(volume)에 평평한 캡(cap)을 생성하는 방법 1)씬에 curvy spline을 생성한다. 2)새로운 curvy generator를 생성한다. 3)생성한 generator의 그래프 편집(edit graph)으로 이동한다. 4)새로운 shape extrusion 템플릿을 생성한다. 5)생성한 샘플 템플릿은 5가지 모듈을 사용하여 메시를 생성한다. 6)input spline path의 spline을 제거하고 씬에 생성한 사용자 스플라인을 설정한다 7)사용자 스플라인으로 생성한 shape extrusion 메시를 확인할수있다. 8)메시의 시작과 끝에 hole을 확인할수있다. 9)새로운 volume ..
유니티에서 텍스처의 해상도 낮추기(texture import settings, max size) 1)프로젝트의 에셋 폴더에서 텍스처를 선택하면 inspector 윈도우에서 texture import settings를 표시한다. Texture Import Settings는 유니티가 이미지를 가져오는(import) 방법을 정의한다. 2)플랫폼 특정 오버라이드(platform-specific overrides)의 기본 옵션(default)에서 텍스처의 최대 해상도(max size)가 2048로 설정되어있는것을 확인할수있다. 하단의 미리보기에서 텍스처의 해상도와 크기를 확인할수있다(2048x2048, 2.7mb) 3)최대 해상도를 낮추기 위해 max size를 변경하고(1024) apply를 클릭한다. 4)텍스..
유니티에서 GPU 사용 프로파일러 모듈(GPU usage profiler module)이 지원하는 플랫폼 목록 유니티 프로파일러에서 GPU usage profiler module는 어플리케이션의 GPU 사용량(소요 되는 시간 및 위치)을 확인할수있다. 유니티 2020.3버전의 경우 해당 프로파일러 모듈을 제한적으로 사용할수있으며 아래 표에서 GPU 사용 프로파일러 모듈이 지원하는 플랫폼을 확인할수있다(2020.3버전)
유니티(unity)에서 오브젝트의 축 정렬하기(Quaternion.FromToRotation, Quaternion.LookRotation) Quaternion.FromToRotation, Quaternion.LookRotation 함수를 사용하여 오브젝트를 회전시키고 축 정렬하기 1)아래 예에서 rotateCylinder을 회전시켜서 y축을 targetCylinder의 y축과 일치시키고자한다. 2)아래 스크립트에서 Quaternion.FromToRotation함수를 사용하여 rotateCylinder의 회전을 설정한다. rotateCylinder의 y축(rotateCylinder.transform.up)을 targetCylinder의 y축(targetCylinder.transform.up)과 일치시킨다...
유니티 안드로이드 빌드 - 유효하지않은 NDK 버전 (unity required NDK r19) preferences의 external tools에서 안드로이드 NDK의 설치 경로를 설정했을때 아래와 같은 메시지가 표시된다면 현재 유니티 에디터의 버전이 현재 설치되어있는 NDK의 버전을 지원하지않기때문이다. 1)예에서 유니티 버전 2020.3.0f1을 사용중이며 설치되어있는 NDK의 버전은 ndk r18(NDK 18.1.5063045)이다. 2)유니티가 요구하는 NDK 버전을 확인한다 unity required NDK r19(19.0.5232133) 3)아래 개발자 안드로이드 웹사이트에서 최신 버전의 NDK를 다운로드한다 https://developer.android.com/ndk/downloads?hl..
유니티 에디터 버전에 따라서 요구하는 SDK, JDK, NDK의 버전 1)아래 유니티 공식 기술문서에서 에디터의 버전에 따라서 요구하는 sdk, ndk, jdk버전을 확인할수있다. https://docs.unity3d.com/2020.3/Documentation/Manual/system-requirements.html 2)좌측 상단의 version에서 에디터 버전을 선택한다. 3)Unity Player system requirements의 mobile 섹션에서 유니티를 빌드하고 실행하기 위한 최소 요구 사항을 확인할수있다.
유니티 안드로이드 빌드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를 선택하고 하단의 ..