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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

1回答

1578閲覧

一定の速度でのキャラクターの移動

Ken04

総合スコア11

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2020/03/24 00:58

編集2020/03/24 02:10

前提・実現したいこと

私は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はついています。
押した瞬間から一定のスピードで動き出したいという事.

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

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

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

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

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

Y0241-N

2020/03/24 01:50

一定のスピードで動いてほしいとされていますが、AddForceで移動をするなら動き出しと止まる際はゆるやかな動きになってしまいますが、そうではなく、押した瞬間から一定のスピードで動き出したいという事でよろしいでしょうか?
Ken04

2020/03/24 02:07

そうですね。
guest

回答1

0

ベストアンサー

1の方法で重力が働かないのはy方向の速度も0で上書きしているからです。

こんな感じで、もともとのy方向の速度に関しては残すようにしましょう

rb.velocity = transform.forward * UpKey + Vector3.up * rb.velocity.y;

あと、ジャンプのコード、地上にいるかのチェックが入ってないので空中ジャンプするし、
移動方向の速度も上書きしているので、そこも修正する必要があります。

投稿2020/03/24 02:18

izmktr

総合スコア2856

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

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

Ken04

2020/03/24 02:32

ありがとうございます! うまく動きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問