繁体   English   中英

奇怪的属性在单独的 C# 文件中的类之间被遮蔽

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM