2014-09-27 148 views
2
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); 
     } 
    } 
} 

最新问题?销毁对象的错误

错误说:

资产/ NewBehaviourScript.cs(20,25):错误CS1502:为`UnityEngine.Object.Destroy(UnityEngine.Object)的最佳重载 方法匹配”有 一些无效参数

资产/ NewBehaviourScript.cs(20,25):错误CS1503:参数#1' cannot convert字符串 '表达键入`UnityEngine.Object'

回答

2

您正在尝试什特roy的标签,而不是游戏对象。

你能解决这个问题是这样的:

void OnCollisionEnter(Collision myCollision) 
{ 
    GameObject g = myCollision.gameObject;   

    if(g.tag == "wall") 
     Destroy(g); 
} 
0

我们改变stringgameobject,所以我们可以破坏游戏对象不是一个字符串,并使用标签的属性(增值经销商)的一个检查什么我们打

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

} 
+0

这不会起作用,'private string hit object;',你不能在一个字符串中存储一个GameObject。 – FunctionR 2014-09-27 08:54:02

+1

请解释你改变了什么,这样Hgp7可能会学到一些东西。 – Rudolfwm 2014-09-27 10:25:24