Unityでゲームを自作しようとしている初心者です。困ったことがあり、解決法がわからなかったので質問させていただきます。
ゲーム内のオブジェクトをスライダーの値を取得して、その分だけaddforce.Accelerationを使って前(後ろ)に進めるスクリプトを作成した後、キーボードのAを押したら左に、Dを押したら右に回転させるようにしたいと思い、transform.Rotateを使ったプログラムを入れたところ、回転はするものの、Aを押して左に回転させる際にはスライダーが上昇し、Dを押して右に回転させる際にはスライダーが下降して、それに連動してaddforce.Accelerationの値も変わってしまいます。スライダーが動かないように回転させたいのですが、どうすればいいでしょうか?
↓スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ForceControrl : MonoBehaviour
{
private Rigidbody rig;
public Slider slide;
void Start() { rig = this.GetComponent<Rigidbody>(); } void Update() { //スライダーの値の分だけ前に進む(速度制限機能付き) if (rig.velocity.magnitude < 4.5f) { rig.AddForce(transform.forward * slide.value, ForceMode.Acceleration); } //Dが押されたら左に回転 if (Input.GetKey("d")) { transform.Rotate(0, 10 * Time.deltaTime, 0); } //Aが押されたら右に回転 if (Input.GetKey("a")) { transform.Rotate(0, -10 * Time.deltaTime, 0); } }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/29 07:23