From 72ad7b61864973ca6c2e2661848a4bab39c45c4a Mon Sep 17 00:00:00 2001 From: NTG Date: Tue, 19 Aug 2025 19:13:31 +0900 Subject: [PATCH] =?UTF-8?q?ui=20input=20binding=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssetGroups/Default Local Group.asset | 4 ++-- .../Uis/GameUi/PopupUis/ConfirmUi.prefab | 1 + .../PopupUis/RestaurantManagementUi.prefab | 1 + ...i_RestaurantUiActions_InputBindingSo.asset | 3 --- ...i_RestaurantUiActions_InputBindingSo.asset | 3 --- ...ndingSo.meta => UiActionInputBinding.meta} | 0 .../ConfirmUi_InputBindingSo.asset | 3 +++ .../ConfirmUi_InputBindingSo.asset.meta} | 0 ...estaurantManagementUi_InputBindingSo.asset | 3 +++ ...antManagementUi_InputBindingSo.asset.meta} | 0 .../_DDD/_Scripts/GameUi/PopupUi/PopupUi.cs | 22 +++++++------------ .../_Scripts/GameUi/PopupUi/PopupUiState.cs | 1 - .../InputSystem/BaseUiActionsInputBinding.cs | 14 ++++++++++++ ...meta => BaseUiActionsInputBinding.cs.meta} | 0 .../BaseUiActionsInputBindingSo.cs | 17 -------------- .../RestaurantActionsInputBinding.cs | 7 ++++++ ... => RestaurantActionsInputBinding.cs.meta} | 0 .../RestaurantActionsInputBindingSo.cs | 7 ------ .../RestaurantUiActionsInputBinding.cs | 7 ++++++ ...> RestaurantUiActionsInputBinding.cs.meta} | 0 .../RestaurantUiActionsInputBindingSo.cs | 7 ------ 21 files changed, 46 insertions(+), 54 deletions(-) delete mode 100644 Assets/_DDD/_Addressables/So/InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset delete mode 100644 Assets/_DDD/_Addressables/So/InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset rename Assets/_DDD/_Addressables/So/{InputBindingSo.meta => UiActionInputBinding.meta} (100%) create mode 100644 Assets/_DDD/_Addressables/So/UiActionInputBinding/ConfirmUi_InputBindingSo.asset rename Assets/_DDD/_Addressables/So/{InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset.meta => UiActionInputBinding/ConfirmUi_InputBindingSo.asset.meta} (100%) create mode 100644 Assets/_DDD/_Addressables/So/UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset rename Assets/_DDD/_Addressables/So/{InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset.meta => UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset.meta} (100%) create mode 100644 Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBinding.cs rename Assets/_DDD/_Scripts/InputSystem/{BaseUiActionsInputBindingSo.cs.meta => BaseUiActionsInputBinding.cs.meta} (100%) delete mode 100644 Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBindingSo.cs create mode 100644 Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBinding.cs rename Assets/_DDD/_Scripts/InputSystem/{RestaurantActionsInputBindingSo.cs.meta => RestaurantActionsInputBinding.cs.meta} (100%) delete mode 100644 Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBindingSo.cs create mode 100644 Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBinding.cs rename Assets/_DDD/_Scripts/InputSystem/{RestaurantUiActionsInputBindingSo.cs.meta => RestaurantUiActionsInputBinding.cs.meta} (100%) delete mode 100644 Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBindingSo.cs diff --git a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset index 61fb24fef..94992991a 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d20a85268616dfd7559e8b9efe1e58f72a9cb6a91cad858e4f790a7704c44fc5 -size 26385 +oid sha256:35523eef20414dc140e1eea9265a5ffde3b29b1deb002e5582fa29d09e742441 +size 26345 diff --git a/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/ConfirmUi.prefab b/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/ConfirmUi.prefab index 4aec318f9..2343b3045 100644 --- a/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/ConfirmUi.prefab +++ b/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/ConfirmUi.prefab @@ -812,6 +812,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _enableBlockImage: 1 + _uiActionsInputBinding: {fileID: 11400000, guid: 99d3d87bd43df65488e757c43a308f36, type: 2} _messageLabel: {fileID: 3495127426411772216} _messageLabelLocalizeStringEvent: {fileID: 7334955628972040157} _cancelButton: {fileID: 3014273876221658359} diff --git a/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/RestaurantManagementUi.prefab b/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/RestaurantManagementUi.prefab index 18147a5e8..1a346f07d 100644 --- a/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/RestaurantManagementUi.prefab +++ b/Assets/_DDD/_Addressables/Prefabs/Uis/GameUi/PopupUis/RestaurantManagementUi.prefab @@ -6336,6 +6336,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _enableBlockImage: 1 + _uiActionsInputBinding: {fileID: 11400000, guid: 8073fcaf56fc7c34e996d0d47044f146, type: 2} _checklistView: {fileID: 7075966153492927588} _inventoryView: {fileID: 3570087040626823091} _itemDetailView: {fileID: 7657801840785021781} diff --git a/Assets/_DDD/_Addressables/So/InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset b/Assets/_DDD/_Addressables/So/InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset deleted file mode 100644 index 999378c83..000000000 --- a/Assets/_DDD/_Addressables/So/InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ecf24a92c7cdd20d5fe3f4b96dba252130175de30c18edc2f8ac33fad3660d4 -size 475 diff --git a/Assets/_DDD/_Addressables/So/InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset b/Assets/_DDD/_Addressables/So/InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset deleted file mode 100644 index 66834f26b..000000000 --- a/Assets/_DDD/_Addressables/So/InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c201c159c8eaf4a2023c66d7c60a127a58900595633ce4b8cc13ac5e7d01c6cf -size 488 diff --git a/Assets/_DDD/_Addressables/So/InputBindingSo.meta b/Assets/_DDD/_Addressables/So/UiActionInputBinding.meta similarity index 100% rename from Assets/_DDD/_Addressables/So/InputBindingSo.meta rename to Assets/_DDD/_Addressables/So/UiActionInputBinding.meta diff --git a/Assets/_DDD/_Addressables/So/UiActionInputBinding/ConfirmUi_InputBindingSo.asset b/Assets/_DDD/_Addressables/So/UiActionInputBinding/ConfirmUi_InputBindingSo.asset new file mode 100644 index 000000000..310e570a3 --- /dev/null +++ b/Assets/_DDD/_Addressables/So/UiActionInputBinding/ConfirmUi_InputBindingSo.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15d0830d58383256f0b4da13b44a630f007b55164ac88efcb57fa3b477b8e415 +size 455 diff --git a/Assets/_DDD/_Addressables/So/InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset.meta b/Assets/_DDD/_Addressables/So/UiActionInputBinding/ConfirmUi_InputBindingSo.asset.meta similarity index 100% rename from Assets/_DDD/_Addressables/So/InputBindingSo/ConfirmUi_RestaurantUiActions_InputBindingSo.asset.meta rename to Assets/_DDD/_Addressables/So/UiActionInputBinding/ConfirmUi_InputBindingSo.asset.meta diff --git a/Assets/_DDD/_Addressables/So/UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset b/Assets/_DDD/_Addressables/So/UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset new file mode 100644 index 000000000..6a0024958 --- /dev/null +++ b/Assets/_DDD/_Addressables/So/UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac93465aba4266ea03085e75f08ca4cfb799f45a3c10d82cfedeea292ed75ab4 +size 468 diff --git a/Assets/_DDD/_Addressables/So/InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset.meta b/Assets/_DDD/_Addressables/So/UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset.meta similarity index 100% rename from Assets/_DDD/_Addressables/So/InputBindingSo/RestaurantManagementUi_RestaurantUiActions_InputBindingSo.asset.meta rename to Assets/_DDD/_Addressables/So/UiActionInputBinding/RestaurantManagementUi_InputBindingSo.asset.meta diff --git a/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUi.cs b/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUi.cs index 3e0377e2c..2e2d7fffc 100644 --- a/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUi.cs +++ b/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUi.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.InputSystem; @@ -20,30 +21,23 @@ public static IEnumerable GetFlags(this T input) where T : Enum public abstract class PopupUi : BasePopupUi where T : Enum { - protected BaseUiActionsInputBindingSo _baseUiActionsInputBindingSo; + [SerializeField, Required] protected BaseUiActionsInputBinding _uiActionsInputBinding; protected readonly List<(InputAction action, Action handler)> _registeredHandlers = new(); - public override InputActionMaps InputActionMaps => _baseUiActionsInputBindingSo.InputActionMaps; + public override InputActionMaps InputActionMaps => _uiActionsInputBinding.InputActionMaps; private bool _isTopPopup => UiManager.Instance.PopupUiState.IsTopPopup(this); - - private const string InputBindingSo = "InputBindingSo"; - protected override async void TryRegister() + protected override void TryRegister() { base.TryRegister(); - UiManager.Instance?.PopupUiState?.RegisterPopupUI(this); - - string addressableKey = $"{GetType().Name}_{typeof(T).Name}_{InputBindingSo}"; - _baseUiActionsInputBindingSo = await AssetManager.LoadAsset>(addressableKey); - - Debug.Assert(_baseUiActionsInputBindingSo != null, $"{GetType().Name} class InputBindingSo not found: {addressableKey}"); + UiManager.Instance.PopupUiState.RegisterPopupUI(this); - foreach (var actionEnum in _baseUiActionsInputBindingSo.BindingActions.GetFlags()) + foreach (var actionEnum in _uiActionsInputBinding.BindingActions.GetFlags()) { if (actionEnum.Equals(default(T))) continue; - var inputAction = InputManager.Instance.GetAction(_baseUiActionsInputBindingSo.InputActionMaps, actionEnum.ToString()); + var inputAction = InputManager.Instance.GetAction(_uiActionsInputBinding.InputActionMaps, actionEnum.ToString()); if (inputAction == null) continue; var startedHandler = new Action(context => @@ -96,7 +90,7 @@ public override void Open(OpenPopupUiEvent evt) if (UiManager.Instance.PopupUiState.IsTopPopup(this)) { - InputManager.Instance.SwitchCurrentActionMap(_baseUiActionsInputBindingSo.InputActionMaps); + InputManager.Instance.SwitchCurrentActionMap(_uiActionsInputBinding.InputActionMaps); } } diff --git a/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUiState.cs b/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUiState.cs index 6b737267c..69d34f7e8 100644 --- a/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUiState.cs +++ b/Assets/_DDD/_Scripts/GameUi/PopupUi/PopupUiState.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using Sirenix.OdinInspector; using UnityEngine; diff --git a/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBinding.cs b/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBinding.cs new file mode 100644 index 000000000..617aa841b --- /dev/null +++ b/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBinding.cs @@ -0,0 +1,14 @@ +using System; +using Sirenix.OdinInspector; +using UnityEngine; + +namespace DDD +{ + public class BaseUiActionsInputBinding : ScriptableObject where T : Enum + { + public InputActionMaps InputActionMaps; + + [EnumToggleButtons] + public T BindingActions; + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBindingSo.cs.meta b/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBinding.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBindingSo.cs.meta rename to Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBinding.cs.meta diff --git a/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBindingSo.cs b/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBindingSo.cs deleted file mode 100644 index b34b9f99c..000000000 --- a/Assets/_DDD/_Scripts/InputSystem/BaseUiActionsInputBindingSo.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using Sirenix.OdinInspector; -using UnityEngine; - -namespace DDD -{ - public class BaseUiActionsInputBindingSo : ScriptableObject where T : Enum - { - public InputActionMaps InputActionMaps; - - [EnumToggleButtons] - public T BindingActions; - - [ReadOnly, LabelText("Addressable Key")] - public string AddressableKey => $"{typeof(T).Name}_InputBindingSo"; - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBinding.cs b/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBinding.cs new file mode 100644 index 000000000..0b02feb28 --- /dev/null +++ b/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBinding.cs @@ -0,0 +1,7 @@ +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "_UiActionsInputBinding", menuName = "Ui/RestaurantActions_InputBindingSo")] + public class RestaurantActionsInputBinding : BaseUiActionsInputBinding { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBindingSo.cs.meta b/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBinding.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBindingSo.cs.meta rename to Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBinding.cs.meta diff --git a/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBindingSo.cs b/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBindingSo.cs deleted file mode 100644 index 50fdd086d..000000000 --- a/Assets/_DDD/_Scripts/InputSystem/RestaurantActionsInputBindingSo.cs +++ /dev/null @@ -1,7 +0,0 @@ -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "_RestaurantActions_InputBindingSo", menuName = "Ui/RestaurantActions_InputBindingSo")] - public class RestaurantActionsInputBindingSo : BaseUiActionsInputBindingSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBinding.cs b/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBinding.cs new file mode 100644 index 000000000..6674e29ee --- /dev/null +++ b/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBinding.cs @@ -0,0 +1,7 @@ +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "_UiActionsInputBinding", menuName = "Ui/RestaurantUiActions_InputBindingSo")] + public class RestaurantUiActionsInputBinding : BaseUiActionsInputBinding { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBindingSo.cs.meta b/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBinding.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBindingSo.cs.meta rename to Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBinding.cs.meta diff --git a/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBindingSo.cs b/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBindingSo.cs deleted file mode 100644 index 4935b53c9..000000000 --- a/Assets/_DDD/_Scripts/InputSystem/RestaurantUiActionsInputBindingSo.cs +++ /dev/null @@ -1,7 +0,0 @@ -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "_RestaurantUiActions_InputBindingSo", menuName = "Ui/RestaurantUiActions_InputBindingSo")] - public class RestaurantUiActionsInputBindingSo : BaseUiActionsInputBindingSo { } -} \ No newline at end of file