ngui uitexture shader update
반응형
uitexture의 머티리얼에 setfloat(...)을 해 줘도 제대로 갱신이 안된다.
분명 update()함수에서 해 줬는데도 안됨.
void Update()
{
offset += Time.deltaTime * 0.005f;
material.SetFloat("_Distance", offset);
}
값이 설정은 되는데 왜 안되는지 모르곘다.
그래서 좀 검색을 해 봤더니 dynamicMaterial 이라는 것을 써야 한다는 것을 알게되었다.
주석을 보면 이 dynamicMaterial 이라는 놈은 "실제 지오메트리를 그리기 위해
draw call에서 동적으로 생성해서 사용되어지는 머티리얼"이라고 적혀있다.
Instantiated material 이라고 적혀 있는데 언리얼에서 제공하는 instance material과
같은 개념인가? 흐음..
아무튼 material.SetFloat("_Distance", 0.015f); 이렇게 하면 안되던 것이
tex_.drawCall.dynamicMaterial.SetFloat("_Distance", offset); 이렇게 하면
동적으로 변경이 된다.
Reference Link
- http://www.tasharen.com/forum/index.php?topic=6495.0
- http://www.zedia.net/2013/blur-filter-for-uitexture-in-ngui/
- http://www.tasharen.com/forum/index.php?topic=6490.0
-
'Unity > Unity Study' 카테고리의 다른 글
unity bug with tegra k1 (0) | 2016.09.03 |
---|---|
unity material parameter 변경 (0) | 2016.05.12 |
SV_POSITION과 POSITION (0) | 2016.04.15 |
visual studio 2012 tools (0) | 2015.09.14 |
Texture2D Alpha channel (0) | 2015.09.13 |
TAGS.