代码检查:发现多个具有相同名称的着色器
该检查会报告名称字符串解析为多个具有相同名称的 ShaderLab 着色器的情况。
在 Unity 中,着色器引用如 Shader.Find("Name") 应指向一个唯一的着色器。 如果有多个着色器共享该名称,则该引用会变得不明确,无法确定代码应使用哪个着色器。
示例
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
var shader = Shader.Find("Custom/MyShader");
}
}
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
var shader = Shader.Find("Custom/MyUniqueShader");
}
}
修正方法
没有专门的快速修复。 通常的解决方法是重命名或删除重复的着色器,使引用能精确地指向唯一的着色器。
2026年 5月 8日