Unityの再生ボタンを押して、操作したらすぐに応答なしになってしまいます。
再生後、左右キーを押してない状態だと、
以下に載せたコードにあるDebug.LogのmoveCursorXの値は0とコンソールに表示され続けるのですが、
左右キーを押すだけで応答なしになります。コンソールの更新もありません。
使用したシーンは特に重くなる処理はないし、シーン内のオブジェクトも少なめです。(ただゲーム内の音量を変えるだけのシーン)
ただ、応答なしになった時のCPU使用率が0%から32%まで一気に上がりました。
また、試しに他の作業をしているシーンを再生したところ、そういった事態は起きませんでした。
Unityのバージョンは2018.4.161fです。
問題のシーンで使用しているコードです。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class seUI : MonoBehaviour { private Slider slider; private float volume; private float moveCursorX; public bool isSelect; void Start() { slider = GetComponent<Slider>(); volume = slider.value; isSelect = false; moveCursorX = 0.0f; } void Update() { MoveSlider(); } public void MoveSlider() { if (Input.GetKey(KeyCode.RightArrow)) { moveCursorX += 0.1f; } if (Input.GetKey(KeyCode.LeftArrow)) { moveCursorX -= 0.1f; } slider.value = moveCursorX; volume = slider.value; } public bool IsSelect() { return isSelect; } public bool Select() { return isSelect = true; } public bool NotSelect() { return isSelect = false; } }
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class bgmUI : MonoBehaviour { private Slider slider; private float volume; private float moveCursorX; public bool isSelect; void Start() { slider = GetComponent <Slider>(); volume = slider.value; isSelect = true; moveCursorX = 0.0f; } void Update() { MoveSlider(); } public void MoveSlider() { if(Input.GetKey(KeyCode.RightArrow)) { moveCursorX += 0.1f; } if(Input.GetKey(KeyCode.LeftArrow)) { moveCursorX -= 0.1f; } Debug.Log(moveCursorX); slider.value = moveCursorX; volume = slider.value; } public bool IsSelect() { return isSelect; } public bool Select() { return isSelect = true; } public bool NotSelect() { return isSelect = false; } }
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SelectSlider : MonoBehaviour { [SerializeField] private bgmUI bgm_UI; [SerializeField] private seUI se_UI; void Update() { if(Input.GetKeyDown(KeyCode.DownArrow)) { bgm_UI.NotSelect(); se_UI.Select(); } if (Input.GetKeyDown(KeyCode.UpArrow)) { se_UI.NotSelect(); se_UI.Select(); } } }
因みに、SelectSliderの処理である上下キーを押した場合は、応答なしにはなりませんでした。
自分が気づかないだけで、コードに問題があるのでしょうか?
回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/01 19:31