unity material parameter 변경

반응형

케릭터 같은거는 그냥 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?

-

'Unity > Unity Study' 카테고리의 다른 글

shader tip with Intel  (0) 2016.09.08
unity bug with tegra k1  (0) 2016.09.03
ngui uitexture shader update  (0) 2016.05.03
SV_POSITION과 POSITION  (0) 2016.04.15
visual studio 2012 tools  (0) 2015.09.14
TAGS.

Comments