본문 바로가기

카테고리 없음

유니티 :: Mesh Filter를 이용하여 외형 변경

< 절대 강좌 유니티 5 > 위키북스, 이재현 지음 


특정 오브젝트의 외형이 변경되어야 하는 경우, 하나의 오브젝트에 원래 외형과 바뀌려는 외형을 차일드화한 뒤에


Mesh Renderer를 활성화 / 비활성화 하며 처리할 수도 있지만, 단순히 Mesh 정보만 교체해서도 같은 효과를 낼 수 있다.


1
2
3
4
5
6
7
8
9
10
11
    // 메쉬들을 저장할 배열
    public Mesh[] meshes;
 
    private MeshFilter meshFilter;
 
void Start()
{
    meshFilter = GetComponent<MeshFilter>();
}
 
    meshFilter.sharedMesh = meshes[바꾸려는 메쉬 인덱스];
cs


3D 모델의 3차원 형상정보인 메쉬를 저장하는 컴포넌트는 MeshFilter이다. 따라서 외형을 변경하고 싶다면


MeshFilter 컴포넌트의 sharedMesh 속성을 변경해주어야 한다.





cf ) 랜덤적인 텍스처를 적용시키는 방식 - Mesh Renderer


1
2
3
4
5
6
7
8
9
10
11
public Texture[] textures;
 
public MeshRenderer meshRenderer;
 
void Start()
{
    meshRenderer = GetComponent<MeshRenderer>();
    // 메쉬 렌더러에 랜덤 텍스처 적용
    meshRenderer.material.mainTexture = textures[Random.Range(0, textures.Length)];
}
 
cs


MeshRenderer.material.mainTexture에 랜덤적인 텍스처를 넣어주면 된다.