所以我尝试在另一个GameObject中访问脚本组件,但为了更快地完成它,我有一个Component变量。
Component map = GameObject.FindWithTag("Map").GetComponent<Map>();
现在我想在地图组件中引用变量
map.selected = true;
它给我一个错误
UnityEngine.Component不包含所选&#34;的定义。
Selected是Map脚本中的公共bool,附加到Map GameObject。
当我走很长的路时
GameObject.FindWithTag("Map").GetComponent<Map>().selected = true;
一切正常,但我正在寻找缩短代码的方法(这个脚本在很多情况下使用Map中的变量,所以我想以更短的方式编写它。)
答案 0 :(得分:2)
这是因为您将变量map
实例化为Component,因此编译器将在Component类中查找selected属性。
尝试这样的事情:
MapScript map = GameObject.FindWithTag("Map").GetComponent<MapScript>();
(将MapScript替换为该脚本的实际名称。)
我不完全确定这个确切的语法是否有效,而且我目前无法对此进行测试,所以请试着看看它是否有效。如果没有,我会在我回家后立即调查。