代码检查:找到多个具有相同名称的着色器
此检查报告一个着色器名称字符串会匹配多个具有相同名称的 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日