質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

4456閲覧

Unityのプレイヤーをジャンプさせたいです。

keihumi

総合スコア9

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/08/03 09:30

前提・実現したいこと

色々なサイトを見て、C#でカメラと連動してプレイヤーを動かすプログラムを組んでいたのですが、
スペースキーで継続的に上昇させるコードを入れた所、スペースキーのみ反応しません。

発生している問題・エラーメッセージ

エラーは出ないのですが、実行中にspaceキーを押しても反応しません。

### 該当のソースコード public class PlayerController : MonoBehaviour { float inputHorizontal; float inputVertical; Rigidbody rb; float moveSpeed = 10; float runspeed = 15; void Start() { rb = GetComponent<Rigidbody>(); } void Update() { inputHorizontal = Input.GetAxisRaw("Horizontal"); inputVertical = Input.GetAxisRaw("Vertical"); if (Input.GetKey(KeyCode.Space)) { Rigidbody rb = this.GetComponent<Rigidbody>(); // rigidbodyを取得 Vector3 force = new Vector3(0.0f, 1.0f, 0.0f); // 力を設定 rb.AddForce(force); // 力を加える } } void FixedUpdate() { // カメラの方向から、X-Z平面の単位ベクトルを取得 Vector3 cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; // 方向キーの入力値とカメラの向きから、移動方向を決定 Vector3 moveForward = cameraForward * inputVertical + Camera.main.transform.right * inputHorizontal; // 移動方向にスピードを掛ける。ジャンプや落下がある場合は、別途Y軸方向の速度ベクトルを足す。 rb.velocity = moveForward * moveSpeed + new Vector3(0, rb.velocity.y, 0); // キャラクターの向きを進行方向に if (moveForward != Vector3.zero) { transform.rotation = Quaternion.LookRotation(moveForward); } } } 言語 C# ### 試したこと ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー if (Input.GetKey(KeyCode.Space)) { Rigidbody rb = this.GetComponent<Rigidbody>(); // rigidbodyを取得 Vector3 force = new Vector3(0.0f, 1.0f, 0.0f); // 力を設定 rb.AddForce(force); // 力を加える } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ↑ ・この文をvoid FixedUpdateのなかに入れてみましたが反応しないです。 Unity Ver 2018.2.1f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ジャンプというよりも、下方にロケット噴射してプレイヤーを上昇させるイメージでいいでしょうか?

単純に考えて、プレイヤーに働く重力加速度に打ち勝つ大きさの力をかけないと浮上させることはできないと思われます。
かける力を(0, 1, 0)とすると、プレイヤーの質量が1kgの場合の加速度は(0, 1, 0)にしかなりませんので、プレイヤーに(0, -9.81, 0)の重力加速度がかかっているとすると、合計の加速度は(0, -8.81, 0)となり、離陸できないということになります。もっと推進力を大きくしてみるとどうでしょうか?

投稿2018/08/05 22:04

編集2018/08/05 22:15
Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keihumi

2018/08/07 09:19

ありがとうございます! 解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問