我正致力于改进太空射击项目"我有多层球员,敌人和小行星,而不是在碰撞中炸毁两个物体,我希望更大的球员能够在较小的物体碰撞中存活下来。我一直试图通过在所有敌人对象上添加一个名为Damage的公共浮点数来添加CollisionController脚本来实现这一点,然后我尝试从我的playercontroller访问它,但我得到了一个空引用错误。我认为这是因为在玩家控制器访问脚本之前敌人对象被摧毁了但是我确保对象没有被破坏,我仍然得到错误。
以下是代码的必要摘要:
在播放器上:
void OnTriggerEnter (Collider other)
{
if (other.tag == "Enemy")
{
CollisionController collisionController = other.gameObject.GetComponent<CollisionController>();
Damager (collisionController.Damage);
//I get the Nullreference error on the line above -^;
}
对敌人:
public class CollisionController : MonoBehaviour {
public float Damage;
}