Unity 中的 GetComponent (C#)
Posted
技术标签:
【中文标题】Unity 中的 GetComponent (C#)【英文标题】:GetComponent in Unity (C#) 【发布时间】:2016-09-06 13:15:45 【问题描述】:所以我尝试在另一个 GameObject 中访问脚本组件,但为了更快地做到这一点,我有一个 Component 变量。
Component map = GameObject.FindWithTag("Map").GetComponent<Map>();
现在当我想在地图组件中引用一个变量时
map.selected = true;
它给了我一个错误
UnityEngine.Component 不包含选定的定义。
Selected 是 Map 脚本中的公共 bool,附加到 Map GameObject。
当我走得很远
GameObject.FindWithTag("Map").GetComponent<Map>().selected = true;
一切正常,但我正在寻找一种方法来缩短我的代码(这个脚本在很多情况下都使用 Map 中的变量,所以我想用更短的方式编写它)。
【问题讨论】:
【参考方案1】:发生这种情况是因为您将变量 map
实例化为组件,因此编译器将在 Component 类中查找选定的属性。
试试这样的:MapScript map = GameObject.FindWithTag("Map").GetComponent<MapScript>();
(将 MapScript 替换为该脚本的实际名称。)
我不完全确定这个确切的语法是否有效,我目前无法测试它,所以请尝试看看它是否有效。如果没有,我会在回家后尽快调查。
【讨论】:
以上是关于Unity 中的 GetComponent (C#)的主要内容,如果未能解决你的问题,请参考以下文章