2016-08-16 88 views
-1

我试图用这个代码从另一个脚本访问布尔另一个对象的内部团结引用另外一个剧本,但我得到一个错误说试图从另一个对象

“A字段初始不能引用非静态场,方法或属性UnityEngine.Component.GetComponent(System.Type)“

如何解决?我究竟做错了什么?

PlayerRaycast PlayerRaycast = GetComponent<PlayerRaycast>(); 

if (PlayerRaycast.canOpenDoor) { 
//script 
} 

回答

0

您需要选择对象的脚本是在第一次:

public PlayerRaycast playerRaycast; 

void Start() { 
    playerRaycast = GameObject.Find("ObjectName").GetComponent<PlayerRaycast>(); 
} 

这里有GameObject.Find

+0

我做到了,现在我得到这个错误UnityException的更多信息:您不允许在声明一个变量时调用这个函数。 在没有变量声明之后将其移动到行。 如果您使用的是C#,请不要在构造函数或字段初始值设定项中使用此函数,而应将初始化移动到唤醒或启动函数。 DoorDrag..ctor() – N1ckGreek

+0

更新了修复UnityException的答案。 – Okomikeruko

+1

虽然这是一个很好的答案,@Okomikeruko,请不要回答百万次重复的问题 - 只需点击关闭作为一个骗局。 – Fattie