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

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

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

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

Unity3D

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

解決済

UnityのRigidbodyで停止できない。

lastlast
lastlast

総合スコア50

C#

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

Unity3D

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0評価

0クリップ

243閲覧

投稿2022/06/10 14:02

編集2022/06/13 23:02

前提

Unity3Dで

  • wキーで加速
  • sキーで減速

させるスクリプトを作りました。
rb.velocity.magnitude;をCinemachine Dolly Cartのspeedに代入して実装しています。
back方向(後ろ)に加速せず、flont方向(前)に加速してしまうのです。

実現したいこと

sキーを押して減速、その後停止するようにしたい。

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

sキーを押すと、減速はするのですが、
1

0.5

0.2

0

0.2

というように、再び数(速度)が上がっていってしまいます。

該当のソースコード

C#

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { void FixedUpdate() { Rigidbody rb = this.GetComponent<Rigidbody>(); // rigidbody Vector3 force = new Vector3(0.0f, 0.0f, 0.0f); if (Input.GetKey(KeyCode.W)) force.z += 1; if (Input.GetKey(KeyCode.S)) force.z -= 1; rb.AddForce(force, ForceMode.Force); // 力をon! } }

試したこと

googleで検索をしたりしてみたのですが、該当する内容が見つからず、わかりません。

補足情報(FW/ツールのバージョンなど)

Unityの最新版(2021.3.4f)を使用しています。

質問に不備があれば、コメント欄からお知らせください。できるだけ早く訂正させていただきます。
ご回答、よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

bboydaisuke

2022/06/10 14:22

> 再び数が上がっていってしまいます。 「数」って何の数ですか? s を押した時にやっている処理は、ワールド座標系の back の方向に力を加え続けているので、押し続けていたら止まらずに back 方向に加速しますよ。
lastlast

2022/06/10 14:33

あ、失礼しました。 「数」とは速度です。 rb.velocity.magnitude;をCinemachine Dolly Cartのspeedに代入して実装しています。 そのback方向に加速せず、flont方向(前)に加速してしまうのです。 質問を訂正させていただきます。
bboydaisuke

2022/06/11 14:14 編集

> そのback方向に加速せず、flont方向(前)に加速してしまうのです。 「何が」そのback方向に加速せず、front方向(前)に加速してしまう、のですか? このスクリプトをアタッチした Rigidbody ですか?新たに質問に登場した Cinemachine Dolly Cart ですか? 後者だったら当然だと思います。
lastlast

2022/06/10 22:06

playerというモデルにchinemachine dolly cartとこちらの提示したスクリプトを両方アタッチしてあります。
bboydaisuke

2022/06/11 04:14

それで何をしようとしているのか本当にわからないのですが、何をしようとしているのですか? その実現しようとしていることに対してとっているアプローチが間違ってると思いますが、質問内容がアプローチに対して起きた質問になっている、いわゆるXY問題になっているように見えます。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

Unity3D

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。