Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9700

OnGUI() と Update() の違いを視覚的に確認してみた (2) 入力編

$
0
0
視覚的に確認する 上の黒字 → Update() でキー入力を処理 下の赤字 → OnGUI() でキー入力を処理 ※ わかりやすくするために、framerateを10以下に下げています 結論 キー入力がUpdate()上で処理させた場合、抜けてしまっていることが分かると思います。 ソース public class InputManager : MonoBehaviour { [SerializeField] GUIManager guiManager; [SerializeField] GUIManager guiMangerOnGUI; private Dictionary<KeyCode, string> keyCodes = new Dictionary<KeyCode, string> (); void Start () { // 入力判定用にFとJを設定 keyCodes.Add (KeyCode.F, "F"); keyCodes.Add (KeyCode.J, "J"); } void Update () { foreach (KeyValuePair<KeyCode, string> kvp in keyCodes) { if (Input.GetKeyUp (kvp.Key)) { GetKeyUp (guiManager, kvp.Value); } } } void OnGUI () { if (Event.current.type == EventType.KeyUp) { string input = keyCodes[Event.current.keyCode]; if (input != null) { GetKeyUp (guiMangerOnGUI, input); } } } private void GetKeyUp (GUIManager manager, string input) { manager.pushString (input); } } public class GUIManager : MonoBehaviour { string inputString = ""; [SerializeField] Text displayText; private void Update () { if (displayText != null) { displayText.text = inputString; } } public void pushString (string input) { inputString += input; } }

Viewing all articles
Browse latest Browse all 9700

Trending Articles