diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..5be6931fc Binary files /dev/null and b/.DS_Store differ diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj index 1128f2656..14222e30f 100644 --- a/Assembly-CSharp.csproj +++ b/Assembly-CSharp.csproj @@ -472,22 +472,22 @@ /Applications/Unity/Hub/Editor/6000.2.2f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.XRModule.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/PackageCache/com.unity.collections@d49facba0036/Unity.Collections.LowLevel.ILSupport/Unity.Collections.LowLevel.ILSupport.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/PackageCache/com.unity.collections@d49facba0036/Unity.Collections.LowLevel.ILSupport/Unity.Collections.LowLevel.ILSupport.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/PackageCache/com.unity.ext.nunit@031a54704bff/net40/unity-custom/nunit.framework.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/PackageCache/com.unity.ext.nunit@031a54704bff/net40/unity-custom/nunit.framework.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/PackageCache/com.unity.collections@d49facba0036/Unity.Collections.Tests/System.IO.Hashing/System.IO.Hashing.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/PackageCache/com.unity.collections@d49facba0036/Unity.Collections.Tests/System.IO.Hashing/System.IO.Hashing.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/PackageCache/com.unity.visualscripting@6279e2b7c485/Runtime/VisualScripting.Flow/Dependencies/NCalc/Unity.VisualScripting.Antlr3.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/PackageCache/com.unity.visualscripting@6279e2b7c485/Runtime/VisualScripting.Flow/Dependencies/NCalc/Unity.VisualScripting.Antlr3.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/PackageCache/com.unity.nuget.mono-cecil@d78732e851eb/Mono.Cecil.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/PackageCache/com.unity.nuget.mono-cecil@d78732e851eb/Mono.Cecil.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/PackageCache/com.unity.collections@d49facba0036/Unity.Collections.Tests/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/PackageCache/com.unity.collections@d49facba0036/Unity.Collections.Tests/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.dll /Applications/Unity/Hub/Editor/6000.2.2f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Xcode.dll @@ -498,12 +498,6 @@ /Applications/Unity/Hub/Editor/6000.2.2f1/PlaybackEngines/iOSSupport/UnityEditor.Apple.Extensions.Common.dll - - /Applications/Unity/Hub/Editor/6000.2.2f1/PlaybackEngines/AndroidPlayer/Unity.Android.Types.dll - - - /Applications/Unity/Hub/Editor/6000.2.2f1/PlaybackEngines/AndroidPlayer/Unity.Android.Gradle.dll - /Applications/Unity/Hub/Editor/6000.2.2f1/Unity.app/Contents/PlaybackEngines/MacStandaloneSupport/UnityEditor.iOS.Extensions.Xcode.dll @@ -874,151 +868,151 @@ /Applications/Unity/Hub/Editor/6000.2.2f1/Unity.app/Contents/NetStandard/compat/2.1.0/shims/netfx/mscorlib.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.TextMeshPro.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.TextMeshPro.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.ShaderLibrary.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.ShaderLibrary.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.SettingsProvider.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.SettingsProvider.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.Updater.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.Updater.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Timeline.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Timeline.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/PPv2URPConverters.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/PPv2URPConverters.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Runtime.Shared.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Runtime.Shared.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.2D.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.2D.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Shared.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Shared.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Searcher.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Searcher.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Burst.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Burst.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Core.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Core.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Rendering.LightTransport.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Rendering.LightTransport.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Rider.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Rider.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.Editor.ConversionSystem.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.AI.Navigation.Editor.ConversionSystem.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Flow.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Flow.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Flow.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Flow.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Collections.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Collections.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.InputSystem.ForUI.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.InputSystem.ForUI.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.GPUDriven.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.GPUDriven.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Timeline.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.State.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.State.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Mathematics.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Mathematics.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Shaders.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Shaders.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/UnityEngine.UI.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/UnityEngine.UI.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Multiplayer.Center.Common.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Multiplayer.Center.Common.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Burst.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Burst.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Core.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.Core.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Multiplayer.Center.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Multiplayer.Center.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Rendering.LightTransport.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Rendering.LightTransport.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.State.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.VisualScripting.State.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Config.Runtime.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Universal.Config.Runtime.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipeline.Universal.ShaderLibrary.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipeline.Universal.ShaderLibrary.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.Collections.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.Collections.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.ShaderGraph.Editor.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.ShaderGraph.Editor.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Editor.Shared.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.RenderPipelines.Core.Editor.Shared.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/Unity.InputSystem.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/Unity.InputSystem.dll - /Users/seankim/1.Program/7. Unity/Practice_Unity/Library/ScriptAssemblies/UnityEditor.UI.dll + /Users/ta9/DEV/Study/Practice_Unity/Library/ScriptAssemblies/UnityEditor.UI.dll diff --git a/Assets/Scripts/Controllers/PlayerController.cs b/Assets/Scripts/Controllers/PlayerController.cs index d607a8435..f81e8322d 100644 --- a/Assets/Scripts/Controllers/PlayerController.cs +++ b/Assets/Scripts/Controllers/PlayerController.cs @@ -34,6 +34,7 @@ public partial class PlayerController : MonoBehaviour, IDamageable AI } #endregion + // 이벤트 public event Action OnExpChanged; @@ -114,23 +115,12 @@ public partial class PlayerController : MonoBehaviour, IDamageable { Manager.Input.MoveAction -= OnMove; Manager.Input.MoveAction += OnMove; + + Manager.Input.RegisterAction("Button_Attack", OnAttack); _magnet.OnGetExp -= OnGetExp; _magnet.OnGetExp += OnGetExp; - - // UI가 아직 생성되지 않은 경우, 코루틴을 통해 버튼이 생성될 때까지 대기 - // StartCoroutine(WaitForButtonsAndSubscribe()); - } - // private IEnumerator WaitForButtonsAndSubscribe() - // { - // while (Manager.Input.Buttons == null) yield return null; // 버튼이 생성될 때까지 한 프레임 대기 - // 버튼이 생성되면 이벤트 등록 - // Manager.Input.Buttons.OnAttackButtonClicked -= OnAttack; - // Manager.Input.Buttons.OnAttackButtonClicked += OnAttack; - // Manager.Input.Buttons.OnSkillButtonClicked -= OnSkill; - // Manager.Input.Buttons.OnSkillButtonClicked += OnSkill; - // } // 애니메이터 세팅 (지금은 한 줄 뿐이지만 후에 더 추가될 수도) void SetAnimator() diff --git a/Assets/Scripts/Managers/InputManager.cs b/Assets/Scripts/Managers/InputManager.cs index f2f0452dc..4792724ac 100644 --- a/Assets/Scripts/Managers/InputManager.cs +++ b/Assets/Scripts/Managers/InputManager.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.InputSystem; @@ -11,11 +12,11 @@ public class InputManager: IManager public Action PointAction = null; // 조이스틱의 이동을 담당하는 액션 public Action MoveAction = null; - - public Joystick JoyStick { get; set; } - // public Button_Action Buttons { get; set; } - private InputActions _action; + public Joystick JoyStick { get; set; } + + private Dictionary _registeredActions = new Dictionary(); + bool _pressed = false; float _pressedTime = 0.0f; @@ -90,6 +91,22 @@ public class InputManager: IManager } } + public void RegisterAction(string name, Action action) + { + if (!_registeredActions.ContainsKey(name)) _registeredActions[name] = null; + UnregisterAction(name, action); + _registeredActions[name] += action; + } + public void UnregisterAction(string name, Action action) + { + if (_registeredActions.ContainsKey(name)) _registeredActions[name] -= action; + } + + public void OnClicked(string name) + { + if(_registeredActions.TryGetValue(name, out Action action)) action?.Invoke(); + } + public void Clear() { _action.Dispose(); @@ -98,5 +115,7 @@ public class InputManager: IManager MoveAction = null; JoyStick = null; + + _registeredActions.Clear(); } } \ No newline at end of file diff --git a/Assets/Scripts/Managers/UIManager.cs b/Assets/Scripts/Managers/UIManager.cs index fe4d7057a..fff32b1f3 100644 --- a/Assets/Scripts/Managers/UIManager.cs +++ b/Assets/Scripts/Managers/UIManager.cs @@ -64,10 +64,12 @@ public class UIManager : IManager instance.SetActive(false); } - // T component = instance.GetComponent(); + T component = instance.GetComponent(); // if (action != null && component is UIButton button) button.Bind(action); + + // if (component is UIButton button) Manager.Input.Buttons.Add(name, button); - return instance.GetComponent(); + return component; } #region UI Object 특화 메서드 diff --git a/Assets/Scripts/Scenes/GameScene.cs b/Assets/Scripts/Scenes/GameScene.cs index d5749e8dc..39bbe522a 100644 --- a/Assets/Scripts/Scenes/GameScene.cs +++ b/Assets/Scripts/Scenes/GameScene.cs @@ -21,7 +21,8 @@ public class GameScene : BaseScene { atkbtn.SetButtonContents(null,"공", false, true); atkbtn.SetButtonRect("Button_Attack", new Vector2(50, 150)); - atkbtn.Bind(() => Debug.Log("Attack Button Clicked")); + atkbtn.OnButtonClicked += Manager.Input.OnClicked; + // atkbtn.Bind(() => Debug.Log("Attack Button Clicked")); } UIButton defbtn = Manager.UI.SwitchOnObject("Button_Defence", true); @@ -35,7 +36,7 @@ public class GameScene : BaseScene new Vector2(1, 0), new Vector2(0.5f, 0.5f) ); - defbtn.Bind(() => Debug.Log("Defence Button Clicked")); + // defbtn.Bind(() => Debug.Log("Defence Button Clicked")); } Manager.UI.ExclusiveExpBar(); diff --git a/Assets/Scripts/UI/UIButton.cs b/Assets/Scripts/UI/UIButton.cs index 81d449167..00eb5f3f2 100644 --- a/Assets/Scripts/UI/UIButton.cs +++ b/Assets/Scripts/UI/UIButton.cs @@ -19,7 +19,9 @@ public class UIButton: MonoBehaviour _button.gameObject.name = _name; } } - + + public event Action OnButtonClicked; + private Button _button; // 모든 버튼의 백그라운드 동작은 항상 private Image _background; @@ -38,7 +40,11 @@ public class UIButton: MonoBehaviour private void Awake() { - if (_button == null) _button = GetComponent