【问题标题】:Material texture scale in lightweight render pipeline轻量级渲染管道中的材质纹理比例
【发布时间】:2025-12-04 16:15:02
【问题描述】:

我正在使用缩放平面来为我的关卡创建几何图形。这些平面共享一个材质,但由于缩放,平面上的纹理也被拉伸。在切换到轻量级渲染配置文件之前,我使用了这段代码来缓解这个问题:

var render = GetComponent<MeshRenderer>();
var scale = new Vector2(transform.localScale.x, transform.localScale.z);
render.material.SetTextureScale("_MainTex", scale);
render.material.SetTextureScale("_BumpMap", scale);

它创建了一个材质实例并更改了 Tiling 属性以匹配对象的本地比例。

但是,自从切换到轻量级 RP 后,代码无法缩放纹理。将render.material.mainTextureScale 记录到调试控制台时,它会显示我更新的值,但是当我检查它附加到的 GameObject 时,材质的 Tiling 属性没有改变。

材质使用Lightweight Render Profile/Lit着色器。

有什么方法可以在我的 C# 代码中解决这个问题?如果没有,有什么方法可以在不改变我做关卡的方式的情况下做到这一点?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    是的,我发现这是可能的。我查看了着色器,问题是你没有“_MainTex”贴图,这正是代码要寻找的。​​p>

    要修复它,请将“_MainTex”的所有实例更改为“_BaseMap”,这是正确的地图。

    【讨论】: