【发布时间】:2015-11-22 21:44:20
【问题描述】:
我正在使用该方法在我的游戏中销毁一个对象:
public override void triggerAction(GameObject cube)
{
base.triggerAction(cube);
if (cube.GetComponent<Cube>().type == type) {
DestroyObject(cube);
}
}
我得到了一个
'The object of type 'Cube' has been destroyed but you are still trying to access it.' 指向此方法的错误(第一行):
if (Physics.Raycast(gameObject.transform.position, rayDir, out hit, 1f) && (hit.collider.gameObject.layer == layerMask)) {
ActionObject obj = hit.collider.gameObject.GetComponent<ActionObject>();
obj.triggerAction(gameObject);
}
此方法在“更新”循环中调用。
我在网上看到我们必须测试gameobject是否不为null,但是当我测试它时,我得到了同样的错误:
if (gameObject != null) { ... }
感谢您的回答!
编辑:这是我实例化对象的方式 =
public GameObject cube; // I put my prefab in the inspector
...
GameObject newCube = Instantiate(cube) as GameObject;
【问题讨论】:
-
if (GetComponent
() != null) { ... } 我不确定,但可以试试。 -
当我写它时,光线投射条件不起作用。
-
没有错误,但是没有通过if条件
-
我认为这是另一个需要解决的问题。需要更多细节来解决。使用更多详细信息编辑您的问题。
-
打印返回对象名称的“gameobject”没有问题。我刚刚编辑了我如何实例化它的问题。