统一的GetComponent(C#)
因此,我尝试在另一个游戏对象中访问脚本组件,但为了更快地访问,我有一个组件变量统一的GetComponent(C#),c#,unity3d,components,C#,Unity3d,Components,因此,我尝试在另一个游戏对象中访问脚本组件,但为了更快地访问,我有一个组件变量 Component map = GameObject.FindWithTag("Map").GetComponent<Map>(); 这给了我一个错误 UnityEngine.Component不包含所选“”的定义 选中的是地图脚本中的公共bool,附加到地图游戏对象 当我走了很长的路 GameObject.FindWithTag("Map").GetComponent<Map>().sel
Component map = GameObject.FindWithTag("Map").GetComponent<Map>();
这给了我一个错误
UnityEngine.Component不包含所选“”的定义
选中的是地图脚本中的公共bool,附加到地图游戏对象
当我走了很长的路
GameObject.FindWithTag("Map").GetComponent<Map>().selected = true;
GameObject.FindWithTag(“Map”).GetComponent().selected=true;
一切正常,但我正在寻找一种缩短代码的方法(此脚本在许多实例中使用Map中的变量,因此我希望以更短的方式编写它)。发生这种情况是因为您将变量
Map
实例化为组件,因此编译器将在组件类中查找选定的属性。试试这样:
MapScript map=GameObject.FindWithTag(“map”).GetComponent();
(将MapScript替换为该脚本的实际名称。)
我不完全确定这个确切的语法是否有效,目前我没有办法测试它,所以请尝试看看它是否有效。如果无效,我会在回家后立即进行研究。发生这种情况是因为您将变量
映射作为组件实例化,因此编译器将查找选定的属性组件类中的e。
试试这样:
MapScript map=GameObject.FindWithTag(“map”).GetComponent();
(将MapScript替换为该脚本的实际名称。)
我不完全确定这个确切的语法是否有效,目前我没有办法测试它,所以请尝试看看它是否有效。如果不行,我一到家就会调查
GameObject.FindWithTag("Map").GetComponent<Map>().selected = true;