2014-09-27 346 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