유니티의 패키지(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
유니티에서 직렬화 가능 유형 https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 공용 비정적 필드(public nonstatic fields)를 직렬화할수 있습니다(직렬화 가능 유형, serializable types) [SerializeField] 속성으로 표시된 비공용 비정적 필드(nonpublic nonstatic fields)를 직렬화할수 있습니다. 정적 필드(static fields)를 직렬화할수 없습니다. 속성(properties)을 직렬화할수 없습니다. 직렬화 가능 유형(serializable types) UnityEngine.Object에서 상속되는 모든 클래스(GameObject, Component, MonoBehavi..
유니티에서 인스펙터 Debug mode 활성화하기 디버그 모드(Debug mode)를 활성화하면 인스펙터에서 해당 클래스의 속성과 값을 표시합니다. https://docs.unity3d.com/Manual/InspectorOptions.html Normal mode 1)일반 모드(Normal)에서는 컴포넌트의 속성에 대한 편집기로 구성된 인스펙터를 확인할수있습니다. Debug mode 2)인스펙터의 우측 상단에 표시한곳을 클릭하고 debug를 선택합니다. 3)디버그 모드(Debug mode)에서는 컴포넌트의 속성과 값을 표시하는것을 확인할수있습니다. 4)디버그 모드에서는 private으로 선언한 멤버 변수를 인스펙터에서 표시합니다.
유니티에서 SerializeField 속성 사용하기(비공개 필드 직렬화) 일반적으로 유니티가 스크립트 컴포넌트를 직렬화할때 public 필드만 직렬화합니다. private으로 선언한 변수는 인스펙터(inspector)에서 표시하지않습니다. private으로 선언한 변수 또는 비공개 필드를 직렬화하려면 SerializeField 속성을 추가합니다. [SerializeField] https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 1)private 필드를 직렬화하려면 해당 필드의 상단에 [SerializeField]를 기입합니다. [SerializeField]는 private 필드를 직렬화하여 인스펙터에서 해당 클래스의 private 변수..
유니티에서 private 변수를 인스펙터(inspector)에서 표시 일반적으로 스크립트에서 private으로 선언한 변수는 에디터의 인스펙터(inspector)에서 표시하지않습니다. private 변수를 인스펙터에서 표시하는 방법( [SerializeField], Debug mode) [SerializeField] 1)인스펙터에서 private 변수를 표시하려면 변수 선언 상단에 [SerializeField]를 기입합니다. 2)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다. Debug mode 3)인스펙터의 우측 상단에서 Debug를 선택합니다. 4)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다.
유니티에서 시간의 주기를 가지고 행위를 일으키기(Update함수) 예에서 업데이트 함수 내에 작성한 조건문(if-else)은 시간의 주기를 가지고 특정 행위를 일으킨다. 시간이 되면(if(updateTime>coolDown)) 행위를 일으키고 updateTime를 초기화한다. updateTime의 업데이트는 시간의 흐름을 의미한다 (updateTime += Time.deltaTime;) 콘솔에서 coolDown 시간에 도달할때 호출함수명과 시간이 출력되는것을 확인할수있다.
유니티에서 원형 이미지 슬라이더 만들기 unity에서 원형(radial360) 이미지 슬라이더를 구현하는 방법(Image.fillAmount, Mathf.Lerp) 1)씬에 이미지(image) 오브젝트를 생성한다. 2)이미지의 소스 이미지(source image)에 원형 이미지를 설정한다. image type으로 filled를 선택하고 fill method으로 radial 360를 선택한다. fill origin, fill amount, clockwise 속성에 아래와 같이 설정한다. 3)fill amount는 0부터 1까지의 값으로 이미지를 채운 정도를 설정한다. 이미지의 fill amount 수치를 조절하면 원형 이미지가 채워지는것을 확인할수있다. 4)스크립트에서 UnityEngine.UI 네임스페이..
유니티에서 그리드 프로젝터(grid projector)사용하기 게임 물리엔진에서 씬에 존재하는 오브젝트들의 현실적인 스케일은 매우 중요하다. 그리드 프로젝터(grid projector)는 오브젝트에 그리드(grid)를 투사하여 캐릭터, 사물, 지형등의 스케일을 가늠하기위해 사용할수있다. 1)에셋 스토어에서 유니티에서 제공하는 기본에셋인 standard assets를 다운로드한다. 2)projectors 하위의 에셋을 가져오기한다(import) 3)projectors의 prefabs폴더에 GridProjector 프리팹이 존재하는것을 확인할수있다. 4)씬에 GridProjector를 추가한다. 5)프로젝터의 프리스텀과 교차하는 오브젝트는 흰색 그리드 텍스쳐가 투사되는것을 확인할수있다. 6)프로젝터(proj..
유니티에서 임의의 수를 반환하는 함수(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..