销毁对象时出错

本文关键字:出错 对象 | 更新日期: 2023-09-27 18:24:41

public class NewBehaviourScript : MonoBehaviour 
{   
    private string hitobject;
    void Update () {
        if (Input.GetButtonUp ("Jump")) {
            Debug.Log("SPACE");
            Rigidbody r = GameObject.Find("trigger").AddComponent<Rigidbody>();
            r.mass = 3f;
        }
    }
    void OnCollisionEnter(Collision myCollision)
    {
        hitobject = myCollision.gameObject.tag;
        if (hitobject == "wall")
        {
            Destroy(hitobject);
        }
    }
}

问题出在哪里?

错误 说:

资产/新行为脚本.cs(20,25(:错误 CS1502:最佳重载 'UnityEngine.Object.Destroy(UnityEngine.Object(' 的方法匹配具有 一些无效的参数

Assets/NewBehaviorScript.cs(20,25(:错误 CS1503:参数#1' cannot convert字符串"表达式键入"UnityEngine.Object">

销毁对象时出错

您正在尝试销毁标签而不是游戏对象。

你可以这样修复它:

void OnCollisionEnter(Collision myCollision)
{
    GameObject g = myCollision.gameObject;        
    if(g.tag == "wall")
       Destroy(g);
}

我们将string更改为gameobject,以便我们可以销毁游戏对象而不是字符串,并使用标签之一的属性(var(来检查我们击中
的内容

 private GameObject hitobject ; 
 void OnCollisionEnter(Collision myCollision)
 {
   hitobject = myCollision.gameObject;
    if (hitobject.tag == "wall")
      {
       Destroy(hitobject);
      }
}