英文:
Need help accessing and modifying Shader Graph Vector2 property via script (in Unity)
问题
我想要使用着色器图形构建一个背景层,并且想要添加视差效果。我已经编写了一个脚本来处理所有的数学计算。现在剩下的就是在运行时更改我的一个着色器的 "Vector2 属性"(这将应用我计算出的数学)。
不考虑上下文,我如何通过脚本访问和修改
?(它是一个 "Vector2")
在Unity文档中,我找到了 "Material.SetFloat",但似乎找不到任何关于Vector2的内容。
英文:
So I'm building a background layer using a shader graph. And I wanna add a parallax effect. I've already wrote a script to do all the math crap. Now all that's left is to change one of my Shaders "Vector2 properties" at runtime (which will apply the math I've calculated).
Context aside, how do I access and modify
via script?
(It's a "Vector2" btw)
I found "Material.SetFloat" in the Unity Documentation but I can't seem to find anything for a Vector2?
答案1
得分: 1
对于所有的向量,请使用SetVector函数。
它接受一个Vector4(xyzw),但你应该能够传递一个Vector2。
使用属性的名称,就像在着色器图中的“Reference Name”下显示的那样,默认情况下以下划线开头。例如,_MyProperty
。
myMaterial.SetVector("_MyProperty", myVector2);
英文:
For all vectors, use the SetVector function.
It takes a Vector4 (xyzw), but you should be able to pass it a Vector2.
Use the name of the property as it shows in shader graph under Reference Name
, which by default starts with an underscore. eg. _MyProperty
.
myMaterial.SetVector("_MyProperty", myVector2);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论