Shader의 프로퍼티를 변경할 때의 주의점 본문
Shader의 프로퍼티를 스크립트에서 바인딩하려면 먼저 MeshRenderer.material에 접근해야 한다.
그리고 Material.SetFloat("프로퍼티 네임",value);의 형태로 값을 바인딩 해야하는데 이때 주의할 점이 있다.
MeshRenderer.material을 통해 material에 접근하게 되면 해당 오브젝트의 MeshRenderer의 material을 별도의 인스턴스로 생성 및 변경 한 후에 반환해 주기 때문에 해당 오브젝트의 material속성만을 변경하게 된다.
때문에 해당 Material의 영향을 받는 전체 오브젝트의 프로퍼티를 바꿔주고 싶다면 MeshRenderer.sharedMaterial을 사용해서 불러오는게 맞는 방법이다.
Comments