-
코드로 Material 설정을 변경할 수 있다.
public Material mMaterial; void Start() { mMaterial = GetComponent<Renderer>().material; } void OnMouseDown() { mMaterial.color = Color.white; } void OnMouseUp() { mMaterial.color = Color.red; } void OnDestroy() { //Destroy the instance Destroy(mMaterial); }
Material 수량 확인.
Resources.FindObjectsOfTypeAll(typeof(Material)).Length
GetComponent<Renderer>().material을 사용하는 시점에 Material 수량이 증가한다.
주의 사항.
GetComponent<Renderer>().material은 Randerer에 할당 된 첫 번째 인스턴스화 된 Material을 반환한다.
Material을 수정 하면 이 오브젝트의 Material만 변경된다.
자동으로 인스턴스화하고이 Renderer에 고유한 Material을 만든다. Material을 복제하고 개별로 사용하기 시작한다. 다른 Renderer에서 같은 Material을 사용하고 있었어도 별도 생성되어 분리된다.
GameObject가 파괴 될 때 Material을 파괴하는 코드를 넣어야 한다. Resources.UnloadUnusedAssets도 재료를 파괴하지만 일반적으로 새 레벨을로드 할 때만 호출된다.
'Unity' 카테고리의 다른 글
Unity - MonoBehaviour 생성 (0) 2021.03.25 Unity - Script Component얻기 (0) 2021.03.25 Unity - Vertex (0) 2021.03.22 Unity - 튜플 리턴 타입(tuple return type) (0) 2021.03.22 마우스로 Obj 튕겨 밀어내기 (0) 2021.03.21 Unity - Vector3 rotate (vector 회전) (0) 2021.03.20 Unity - Rigidbody.AddForce (0) 2021.03.20 Unity - singleton pattern (static, global) (0) 2021.03.20