Unity 中的 GetComponent (C#)
GetComponent in Unity (C#)
所以我尝试访问另一个 GameObject 中的脚本组件,但为了更快地访问它,我有一个 Component 变量。
Component map = GameObject.FindWithTag("Map").GetComponent<Map>();
现在,当我想在地图组件中引用变量时
map.selected = true;
它给我一个错误
UnityEngine.Component does not contain a definition for selected".
选择的是地图脚本中的一个 public 布尔值,附加到地图游戏对象。
当我走的很远
GameObject.FindWithTag("Map").GetComponent<Map>().selected = true;
一切正常,但我正在寻找一种方法来缩短我的代码(此脚本在许多情况下使用 Map 中的变量,因此我想以更短的方式编写它)。
发生这种情况是因为您将变量 map
实例化为组件,因此编译器将在组件 class.
中查找选定的属性
尝试这样的事情:
MapScript map = GameObject.FindWithTag("Map").GetComponent<MapScript>();
(将 MapScript 替换为该脚本的实际名称。)
我不完全确定这个确切的语法是否有效,目前我无法测试它,所以请尝试看看它是否有效。如果没有,我会在回家后立即进行调查。
所以我尝试访问另一个 GameObject 中的脚本组件,但为了更快地访问它,我有一个 Component 变量。
Component map = GameObject.FindWithTag("Map").GetComponent<Map>();
现在,当我想在地图组件中引用变量时
map.selected = true;
它给我一个错误
UnityEngine.Component does not contain a definition for selected".
选择的是地图脚本中的一个 public 布尔值,附加到地图游戏对象。
当我走的很远
GameObject.FindWithTag("Map").GetComponent<Map>().selected = true;
一切正常,但我正在寻找一种方法来缩短我的代码(此脚本在许多情况下使用 Map 中的变量,因此我想以更短的方式编写它)。
发生这种情况是因为您将变量 map
实例化为组件,因此编译器将在组件 class.
中查找选定的属性
尝试这样的事情:
MapScript map = GameObject.FindWithTag("Map").GetComponent<MapScript>();
(将 MapScript 替换为该脚本的实际名称。)
我不完全确定这个确切的语法是否有效,目前我无法测试它,所以请尝试看看它是否有效。如果没有,我会在回家后立即进行调查。