unity material parameter 변경
반응형
케릭터 같은거는 그냥 mesh의 renderer을 얻어 renderer.material.set~~ 이렇게 해주면
언렬의 인스턴스 머티리얼처럼 쓸수 있었는데 Unity material은 그렇게 되지 않는다.
하나를 바꾸면 전체가 다 바뀐다. 마치 shader material처럼.
타고 들어가 보니 materialForRendering 라는게 있다.
오오~!! 역시 있었어~!! 하면서 써봤는데 안됨...ㅡㅡ;..
날로먹을수 있을줄 알았는데...
구글느님에게 물어봤더니 역시 나처럼 삽질한 사람이 있음.
이 링크를 보면 원본 material을 그냥 Instantiate 시켜서 인스턴스를 만들고
그걸 다시 링크를 시켜서 사용한다.
Material mat = Instantiate(image.material);
mat.SetFloat("_SomeProperty", 1f);
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.