유니티에서 직렬화 가능 유형 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 변수..
유니티 콘솔(console)에 로그 메시지 출력하기(Debug.Log) Debug.Log 함수를 사용하여 프로그램을 디버깅하는데 도움이 되는 정보 메시지를 출력할수있습니다. 문자열 표현으로 변환할 문자열 또는 개체를 함수의 파라미터로 전달합니다. https://docs.unity3d.com/ScriptReference/Debug.Log.html
유니티에서 private 변수를 인스펙터(inspector)에서 표시 일반적으로 스크립트에서 private으로 선언한 변수는 에디터의 인스펙터(inspector)에서 표시하지않습니다. private 변수를 인스펙터에서 표시하는 방법( [SerializeField], Debug mode) [SerializeField] 1)인스펙터에서 private 변수를 표시하려면 변수 선언 상단에 [SerializeField]를 기입합니다. 2)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다. Debug mode 3)인스펙터의 우측 상단에서 Debug를 선택합니다. 4)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다.
유니티 에셋 수평선 밴딩 이펙트 에셋 Horizon Bending https://assetstore.unity.com/packages/tools/particles-effects/horizon-bending-55306 Horizon Bending 소개영상 https://youtu.be/5TUSVj8yka8 Horizon Bending 튜토리얼 https://youtu.be/kdMws6Td8iA
유니티 브러시 페인팅 도구 폴리 브러시(poly brush) 브러시 도구를 사용하여 메시 변형 모델링(sculpt mesh), 텍스처 페인팅(blend textures and colors), 버텍스 컬러 페인팅(paint vertex colors), 오브젝트 분산(scatter objects) 기능을 사용할수있는 패키지(Package)로 유니티 패키지 관리자에서 다운로드할 수 있습니다. https://unity.com/features/polybrush 폴리 브러시 소개영상(poly brush) https://youtu.be/JQyntL-Z5bM
유니티 URP 프로젝트에서 라이트의 렌더링 우선순위 설정하기 유니티 URP에서 기본적으로 객체당 조명 제한 개수는 4개로 설정되어있습니다. 씬에 다수의 조명이 있으면 근접한 조명의 밝기와 품질 설정에 따라서 렌더링 방법이 런타임에서 결정됩니다. 1)씬에 3D오브젝트와 다섯개의 조명을 추가합니다. 예에서 전체 다섯개중에서 네개의 조명이 3D오브젝트에 영향을 미치고있는것을 확인할수있습니다(보라색 제외) 2)3D오브젝트의 위치를 이동시킵니다. 오브젝트에 영향을 미치는 조명의 개수는 네개로 동일하지만 3D오브젝트의 위치에 따라서 영향을 미치는 조명이 달라지는것을 확인할수있습니다(오브젝트의 위치에 따라서 빨간색과 보라색 조명이 자동으로 영향을 미칩니다) 3)렌더링 우선순위를 설정할 조명을 선택하고(예에서 빨간색)..
유니티 URP 프로젝트에서 객체당 라이트 제한 개수 설정(per object limit) 1)씬에 6개의 조명을 추가합니다. 2)6개의 조명중 4개만 plane 오브젝트에 영향을 미치고있는것을 확인할수있습니다. 유니티 URP에서 객체당 조명 제한 개수는 기본 4로 설정되어있습니다. 3)객체당 라이트 한계(per object limit)를 설정하려면 project settings의 graphics에서 URP 에셋으로 이동합니다. 4)lighting의 additional lights에서 per object limit가 기본값 4로설정되어있는것을 확인할수있습니다. 5)최대값인 8로 설정합니다. 성능 고려사항 때문에 URP에서 객체당 라이트 제한은 8개입니다. 6)씬에 8개의 조명을 추가합니다. 7)8개의 조명..
유니티에서 콜라이더의 충돌 무시(Physics.IgnoreCollision) Physics.IgnoreCollision(collider1, collider2) 함수는 충돌 감지 시스템이 collider1과 collider2 사이의 충돌을 무시하도록 설정합니다. https://docs.unity3d.com/ScriptReference/Physics.IgnoreCollision.html 1)충돌에 사용할 두개의 오브젝트를 생성합니다(sphere1, sphere2) 2)예에서 Sphere1의 콜라이더를 트리거로 설정하고(isTrigger 체크) 리지드바디 컴포넌트를 추가하였습니다. 3)Sphere2의 콜라이더에서 isTrigger 속성을 체크해제하고 리지드바디 컴포넌트를 추가하지않았습니다. 4)Sphere1의..
유니티(unity)에서 Time 클래스 사용하기 Time 클래스는 유니티에서 가져올수있는 시간 정보에 대한 다양한 속성을 제공합니다. https://docs.unity3d.com/ScriptReference/Time.html Time.deltaTime 마지막 프레임에서 현재 프레임까지의 간격(초)을 의미합니다. 아래 예에서 매 프레임마다 프레임 간격 시간을 출력하는것을 확인할수있습니다. Time.unscaledDeltaTime 타임 스케일(timeScale)에 독립적인 deltaTime을 의미합니다. Time.time 현재 프레임의 시작 시간을 의미합니다. 동시에 게임을 시작하고 경과한 시간을 의미한다. Time.realtimeSinceStartup 게임의 일시 중지 영향을 받지않는 현재 프레임의 시작 ..
유니티(unity)에서 mathf 클래스의 수학함수 사용하기 Mathf 클래스는 게임의 개발에서 필요한 다양한 종류의 수학 함수 모음을 제공합니다(보간, 값 제한과반복, 로그함수,거듭제곱근과 제곱근, 삼각함수, 기타) https://docs.unity3d.com/2021.1/Documentation/Manual/class-Mathf.html https://docs.unity3d.com/kr/2021.1/ScriptReference/Mathf.html Mathf.Clamp() 주어진 값에 대해서 최소값(min)과 최대값(max) 사이의 범위로 제한한 값을 반환합니다. 값이 최소값보다 작으면 최소값을 반환하고 값이 최대값보다 크면 최대값을 반환합니다. 아래 코드에서 변하는 오브젝트의 위치 x(transfor..