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