[英]Strange attribute overshadowing between classes in separate C# files
我在单独的文件中有 2 个类(它们是绘图线)。 每个包含具有相同名称但不同值的单独(?)公共属性。
//ClassA.cs
public class ClassA: MonoBehaviour
{
public Color lineColour = new Color(1.0f, 0.0f, 0.0f, 0.0f); //red
//(...)
}
//ClassB.cs
public class ClassB: MonoBehaviour
{
public Color lineColour = new Color(0.0f, 0.0f, 1.0f, 0.0f); //blue
//(...)
}
出于某种原因,当我访问 ClassB 中的属性lineColour
时,它从 ClassA 获取值,就好像发生了一些文件间遮蔽:
// in ClassB.cs
(...)
lineRenderer.startColor = lineColour;
lineRenderer.endColor = lineColour;
(...)
// draws line in red color instead of blue
如果我只将ClassB
中的变量名称更改为与lineColour
不同的名称,则一切都会按预期进行。
这是否掩盖了正常行为? 或者我一定是在犯一些愚蠢的错误?
找到了原因:这个“遮蔽”来自 Inspector(感谢@derHugo 的提示。)。
使用 ClassB 的 object 时,我什至没有接触 Inspector。 我正在以编程方式更改 colors,所以没有费心去检查它。
Inspector 设置了一些值的原因是我复制了整个游戏 Object(其中包含 Class A 脚本)来为 Class B 创建新游戏 Object。复制对象时,Inspector 设置也被复制,否决了我在代码中所做的任何事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.