기본적인 자료형은 다음과 같습니다.
Vector3
Direction | Value |
---|---|
Vector3.forward | new Vector3(0, 0, 1) |
Vector3.back | new Vector3(0, 0, -1) |
Vector3.up | new Vector3(0, 1, 0) |
Vector3.down | new Vector3(0, -1, 0) |
Vector3.right | new Vector3(1, 0, 0) |
Vector3.left | new Vector3(-1, 0, 0) |
Vector3.one | new Vector3(1, 1, 1) |
Vector3.zero | new Vector3(0, 0, 0) |
이벤트 함수의 실행 순서
Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.
주요 스크립트 API
유니티의 주요 Scripting API입니다.
Object.Instantiate
기존의 object를 복제하여 새로운 object를 생성하는 함수입니다. 복제할 때 parameter들을 이용하여 parent object, position, rotation등의 값들을 지정할 수 있습니다.
편집기의 Duplicate 명령과 유사한 방식으로 개체의 복사본을 만듭니다. GameObject를 복제하는 경우 해당 위취와 회전을 지정할 수 있습니다. 구성 요소를 복제하는 경우 연결된 Gaeobject도 선택적 위치 및 회전으로 복제됩니다.
메인 카메라 관리
메인 카메라를 따로 두고, 타겟을 따라가도록 관리합니다.
카메라의 렌더 관리
카메라의 Depth로 카메라의 순서를 조절할 수 있습니다. 한번에 여러 카메라를 이용할 수 있습니다. 여러 카메라를 이용할 때 Tag와 Depth 그리고 Rect를 신경써야 합니다.
유니티 물체이동
- 다음은 행렬의 위치 성분값을 변경합니다.
- 어떤식으로 작동되는지 모르겠습니다. Vector3를 이동시켰는데… 로테이션이 적용됩니다. 로컬 좌표계를 기준으로 적용되는 것 같습니다.
transform.Translate(Vector3.forward * forwardSpeed * Time.deltaTime);
MonoBehaviour
MonoBehavior에 있으면 유니티에서 호출하는 함수목록입니다.
- 부모단이나 자식단에서 Component를 가져오는 것은 관리가 어려워지는 문제가 있습니다. 주로 해당 Object 내에서만 GetComponent하는 식으로 사용합니다.
Mesh
CombinedMesh는 유니티 게임 엔진에서 여러 개의 메쉬를 하나로 결합하여 새로운 메쉬를 만드는 기능입니다. 이 기능을 사용하면 여러 개의 작은 메쉬를 하나의 큰 메쉬로 결합할 수 있으며, 이를 통해 렌더링 성능을 향상시킬 수 있습니다.
CombinedMesh는 보통 동적으로 생성되는 오브젝트를 렌더링할 때 사용됩니다. 예를 들어, 게임에서 적군을 여러 개 생성하여 보여줘야 할 때, 각 적군마다 별도의 메쉬를 만드는 대신에 CombinedMesh를 사용하여 하나의 메쉬로 결합하여 렌더링하면 더욱 효율적인 렌더링을 구현할 수 있습니다.
CombinedMesh는 게임 객체의 메쉬 필터(Mesh Filter) 컴포넌트에 있는 여러 개의 메쉬를 결합하여 하나의 메쉬를 생성합니다. 이 때, 메쉬들은 동일한 머티리얼(Material)을 사용해야 하며, 결합된 메쉬는 하나의 머티리얼로 렌더링됩니다.
Other Package
Mesh Backer
Mesh Baker는 Unity에서 제공하는 기본 기능을 확장하여 다양한 Mesh를 결합하고, 최적화하고, 충돌 및 조명 정보를 캡처하는 기능을 제공하는 플러그인입니다. 이 플러그인은 메시를 백업하고 복원할 수 있는 기능도 제공합니다. 또한, MeshSync는 클라우드 기반 도구로, Unity를 비롯한 다양한 3D 툴간의 Mesh 백업 및 공유를 위한 도구입니다. Asset Store에서 Mesh 백업 및 복원 도구를 찾을 때는 자신이 필요로 하는 기능과 툴과의 호환성을 고려해야 합니다. 이를 통해 작업을 더욱 효율적으로 수행할 수 있습니다.
다음은 메시 베이크를 위한 예시입니다.
관절에 따라 따로 회전하는 메시를 만들기 위해서 적절한 단위로 나누어 베이크 한 후, 결과물을 합쳐 베이크합니다.
- 원본 소스 —> 결과물
- Mesh Bake ( 소스 —> 프리팹 )
- Mesh Bake ( 소스 —> 프리팹 )
- …
이를 위해 베이크하는 과정은 다음과 같습니다.
- MeshBaker를 관리하기 위한 씬을 생성합니다.
- AddingObjectsTool Window로 오브젝트를 선택 후, MeshBaker에 적용합니다.
- 머티리얼을 베이크 합니다. 머티리얼이 없다면 생성해야합니다.
- MeshBaker의 OutputMode를 Bake Into Prefab으로 변경 후, EmptyPrefab을 생성한 후 메시를 베이크합니다.
Spline Mesh
Unity에서 Spline Mesh Asset은 Spline 기반의 메쉬 생성 도구입니다. 이 도구를 사용하면 사용자는 Spline을 따라 이동하며 지형, 도로, 파이프, 철도 등과 같은 복잡한 메쉬를 쉽게 생성할 수 있습니다.
Spline Mesh Asset은 일련의 연속적인 지점을 따라 이동하면서 메쉬를 만드는 Spline 컴포넌트와 연결됩니다. Spline Mesh Asset은 Spline에 대한 기본 설정, 머티리얼, 충돌, UVs 및 기타 메쉬 속성을 정의하는 데 사용됩니다.
Spline Mesh Asset을 사용하면 복잡한 메쉬를 생성하는 데 필요한 수많은 메쉬를 개별적으로 만들 필요가 없으므로 작업 시간을 절약할 수 있습니다. 또한, Spline Mesh Asset은 게임, 시뮬레이션 및 시각화 애플리케이션에서 지형 및 기타 요소를 더 자연스럽게 보이게 하기 위한 효과적인 도구입니다.
- 2021년 4월 1일
- SplineMesh를 사용하면 곡선 콘텐츠를 실시간으로 만들 수 있습니다.
XR
Unity XR 패키지는 Unity에서 Virtual Reality(VR) 및 Augmented Reality(AR) 애플리케이션을 개발할 때 사용되는 다양한 기능을 제공하는 패키지입니다. XR 패키지는 Unity에서 제공하는 공식 패키지이며, Unity Store에서 무료로 다운로드할 수 있습니다.
Unity XR 패키지는 다양한 VR 및 AR 기기와 플랫폼을 지원하며, 이를 위한 다양한 컴포넌트 및 도구를 제공합니다. 예를 들어, XR 패키지에서는 다양한 VR 기기의 위치 및 방향 추적을 위한 Tracked Pose Driver 컴포넌트, 컨트롤러 입력을 처리하는 Input System 패키지, VR 애플리케이션의 유저 인터페이스를 구성하는 XR UI Toolkit, AR 애플리케이션의 환경 인식을 처리하는 AR Foundation 등의 기능을 제공합니다.
또한, Unity XR 패키지는 XR Interaction Toolkit과 같은 유용한 도구를 제공하여 VR 및 AR 애플리케이션에서 사용자 상호작용을 쉽게 구현할 수 있도록 해줍니다. XR 패키지는 또한 여러 개발자들이 개발한 다양한 XR 기능을 제공하는 Unity 커뮤니티 패키지와 호환되도록 설계되어 있습니다.
Unity XR 패키지는 Unity에서 VR 및 AR 애플리케이션을 개발할 때 필수적인 패키지 중 하나입니다. Unity에서 제공하는 공식 패키지이기 때문에 안정성과 호환성이 높으며, 무료로 사용할 수 있습니다.
Asset Management
유니티의 Asset Management 패키지는 유니티 엔진에서 게임 개발에 필요한 에셋들을 관리하기 위한 도구 모음입니다. 이 패키지를 사용하면 에셋을 쉽게 찾고 조직화하고 관리할 수 있습니다. Asset Management 패키지에는 다음과 같은 기능이 포함되어 있습니다.
- 에셋 검색 및 필터링
- 에셋에 대한 메타데이터 작성 및 관리
- 에셋 간 종속성 관리
- 에셋 버전 관리
- 에셋 공유 및 협업 기능
이 패키지를 사용하면 여러 사람이 함께 작업할 때 에셋을 쉽게 관리할 수 있고, 에셋의 버전 관리를 통해 이전 버전으로 롤백하거나 변경 내역을 확인할 수 있습니다. 또한, 메타데이터를 사용하여 에셋에 대한 정보를 추가할 수 있어서 에셋을 더욱 효율적으로 관리할 수 있습니다.