2014-04-26 30 views
0

我做了精靈和應用剛體2D組件,它的工作正常,因爲它應該,現在我寫了這段代碼,但是,當我開始玩遊戲它工作了一段時間,但在那之後,重力似乎爲空,意味着我的剛體不下來時,我將鑰匙重力不能在統一的工作RigidBody 2D變換

// Update is called once per frame void Update() { if (Input.GetKey (KeyCode.LeftArrow)) { posX--; } else if (Input.GetKey (KeyCode.RightArrow)) { posX++; } if (Input.GetKey (KeyCode.UpArrow)) { posY++;
} else if (Input.GetKey (KeyCode.DownArrow)) { posY--; } angle -= Input.GetAxis ("Horizontal"); angle = Mathf.Clamp (angle, -10, 10); } void FixedUpdate() { transform.eulerAngles = new Vector3 (0,0,angle); transform.position = new Vector2 (posX * Time.deltaTime, posY * Time.deltaTime); } }
我想要做的是移動左,右上下(其中用戶可以控制)直升機,但是當用戶沒有互動,我想重力作爲默認工作,直升機會因重力下降,如何實現? enter image description here

回答

0

您將要覆蓋每幀上的位置,所以也沒有什麼米團結在它的物理計算,你當你這樣做覆蓋:

transform.position = new Vector2 (posX * Time.deltaTime, posY * Time.deltaTime); 

我不知道你想什麼實現,但也許它會工作,如果在這之後你重新施加重力traforme.AddForce(),使用物體的質量和重力加速度常數。

+0

看到的改進版本,並告訴我如何實現呢:) – avinashizhere

+0

我已經告訴你了,你** **覆蓋的位置,重力也會採取該位置,但您在爲其分配值時重置該位置。您可以在設置位置後通過施加力來模擬重力,也可以不設置位置 - 您可以改爲使用力。 – Roberto

0

您應該使用AddForce而不是更改x和Y軸。 你可以在這裏看到的例子,

AddFource Example