前提・実現したいこと
現在シューティングゲームを作っているのですがspaceを押した状態で移動するボタンを押すとプレイヤーのスピードが早くなる処理を作りたいです。
発生している問題・エラーメッセージ
エラーメッセージ表示はないのですが→または↑を押した状態なおかつ球を出しているとspaceを押してもスピードが速くなりません。←と↓はきちんと作動しAWDS操作の場合はしっかり作動します。
該当のソースコード
C# ソースコード using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerControler : MonoBehaviour { public float HPlayerSpeed; //早いプレイヤーのスピード public float LPlayerSpeed; //遅いプレイヤーのスピード public GameObject Tamaprefab; //pfefabを入れる箱作成 float spacetime; //球の間隔 bool Tcount=true; //球の許可 // Start is called before the first frame update void Start() { spacetime = 0; } // Update is called once per frame void Update() { if (Input.GetKey(KeyCode.Space)) { HPlayerSpeed = 0.1f; LPlayerSpeed = 1; //掛け算への影響をなくす Debug.Log("dash"); } else { HPlayerSpeed = 1; //掛け算への影響をなくす LPlayerSpeed = 0.05f; } if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) { transform.Translate(HPlayerSpeed*LPlayerSpeed*-1, 0, 0); } if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) { transform.Translate(HPlayerSpeed * LPlayerSpeed * 1, 0, 0); Debug.Log("右移動"); } if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) { transform.Translate(0, HPlayerSpeed * LPlayerSpeed * 1, 0); Debug.Log("上移動"); } if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S)) { transform.Translate(0, HPlayerSpeed * LPlayerSpeed * -1, 0); } //キャラクター移動 if (Input.GetKey(KeyCode.Z) || Input.GetKey(KeyCode.L)) { if (Tcount==true) { spacetime += Time.deltaTime; Instantiate(Tamaprefab, transform.position, Quaternion.identity); //Instantiateでモノを生成(作るもの,位置,回転) Tcount = false; } } if (Tcount == false) { spacetime += Time.deltaTime; } if (spacetime > 0.1f) { Tcount = true; spacetime = 0; } } } ### 試したこと Debug.Log()による茶道の確認 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/05 13:39