유니티에서 자식(child) 오브젝트에 접근하기(GetChild , Find) 자식(child) 오브젝트의 트랜스폼(transform)을 반환하는 함수(Transform.GetChild, Transform.Find) 1)예에서 씬에 empty gameobject를 생성하고 4개의 자식(child) 오브젝트를 추가하였다. 2)Transform.GetChild GetChild 함수는 해당 인덱스의 자식 오브젝트 transform을 반환한다. 예에서 0, 1, 2번 인덱스의 자식 오브젝트 이름을 출력한다. 3)Transform.Find Find 함수는 해당 이름의 자식 오브젝트를 검색하고 트랜스폼을 반환한다. 예에서 이름이 Capsule인 자식오브젝트를 검색하고 비활성화한다.
유니티에서 월드 포지션(world position)과 로컬 포지션(local position) Transform.Position은 월드에서 오브젝트의 절대 좌표값을 나타낸다(원점 0,0,0로부터의 위치) Transform.LocalPosition은 부모 오브젝트에 대한 자식 오브젝트의 상대적 위치를 나타낸다. 1)원점(0,0,0)에 empty gameobject를 생성하고 2개의 자식 오브젝트(sphere cube)를 추가하였다. 2)자식 오브젝트의 위치를 이동시킨다. 2)sphere의 transform에서 position 값을 확인한다. 3)cube의 transform에서 position 값을 확인한다. 4)부모 오브젝트를 x축으로 이동시켰다. 5)자식 오브젝트(Sphere, cube)의 transfo..
유니티에서 스프라이트 시트(sprite sheet)를 사용한 2D 애니메이션 스프라이트 시트(sprite sheet)는 여러개의 작은 그래픽을 그리드(grid)에 정렬하여 구성한 비트맵 이미지 파일이다 게임 개발에서 캐릭터의 연속적인 키 포즈를 한장의 이미지에 구성하여 2D 애니메이션 제작에 사용된다. 1)유니티에서 스프라이트 시트 이미지를 가져오기한다(import) 2)import settings에서 텍스처 유형(texture type)을 sprite(2D and UI), 스프라이트 모드(sprite mode)를 multiple로 설정하고 apply를 클릭한다. 3)패키지 매니저에서 2D Sprite 패키지를 설치한다(install) 4)import settings에서 스프라이트 편집기(sprite e..
유니티 에셋 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 quality) 유니티가 렌더링하는 텍스처의 품질을 설정하여(texture quality) 모든 텍스처의 해상도를 줄이는 방법 1)project settings의 quality에서 그래픽 품질 수준에 대한 텍스처 품질을 설정할수있다(texture quality) 아래 예에서 PC Standalone와 안드로이드의 중간 품질(medium quality) 수준에 texture quality가 full res로 설정되어있는것을 확인할수있다. 해당 플랫폼의 수준에서 텍스처를 전체 해상도로 렌더링하는것을 의미한다. 2)texture quality는 유니티가 텍스처를 렌더링할때 사용하는 네개의 선택 옵션 Full Res, Half Res, Quarter Res,..
유니티에서 텍스처의 해상도 낮추기(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)텍스..
유니티에서 프로젝트의 그래픽 quality 설정하기 1)프로젝트의 각 플랫폼에 대한 그래픽 품질 수준을 설정하려면 project settings의 quality로 이동한다. quality에서 각 플랫폼에 대하여 사전 설정된 세개의 품질 수준을 기본적으로 제공한다(low, medium, high) 2)단계를 선택하면 해당 레벨에서 사용하는 사전설정된 렌더링 속성들을 확인할수있다. 3)모바일 또는 저성능 하드웨어의 경우 상대적으로 낮은 레벨을 선택한다(low) 레벨이 높으면(high) 그래픽 품질이 높아지지만 프레임속도를 희생한다. 예를들어 high 레벨과 다르게 low 레벨은 기본적으로 vsync를 사용하지않음으로 설정되어있다(vsync count- dont sync) 4)URP의 경우 각 레벨에 대한 렌..
유니티에서 안드로이드 프로파일링하기(profiler) 유니티에서 데스크톱에 연결된 안드로이드(모바일 장치)의 어플리케이션(게임)을 프로파일링 하는 방법 1)데스크톱에 모바일 장치를 연결하고 build settings에서 development build에 체크하고 build and run을 클릭한다(빌드를 시작하기전에 모바일 장치에서 USB디버깅을 허용해야한다) 2)빌드가 완료되면 모바일 장치에 어플리케이션이 설치되며 게임이 실행된다. 3)프로파일러를 표시하기위해 상단의 window 메뉴에서 analysis의 profiler를 선택한다. 4)프로파일러 타겟(target)에서 현재 연결된 모바일 장치(안드로이드 플레이어)를 선택하면 실행중인 게임에 대한 프로파일링이 진행되는것을 확인할수있다. 5)녹화 버튼을..
유니티에서 reset함수 사용하기 reset함수는 사용자가 게임 오브젝트에 스크립트를 추가할때 또는 해당 컴포넌트를 초기화(reset)할때 호출된다. 편집기 모드(editor mode)에서 사용할수있으며 값을 초기화하는데 사용한다. 1)예에서 새로운 스크립트를 생성하고 reset함수를 선언하였다. 2)게임오브젝트에 해당 스크립트를 추가하면 reset함수가 호출되어 변수의 값을 설정한것을 확인할수있다. 3)인스펙터에서 변수에 새로운 값을 입력하였다. 4)해당 컴포넌트의 컨텍스트 메뉴에서 reset을 선택한다. 5)기본값으로 재설정한것을 확인할수있다.
유니티에서 안드로이드 플랫폼에 빌드실행시 오류(android device is not reponding) 유니티에서 모바일 장치(안드로이드)에 빌드 및 실행시(build and run) 오류 해결방법 1)모바일 장치를 데스크톱에 연결하고 유니티에서 빌드를 진행한다(build and run) 2)모바일에서 USB 디버깅이 비활성화 되어있는 경우 유니티에서 빌드를 진행할때 다음과 같은 오류를 확인할수있다 (android device is not reponding) 3)모바일에서 USB 디버깅을 활성화한다. 삼성 갤럭시 모델의 경우 개발자 옵션에서 USB 디버깅을 활성화할수있다. 4)모바일 장치를 데스크톱에 다시 연결하고 USB 디버깅을 허용한다. 5)유니티에서 빌드를 진행한다(build and run) 6)..
유니티(Unity) 플랫폼 목표 프레임 속도 설정 Application.targetFrameRateApplication.targetFrameRate는 유니티가 게임 렌더링을 시도하는 목표 프레임 속도를 지정합니다. 정수 > 0 또는 -1(기본값) 유니티의 기본 targetFrameRate 값은 -1입니다. 이것은 게임이 플랫폼의 기본 프레임속도(default frame rate)로 렌더링되어야한다는것을 의미합니다. 기본 프레임 속도는 플랫폼에 따라서 상이합니다. 데스크톱기본 프레임 속도(default frame rate)는 달성 가능한 최대 프레임속도입니다(동기화되지 않은 상태로 렌더링)QualitySettings.vSyncCount를 0으로 설정한 경우 Application.targetFrameRat..
유니티에서 모바일(안드로이드)에 빌드실행한 게임을 디버깅하기(명령프롬프트, adb logcat) 유니티에서 모바일(안드로이드 플랫폼)에 게임을 빌드실행하고 윈도우 명령프롬프트에서 디버깅하는 방법 Android SDK 플랫폼 도구중 하나인 adb(안드로이드 디버그 브리지)가 설치되어있어야한다. https://developer.android.com/studio/command-line/adb 1)모바일 장치를 데스크톱에 연결하고 usb 디버깅을 허용한다 (삼성 갤럭시 모델의 경우 개발자옵션에서 usb디버깅을 활성화하고 장치를 재연결하면 usb디버깅을 허용할수있다) 2)유니티의 build settings에서 build and run을 클릭한다. 3)빌드가 정상적으로 완료되면 모바일에서 게임이 실행된다. 4)시스..