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);
}
}
}
问题是什么?
错误说:
Assets / NewBehaviourScript.cs(20,25):错误CS1502:最好的重载 方法匹配`UnityEngine.Object.Destroy(UnityEngine.Object)&#39;具有 一些无效的论点
Assets / NewBehaviourScript.cs(20,25):错误CS1503:参数
#1' cannot convert
字符串&#39;表达式以输入`UnityEngine.Object&#39;
答案 0 :(得分:2)
您正在尝试销毁代码而不是游戏对象。
你可以这样解决:
void OnCollisionEnter(Collision myCollision)
{
GameObject g = myCollision.gameObject;
if(g.tag == "wall")
Destroy(g);
}
答案 1 :(得分:0)
我们将string
更改为gameobject
,因此我们可以销毁游戏对象而不是字符串并使用其标签之一(vars)来检查我们的搜索内容
private GameObject hitobject ;
void OnCollisionEnter(Collision myCollision)
{
hitobject = myCollision.gameObject;
if (hitobject.tag == "wall")
{
Destroy(hitobject);
}
}