C# 为什么我的;“字符”;仍然在游戏对象中移动,而不是游戏对象

C# 为什么我的;“字符”;仍然在游戏对象中移动,而不是游戏对象,c#,unity3d,C#,Unity3d,我似乎无法通过与角色的碰撞来导致游戏对象自我毁灭 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CollectItem: MonoBehaviour { void OnCollisionEnter(Collision collision){ if(collision.gameObject.name == "Character"){ Des

我似乎无法通过与
角色的碰撞来导致游戏对象自我毁灭

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CollectItem: MonoBehaviour
{
  void OnCollisionEnter(Collision collision){
  if(collision.gameObject.name == "Character"){
      Destroy(gameObject);
  }
}
}

原因可能有很多:

  • 您可能没有将碰撞器连接到要收集的项目
  • 您可能没有将碰撞器附加到角色对象
  • 可以将一个或两个碰撞器设置为触发器(在这种情况下,只有一个碰撞器应为触发器,您需要使用OnTriggerEnter方法并确保触发器对象具有刚体组件)
  • 角色对象的名称拼写错误
  • 作为补充说明,在比较字符串时,您应该始终使用Equals方法,即collision.gameObject.name.Equals(“字符”)。但这不是你的问题