Ssssong += Dev

[유니티] Shader.PropertyToID 본문

카테고리 없음

[유니티] Shader.PropertyToID

ssong_dev 2022. 11. 15. 19:32

https://chulin28ho.tistory.com/622

 

Shader.PropertyToID

docs.unity3d.com/kr/530/ScriptReference/Shader.PropertyToID.html Unity - 스크립팅 API: Shader.PropertyToID 프로퍼티 식별자들을 사용하것은 모든 메터리얼 프로퍼티 함수에 문자열을 전달하는 것보다 더 효율적입니

chulin28ho.tistory.com

 

유니티 머테리얼에서 shader property에 접근하는 방법으로는

Material.SetColor("_Color", color) 이런 식으로 접근할 수 있다.

그러나 SetColor를 자주 호출하거나 MaterialPropertyBlock(같은 머테리얼 쓴 값이 약간씩 다른 여러 오브젝트 사용 시 쓰는 기능)을 사용 시 프로퍼티 식별자를 얻는 게 더 좋다.

 

이유는? Material.SetColor("_Color", color) 할 때

내부적으로는 이미 Material.SetColor(Shader.PropertyToID("_Color"), color); 이렇게 변환되어서 동작하고 있기 때문에

이 변환 과정을 생략하고 직접 사용하는 것이다.

https://forum.unity.com/threads/shader-propertytoid-name-why-is-it-more-efficient-and-best-practise-to-store-multiple-ids.492831/

 

Shader.PropertyToID(name) - Why is it more efficient and best practise to store multiple Id's?

I am working on optimising a game I'm working on and noticed in the docs that using shader property Id's rather than their names would be more...

forum.unity.com