using UnityEngine.EventSystems; using TMPro; /// /// True while the user is editing a focused on-screen text field (e.g. the paint HUD's /// "save as" name input). Global gameplay/dev hotkeys consult this so typing a name like /// "Checkers" doesn't also fire single-key shortcuts (C = cycle pose, K = shutdown, /// the mode-switch key, Ctrl+Z = undo, ...). /// public static class TypingGuard { /// A text input field is currently focused and capturing keystrokes. public static bool IsTyping { get { var es = EventSystem.current; if (!es) return false; var go = es.currentSelectedGameObject; if (!go) return false; var tmp = go.GetComponent(); if (tmp) return tmp.isFocused; var legacy = go.GetComponent(); return legacy && legacy.isFocused; } } }