유니티에서 임의의 수를 반환하는 함수(Random.Range) 무작위로 정수 및 실수를 반환하는 Random.Range 함수 사용법. Random.Range 함수는 사용자가 설정한 두 인수 범위내에서 무작위로 도출한 수를 리턴한다. public static float Range(float min, float max); 1)예에서 정수 1과 4 사이 임의의 정수를 반환한다. 2)예에서 max 인수인 최대값 5는 반환에서 제외되는것을 확인할수있다. 3)예에서 1.0와 5.0 사이 임의의 실수를 반환한다.
유니티에서 자식(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..
안드로이드 모바일 장치 텍스처 압축형식(ETC1, ETC2, ASTC )ETC(Ericson Texture Compression)는 주로 모바일 장치에서 텍스처의 크기를 줄여 메모리 사용을 최적화하고 성능을 개선하는 것을 목표로 개발된 손실 텍스처 압축 기술로 ETC1, ETC2가 존재합니다. 안드로이드 운영체제의 OpenGL ES 그래픽 API에서 사용될수있습니다.https://en.wikipedia.org/wiki/Ericsson_Texture_Compression ETC1 OpenGL ES 2.0 이상을 지원하는 기기에서 사용 가능합니다(안드로이드 상당 부분의 장치에서지원) 투명도를 직접적으로 지원하지않지만 알파 구성요소에 보조 텍스처 파일을 사용할수있습니다. 투명한 영역을 가진 텍스처를 압축할..
유니티 그래픽 api - OpenGL ES OpenGL ES는 콘솔, 핸드폰, 자동차등의 모바일 및 임베디드 시스템에서 2D, 3D 컴퓨터 그래픽을 렌더링하기 위한 그래픽 API이다. OpenGL ES는 크로스 플랫폼 그래픽 API인 OpenGL의 하위 집합(subset)이며 현재 여러 버전이 존재한다(OpenGL ES1.X, OpenGL ES2.0, OpenGL ES3.0, OpenGL ES3.1) https://www.khronos.org/opengles/ https://en.wikipedia.org/wiki/OpenGL_ES 안드로이드는 API레벨에 따라서 여러 버전의 Open GLES를 지원한다(OpenGL ES1.0및 1.1, OpenGL ES2.0, OpenGL ES3.0, OpenGL ES3..
유니티 에셋 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)녹화 버튼을..
c# Enum.Parse함수로 문자열을 열거형 개체로 변환 1)아래 예에서 열거형을 선언하고(animalTYPE) 해당 열거형 변수를 선언하였다(myanimalTYPE) 2)Enum.Parse 함수의 매개변수로 열거형 형식(typeof(animalTYPE))과 문자열을("rabbit")을 지정한다. 3)Enum.Parse 함수에서 문자열에 해당하는 열거형 개체를 반환한다.