Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
统一的GetComponent(C#)_C#_Unity3d_Components - Fatal编程技术网

统一的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;