Unity/Unity Study

unity material parameter 변경

붕대마음 2016. 5. 12. 18:31
반응형

케릭터 같은거는 그냥 mesh의 renderer을 얻어 renderer.material.set~~ 이렇게 해주면 

언렬의 인스턴스 머티리얼처럼 쓸수 있었는데 Unity material은 그렇게 되지 않는다.

하나를 바꾸면 전체가 다 바뀐다. 마치 shader material처럼.

타고 들어가 보니 materialForRendering 라는게 있다.



오오~!! 역시 있었어~!! 하면서 써봤는데 안됨...ㅡㅡ;..

날로먹을수 있을줄 알았는데...

구글느님에게 물어봤더니 역시 나처럼 삽질한 사람이 있음.

링크를 보면 원본 material을 그냥 Instantiate 시켜서 인스턴스를 만들고

그걸 다시 링크를 시켜서 사용한다.


  1. Material mat = Instantiate(image.material);
  2. mat.SetFloat("_SomeProperty", 1f);
  3. image.material = mat;


유니티 커뮤니티 짱!!


Reference Link

- Graphic.materialForRendering

- How can I change the shader parameters for an UI Image?

-