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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Unity3D

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

Q&A

解決済

1回答

1043閲覧

RacingWheelApexを使ってUnityで車を動かす

ikumi1025

総合スコア2

Unity3D

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

0グッド

0クリップ

投稿2020/06/29 05:22

前提・実現したいこと

Unityを使って、車を走らせる環境を作ろうとしています。
WheelRacingApexを使って、実際にハンドルやペダル操作で車を動かすことを目指しています。

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

WheelRacingApexで、アクセルとブレーキの操作をペダルで行うようにしたいところで問題が発生しています。
左側のペダルでは0~1の値でアクセスを出すことが出来ています。
アクセルを01の値で出力、ブレーキを-10の値で出力するところまでやりたいです。

Monitor Componentで値を読み取っているのですが、-1~0の値を出力することが出来ません。

垂直成分の値を出せない原因がわかる方はいらっしゃいますでしょうか。

該当のソースコード

void Brakes(){ brakeVerticalInput = 0.0f; if (isInsideTheCar) { brakeVerticalInput = verticalInput; } //Freio de pé if (currentGear > 0) { currentBrakeValue = Mathf.Abs (Mathf.Clamp (brakeVerticalInput, -1.0f, 0.0f))*1.5f; } else if (currentGear < 0){ currentBrakeValue = Mathf.Abs(Mathf.Clamp(brakeVerticalInput, 0.0f, 1.0f))*1.5f; } else if (currentGear == 0) { if (mediumRPM > 0) { currentBrakeValue = Mathf.Abs (Mathf.Clamp (brakeVerticalInput, -1.0f, 0.0f))*1.5f; } else { currentBrakeValue = Mathf.Abs(Mathf.Clamp(brakeVerticalInput, 0.0f, 1.0f))*1.5f; } } // FREIO DE MÃO handBrake_Input = 0.0f; if (handBrakeTrue) { if (Mathf.Abs (brakeVerticalInput) < 0.9f) { handBrake_Input = 2; } else { handBrake_Input = 0; handBrakeTrue = false; } } else { handBrake_Input = 0; } if (Input.GetKey(controls.controls.handBrakeInput) && controls.controls.enable_handBrakeInput_Input) { handBrake_Input = 2; } handBrake_Input = handBrake_Input * 1000; //FREIO TOTAL totalFootBrake = currentBrakeValue * 0.5f * _vehicleSettings.vehicleMass; totalHandBrake = handBrake_Input * 0.5f * _vehicleSettings.vehicleMass; if (isInsideTheCar) { if (Mathf.Abs (mediumRPM) < 15 && Mathf.Abs (brakeVerticalInput) < 0.05f && !handBrakeTrue && (totalFootBrake + totalHandBrake) < 100) { brakingAuto = true; totalFootBrake = 1.5f * _vehicleSettings.vehicleMass; } else { brakingAuto = false; } } else { brakingAuto = false; } //freiar/ if (totalFootBrake > 0) { isBraking = true; } else { isBraking = false; } if (!brakingAuto) { if (isBraking && Mathf.Abs(KMh) > 1.2f) { totalFootBrake = 0; } } ApplyBrakeInWheels(_wheels.rightFrontWheel.wheelCollider, _wheels.rightFrontWheel.wheelHandBrake); ApplyBrakeInWheels(_wheels.leftFrontWheel.wheelCollider, _wheels.leftFrontWheel.wheelHandBrake); ApplyBrakeInWheels(_wheels.rightRearWheel.wheelCollider, _wheels.rightRearWheel.wheelHandBrake); ApplyBrakeInWheels(_wheels.leftRearWheel.wheelCollider, _wheels.leftRearWheel.wheelHandBrake); } void ApplyBrakeInWheels(WheelCollider wheelCollider, bool handBrake){ if (handBrake) { wheelCollider.brakeTorque = totalFootBrake + totalHandBrake; } else { wheelCollider.brakeTorque = totalFootBrake; } //evitar RPM, freio ou torques invalidos, EvitarRotacaoSemTorque if (!wheelCollider.isGrounded && Mathf.Abs (wheelCollider.rpm) > 0.5f && Mathf.Abs (verticalInput) < 0.05f && wheelCollider.motorTorque < 5.0f) { wheelCollider.brakeTorque += _vehicleSettings.vehicleMass * Time.deltaTime * 50; } if (KMh < 0.5f && Mathf.Abs (verticalInput) < 0.05f) { if (wheelCollider.rpm > (25 / wheelCollider.radius)) { wheelCollider.brakeTorque += 0.5f * _vehicleSettings.vehicleMass * Mathf.Abs (wheelCollider.rpm) * Time.deltaTime; } } }

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

unity 2018.3.14

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

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

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

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

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

bboydaisuke

2020/07/05 00:14

Wheel Racing Apex って HORI のハンドルコントローラーですよね? Windows で開発してるなら、[この画面](https://none53.hatenablog.com/entry/2016/07/24/_1) でそのペダル操作がコントローラーのどの操作に対応しているのか調べて、それに応じて Unity の Input Manager を設定し、Input Manager 経由で入力を検出すればよいと思います。多分 Z 軸なんじゃないかなと思いますが、実際にやってみないとわかりません。 Monitor Component という言葉が出てきますが、それが何を指すのかわかりませんでした。
ikumi1025

2020/07/05 05:24

ご回答ありがとうございます。 Input Managerをいじっていたペダル操作で出来るようになりました。 回答を求めているままですみませんでした。 貴重なお時間を頂きありがとうございました。
guest

回答1

0

自己解決

Input Managerを適切なJoy stickbottomに設定したらできました。

投稿2020/07/05 05:25

ikumi1025

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問