2017-08-17 14 views
0

私はユニティプロジェクトをやっています。オブジェクトをクリックするとオブジェクトが上がりたいそれは行くが、ロールオーバーすると(rotation.zが90より大きく275よりも小さい場合)、代わりに下に下がります。だから、物体が上がるように負の推力を加えなければならない。しかし、ゲームはそれを検出していないか、この機能はそれをサポートしていません。どのように私はそれを修正するだろうどのような提案?OnMouseDown関数がそうでなければ動作しません

FIXED !!transform.upVector3.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

transform.upの代わりにVector3.upを使用できない理由はありますか?これにより、スラスト方向が確実に世界に比べて(0,1,0)上になります。 – ryeMoss

+0

ええ、それは多くのおかげで問題を解決しました。 – Comp

答えて

0

あなたの問題はthis.transform.rotation.zはクォータニオンはhereを見ているものを見るangles.Toオイラーによって提示された角度を回転していない、クォータニオンの値を返すということです。回転についてはthis documentationもチェックしてください。実際の角度を試してみてくださいtransform.rotation.eulerAngles

関連する問題