前提・実現したいこと
私はunity3dでバトロワfpsゲームを作っています。
今回実現したいことは"Qキー"と"Eキー"で向きを変え"Wキー"で前に進む、"spaceキー"でジャンプというキャラクターコントローラーを作りたいと思っています。向きを変えるスクリプトはできたのですが、前に進むとジャンプがどうしてもうまくいきません。
前に動くときは一定のスピードで動いてほしいです。
試した方法
一つ目は移動は完璧だが重力が働かない (めっちゃちょっとだけ働く)
c#
1void Update() 2 { 3 float UpKey = Input.GetAxis("Vertical") * speed; 4 rb.velocity = transform.forward * UpKey; 5 6 if (Input.GetKeyDown(KeyCode.Space)) 7 { 8 rb.velocity = transform.forward * UpKey; 9 } 10 }
二つ目はスピードが一定ではない
c#
1void Update() 2 { 3 float UpKey = Input.GetAxis("Vertical") * speed; 4 rb.AddForce(transform.forward * UpKey); 5 6 if (Input.GetKeyDown(KeyCode.Space)) 7 { 8 rb.AddForce(transform.up * 100); 9 } 10 }
補足
実際に動くキャラクターの子要素にはカメラを設定している。
実際に動くキャラクターにはrigidbody,collisionはついています。
押した瞬間から一定のスピードで動き出したいという事.
回答1件
あなたの回答
tips
プレビュー