0

スプライトを作成し、rigidbody 2d コンポーネントを適用しました。正常に動作しています。このコードを書きましたが、ゲームのプレイを開始すると、しばらく動作しますが、その後、重力が null のように見えます。これは、rigidbody を意味します。キーを離しても下がらない

// 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); } }
私がやりたいことは、ヘリコプターを上下左右に動かすことです(ユーザーが制御できます)が、ユーザーが操作していないときは、重力をデフォルトとして機能させ、ヘリコプターが重力のために下降するようにしたいのですが、どうすればそれを達成できますか?ここに画像の説明を入力

4

2 に答える 2

0

すべてのフレームで位置を上書きしているため、Unity がその物理学で計算したものを測定しません。これを行うときに上書きします。

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

何を達成したいのかわかりませんが、この後traforme.AddForce()、オブジェクトの質量と重力加速度定数を使用して で重力を再適用するとうまくいくかもしれません。

于 2014-04-26T22:32:08.773 に答える