< 절대 강좌 유니티 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에 랜덤적인 텍스처를 넣어주면 된다.