销毁对象时出错
本文关键字:出错 对象 | 更新日期: 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);
}
}