1
- 速度取決於從物體到點擊的距離。 如何解決這個問題?
如何鎖定y軸上的移動(點擊後)?統一2d水龍頭走路
public int speed; Vector3 position; bool go; void FixedUpdate() { if (Input.GetKey (KeyCode.Mouse0)) { go=true; Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; if (Physics.Raycast (ray, out hit, Mathf.Infinity)) { position = hit.point; } } ////////////////////////////////////////////////////////////////////// if(go) { Vector2 direction = position - transform.position; float targ_pos = Vector2.Distance (transform.position, position); if(targ_pos>0) { rigidbody2D.AddForce ((position - transform.position)*speed); } else {go=false;} } }
您當前正在增加相對於你正試圖「翻譯」的距離的力。您需要創建一個歸一化的矢量,然後按照速度多倍化。 至於第2點,在你的對象剛體可以動態設置移動限制,我認爲這是你在找什麼? – Zze 2014-10-01 21:36:42
感謝您的回覆。 我知道「正常化」,但我真的是一個新手。 ) 類似於: rigidbody2D.AddForce((position - transform.position).Normalize * speed); 導致錯誤。 至於第2點(如果您寫了約束鎖定位置/旋轉),此功能僅適用於RigidBody(3D),不適用於2D。 – 2014-10-02 19:09:00