public GameObject explosionPrefab;
void OnCollisionEnter(Collision otherObj) {
GameObject explosionObject = Instantiate(explosionPrefab, otherObj.transform.position, Quaternion.identity) as GameObject;
explosionObject(explosionObject, 5f); <-- THE LINE GIVING ERROR
Destroy(otherObj.gameObject);
}
}
我很困惑,因为我没有那么长时间做脚本,并且想知道是否有人可以告诉我正确的方法来做这件事,这是一个团结的小测试游戏。只是想知道这是如何修复的,以便我将来不会犯这个错误。
答案 0 :(得分:2)
一般
方法声明:
void x() {
// do something
}
对该方法的调用:
x();
变量声明:
int x = 0;
使用变量:
x = 7; //write
y = x; //read and assing to another variable
您的代码
您声明了一个变量:
GameObject explosionObject = Instantiate(explosionPrefab, otherObj.transform.position, Quaternion.identity) as GameObject;
但是你使用喜欢方法:
explosionObject(explosionObject, 5f); <-- THE LINE GIVING ERROR
如果要调用GameObject实例的方法,可能会错过方法名称?例如:
explosionObject.MyMethod(explosionObject, 5f);
或者你可以为你的实例和另一个方法使用相同的名称,然后尝试更改你的GameObject实例的名称:
GameObject game = Instantiate(explosionPrefab, otherObj.transform.position, Quaternion.identity) as GameObject;
explosionObject(game, 5f);
答案 1 :(得分:1)
问题非常明确,让我们来看看下面的代码:
explosionObject(explosionObject, 5f);
此处您已将explosionObject
声明为GameObject
变量,并且您使用的方法名称与此问题的原因相同。更改变量名称或函数名称,您的问题就会得到解决。