【问题标题】:Access TextMesh Pro Texture Tiling and Offset how?如何访问 TextMesh Pro 纹理平铺和偏移?
【发布时间】:2023-01-07 06:19:36
【问题描述】:
TextMesh Pro 着色器有两个不同寻常的工具来调整用于面部和轮廓的纹理:平铺和偏移。
无法通过使用关键字访问 Unity 中的着色器属性的常规方式访问它们。
是否可以从 Monobehaviours 访问这些属性?如何?
如果您想查看示例代码……没有什么意义……因为我已经尝试了在 Unity 中访问着色器属性的所有常规方法,但发现它们都不起作用,所有这些都抛出与不存在的符号相关的错误。或返回空值。
这些属性以某种方式有些嵌套。
如果您曾在 Unity 中使用脚本成功编辑过这些值,您可能会知道它们有些不同。
【问题讨论】:
标签:
unity3d
properties
shader
textmeshpro
【解决方案1】:
您可以使用以下步骤访问 TextMesh Pro 着色器的平铺和偏移属性:
在 Unity Editor 中,选择附加了 TextMesh Pro 组件的游戏对象。
在检查器窗口中,单击“添加组件”按钮。
搜索并添加“材料属性”组件。
在检查器窗口中,您将看到“材料属性”组件下列出的平铺和偏移属性。
然后,您可以通过修改“平铺”和“偏移”字段的值来调整平铺和偏移属性。
或者,您可以使用渲染器组件的 GetPropertyBlock 和 SetPropertyBlock 方法从脚本访问平铺和偏移属性。这是您如何执行此操作的示例:
Renderer renderer = GetComponent<Renderer>();
MaterialPropertyBlock propertyBlock = new MaterialPropertyBlock();
renderer.GetPropertyBlock(propertyBlock);
propertyBlock.SetVector("_MainTex_ST", new Vector4(tilingX, tilingY, offsetX, offsetY));
renderer.SetPropertyBlock(propertyBlock);
这会将渲染器使用的材质的平铺值设置为 (tilingX, tilingY) 并将偏移值设置为 (offsetX, offsetY)。