2026-03-17 14:19 FPS시점의 Strafe캐릭터 조작과 에임모드 전환

This commit is contained in:
2026-03-17 14:20:49 +09:00
parent 960a68d734
commit 06169fa6ae
24 changed files with 320 additions and 56 deletions

View File

@@ -11,6 +11,10 @@ public class GameManager : MonoBehaviour
public LevelManager Level { get; private set; }
public CameraManager Camera { get; private set; }
//UI
public IntroUIManager IntroUI { get; private set; }
public InGameUIManager InGameUI { get; private set; }
private void Awake()
{
if (Instance == null)
@@ -29,15 +33,16 @@ private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
// 씬이 로드될 때마다 해당 씬에 있는 Manager들을 찾아서 갱신
// 없으면 자동으로 null이 들어감
Level = FindFirstObjectByType<LevelManager>();
Camera = FindFirstObjectByType<CameraManager>();
if(Level != null) Level.OnSceneLoaded(scene, mode);
if(Camera != null) Camera.OnSceneLoaded(scene, mode);
this.Level = FindFirstObjectByType<LevelManager>();
this.Camera = FindFirstObjectByType<CameraManager>();
this.IntroUI = FindFirstObjectByType<IntroUIManager>();
this.InGameUI = FindFirstObjectByType<InGameUIManager>();
if (this.Level != null) this.Level.OnSceneLoaded(scene, mode);
if (this.Camera != null) this.Camera.OnSceneLoaded(scene, mode);
InputManager.Instance.PlayerInputEnable(true);
GlobalUIManager.Instance.SetSceneLoadingActive(false);
}
public void RequestSceneChange(string sceneName)

View File

@@ -20,9 +20,12 @@ public class InputManager : MonoBehaviour
public event Action<Vector2> OnMoveEvent;
public event Action<InputState> OnSprintEvent;
public event Action<InputState> OnJumpEvent;
public event Action<InputState> OnAimToggleEvent;
public event Action<Vector2> OnLookEvent;
public event Action OnNormalAttackEvent;
public event Action OnHeavyAttackEvent;
//키조작
public event Action OnKeyDown_UpArrowEvent;
public event Action OnKeyDown_DownArrowEvent;
@@ -95,8 +98,11 @@ public void SetCharacterInputMap(string mapName)
BindActionCharacter("Move", OnMove);
BindActionCharacter("Sprint", OnSprint);
BindActionCharacter("Jump", OnJump);
BindActionCharacter("AimToggle", OnAimToggle);
BindActionCharacter("Look", OnLook);
BindActionCharacter("NormalAttack", OnNormalAttack);
BindActionCharacter("HeavyAttack", OnHeavyAttack);
}
//매핑용 함수
@@ -171,7 +177,18 @@ private void OnJump(InputAction.CallbackContext ctx)
OnJumpEvent?.Invoke(InputState.Canceled);
}
}
private void OnAimToggle(InputAction.CallbackContext ctx)
{
if (ctx.started)
{
OnAimToggleEvent?.Invoke(InputState.Started);
}
}
private void OnLook(InputAction.CallbackContext ctx)
{
Vector2 look = ctx.ReadValue<Vector2>();
OnLookEvent?.Invoke(look);
}
private void OnNormalAttack(InputAction.CallbackContext ctx)
{
OnNormalAttackEvent?.Invoke();
@@ -193,7 +210,7 @@ private void OnKeyDown_UpArrow(InputAction.CallbackContext ctx)
private void OnKeyDown_DownArrow(InputAction.CallbackContext ctx)
{
if (ctx.started)
OnKeyDown_UpArrowEvent?.Invoke();
OnKeyDown_DownArrowEvent?.Invoke();
}
private void OnKeyDown_Enter(InputAction.CallbackContext ctx)