2017-08-17 76 views
0

我在做統一項目。我想要一個物體上去,當我點擊它。但是當它翻轉時(當rotation.z高於90且低於275時)它會下降。所以我必須增加消極的推力,讓物體上升。但遊戲似乎沒有檢測到它,或者這個功能不支持它。任何建議如何解決這個問題?OnMouseDown函數if和else不起作用

固定!我只需將transform.up替換爲Vector3.up即可。

void OnMouseDown(){ 
     if(this.transform.rotation.z > 90 && this.transform.rotation.z < 275) { 
      rb.AddForce (transform.up * -thrust); 
      GetComponent<Rigidbody2D>().velocity = Random.insideUnitSphere * 2; 
     } 
     else 
     { 
      rb.AddForce (transform.up * thrust); 
      GetComponent<Rigidbody2D>().velocity = Random.insideUnitSphere *2; 

     } 

    } 
+1

是否有原因,你不能使用Vector3.up而不是transform.up?這將確保推力方向相對於世界上升(0,1,0)。 – ryeMoss

+0

是的,它解決了這個問題非常感謝。 – Comp

回答

0

您的問題是this.transform.rotation.z返回四元值,而不是旋轉的歐拉提出angles.To看到的是四元數看here角度。還請查看this documentation關於旋轉。對於實際角度嘗試transform.rotation.eulerAngles