Unity 메쉬 사용 가이드
Unity에서는 메쉬를 사용하여 3D 오브젝트의 형상을 정의할 수 있습니다. 이 문서에서는 C# 스크립트와 함께 메쉬를 사용하는 방법을 간단하게 설명하고, 예제를 통해 이해를 돕겠습니다.
메쉬 클래스란?
메쉬 클래스는 3D 오브젝트의 지오메트리에 대한 기본적인 스크립트 인터페이스입니다. 이 클래스는 삼각형, 버텍스 포지션, 노멀, 텍스처 좌표 등을 배열로 표현합니다.
주요 프로퍼티 및 함수
- 버텍스(Vertex): 객체의 로컬 공간에서 점을 나타내는
Vector3
배열입니다. - 노멀(Normal): 로컬 좌표에서 방향을 나타내는 정규화된
Vector3
배열입니다. - UV 좌표:
Vector2
타입으로 텍스처 좌표를 나타내며, 각 요소는X
와Y
로 변환되어야 합니다. - 삼각형: 버텍스 배열에서 인덱스를 지정하는 정수의 3배수로 정의됩니다.
메쉬 데이터 접근하기
메쉬 데이터는 MeshFilter
컴포넌트를 통해 오브젝트에 추가됩니다. 이 컴포넌트는 MeshRenderer
를 필요로 하며, GetComponent
함수를 사용하여 접근할 수 있습니다.
예제 코드
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
MeshFilter mf;
void Start()
{
// 게임 오브젝트에 MeshFilter가 있으면 mf가 해당 컴포넌트를 참조합니다.
mf = GetComponent<MeshFilter>();
}
}
메쉬 데이터 추가하기
메쉬 오브젝트에는 버텍스와 관련된 데이터(노멀 및 UV 좌표) 프로퍼티가 있습니다. 버텍스는 특정 순서로 제공되지만, 노멀과 UV 배열은 각각의 인덱스에 대응해야 합니다.
고급 메시 API
또한, 메쉬 클래스는 원시 메시 버텍스와 인덱스 버퍼 데이터에 접근할 수 있는 저수준 고급 API를 제공합니다. 아래는 주요 메소드입니다.
메소드 | 설명 |
---|---|
Mesh.SetIndexBufferParams |
인덱스 버퍼의 크기와 포맷을 설정합니다. |
Mesh.SetVertexBufferParams |
버텍스 버퍼의 크기와 포맷을 설정합니다. |
Mesh.SetSubMesh |
인덱스 버퍼의 토폴로지 및 범위를 설정합니다. |
참고 자료
자세한 정보는 다음을 참고하세요: - 메시의 구조 - 메시 스크립팅 클래스 레퍼런스
결론
이 가이드를 통해 Unity에서 메쉬를 사용하는 기본 개념을 이해하셨기를 바랍니다. 메쉬는 3D 게임에서 물체의 형상을 정의하는 데 중요한 역할을 합니다. 직접 실습해보며 다양한 활용 및 응용 예제를 시도해 보세요!