我正在用拋物線移動的子彈進行2D遊戲,但在我開始拍攝彈丸之前,我希望能夠計算其彈道。如何計算Unity2D中子彈的軌跡?
float velocity = Mathf.Min(Mathf.Max(distance, 1), 2.5f);
float cos = Mathf.Cos((gameObject.transform.localEulerAngles.z + 90) * Mathf.Deg2Rad);
float sin = Mathf.Sin((gameObject.transform.localEulerAngles.z + 90) * Mathf.Deg2Rad);
newGO.GetComponent<Rigidbody2D>().AddForce(velocity * new Vector3(cos, sin))
此代碼將rigidbody2d添加到我的項目符號(newGO)中。我試圖在飛行1秒後使用它來計算點數:
Debug.Log(new Vector3(source.transform.position.x + velocity * 1 * cos, source.transform.position.y + velocity * sin * 1 + Physics2D.gravity.y * 0.5f * 1));
不幸的是,它不會返回正確的結果。我該怎麼辦? 感謝您的幫助和對我的英語感到抱歉。
「不計數正確」,請解釋一下什麼是不正確了。說出你期望得到的結果,並展示你實際得到的結果。 –
例如:1秒後子彈的x = 2.7,y = -1.14,但是我的代碼返回(x,y)=(1.5,-4.9) – Pawelsar1
在你的問題中放置類似這樣的信息[http:/ /stackoverflow.com/posts/37217689/edit) –