Combat2D 씬 작업 중
CombatPlayer 수정 작업 중 Input System 수정
This commit is contained in:
parent
be6a089e43
commit
e4ccf72d84
File diff suppressed because it is too large
Load Diff
@ -135,15 +135,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
""initialStateCheck"": false
|
""initialStateCheck"": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
""name"": ""Dash"",
|
|
||||||
""type"": ""Button"",
|
|
||||||
""id"": ""c68960a5-036f-4304-8d05-25778470ecfd"",
|
|
||||||
""expectedControlType"": ""Button"",
|
|
||||||
""processors"": """",
|
|
||||||
""interactions"": """",
|
|
||||||
""initialStateCheck"": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
""name"": ""ActivateMainSkill"",
|
""name"": ""ActivateMainSkill"",
|
||||||
""type"": ""Button"",
|
""type"": ""Button"",
|
||||||
@ -396,17 +387,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
""isComposite"": false,
|
""isComposite"": false,
|
||||||
""isPartOfComposite"": false
|
""isPartOfComposite"": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
""name"": """",
|
|
||||||
""id"": ""5a134753-6868-4dec-9b0e-5839b48f7417"",
|
|
||||||
""path"": ""<Keyboard>/space"",
|
|
||||||
""interactions"": """",
|
|
||||||
""processors"": """",
|
|
||||||
""groups"": ""Keyboard&Mouse"",
|
|
||||||
""action"": ""Dash"",
|
|
||||||
""isComposite"": false,
|
|
||||||
""isPartOfComposite"": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
""name"": """",
|
""name"": """",
|
||||||
""id"": ""f1364876-ede7-4831-b23e-532d6995031e"",
|
""id"": ""f1364876-ede7-4831-b23e-532d6995031e"",
|
||||||
@ -546,31 +526,31 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
""name"": ""Unit"",
|
""name"": ""Combat"",
|
||||||
""id"": ""72deb161-83b9-4d14-8bcf-0bd0c122f76f"",
|
""id"": ""fcad259b-ca44-46e3-b008-1297fa7be828"",
|
||||||
""actions"": [
|
""actions"": [
|
||||||
{
|
{
|
||||||
""name"": ""SelectUnit"",
|
""name"": ""Move"",
|
||||||
|
""type"": ""Value"",
|
||||||
|
""id"": ""4714fdf1-f399-40c7-b623-660c9bfff052"",
|
||||||
|
""expectedControlType"": ""Vector2"",
|
||||||
|
""processors"": """",
|
||||||
|
""interactions"": """",
|
||||||
|
""initialStateCheck"": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
""name"": ""Attack"",
|
||||||
""type"": ""Button"",
|
""type"": ""Button"",
|
||||||
""id"": ""2c1978d2-b4be-453a-9413-7b54903dbf38"",
|
""id"": ""5ff50411-308e-490e-acb2-e1001785169d"",
|
||||||
""expectedControlType"": ""Button"",
|
""expectedControlType"": ""Button"",
|
||||||
""processors"": """",
|
""processors"": """",
|
||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
""initialStateCheck"": false
|
""initialStateCheck"": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
""name"": ""CancelSelectedUnit"",
|
""name"": ""Dash"",
|
||||||
""type"": ""Button"",
|
""type"": ""Button"",
|
||||||
""id"": ""952be7b5-8952-47b7-a2db-ced6517d161a"",
|
""id"": ""07c70113-456d-4ae6-a273-92bfa09153c2"",
|
||||||
""expectedControlType"": ""Button"",
|
|
||||||
""processors"": """",
|
|
||||||
""interactions"": """",
|
|
||||||
""initialStateCheck"": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
""name"": ""MoveUnit"",
|
|
||||||
""type"": ""Button"",
|
|
||||||
""id"": ""2fe8434e-42e2-4b88-b0b3-0b2b4f8596a8"",
|
|
||||||
""expectedControlType"": ""Button"",
|
""expectedControlType"": ""Button"",
|
||||||
""processors"": """",
|
""processors"": """",
|
||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
@ -578,36 +558,91 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
""bindings"": [
|
""bindings"": [
|
||||||
|
{
|
||||||
|
""name"": ""WASD"",
|
||||||
|
""id"": ""362fb18c-8b50-4fcd-9bc9-9fcab5fd2ce5"",
|
||||||
|
""path"": ""2DVector"",
|
||||||
|
""interactions"": """",
|
||||||
|
""processors"": """",
|
||||||
|
""groups"": """",
|
||||||
|
""action"": ""Move"",
|
||||||
|
""isComposite"": true,
|
||||||
|
""isPartOfComposite"": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
""name"": ""up"",
|
||||||
|
""id"": ""36746c9d-eca6-4ff8-bcec-2d658d907744"",
|
||||||
|
""path"": ""<Keyboard>/w"",
|
||||||
|
""interactions"": """",
|
||||||
|
""processors"": """",
|
||||||
|
""groups"": ""Keyboard&Mouse"",
|
||||||
|
""action"": ""Move"",
|
||||||
|
""isComposite"": false,
|
||||||
|
""isPartOfComposite"": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
""name"": ""down"",
|
||||||
|
""id"": ""8420a87e-ccc1-4940-addd-1516ac2896af"",
|
||||||
|
""path"": ""<Keyboard>/s"",
|
||||||
|
""interactions"": """",
|
||||||
|
""processors"": """",
|
||||||
|
""groups"": ""Keyboard&Mouse"",
|
||||||
|
""action"": ""Move"",
|
||||||
|
""isComposite"": false,
|
||||||
|
""isPartOfComposite"": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
""name"": ""left"",
|
||||||
|
""id"": ""6ac0b570-a29a-40f9-b039-c4085ef669a8"",
|
||||||
|
""path"": ""<Keyboard>/a"",
|
||||||
|
""interactions"": """",
|
||||||
|
""processors"": """",
|
||||||
|
""groups"": ""Keyboard&Mouse"",
|
||||||
|
""action"": ""Move"",
|
||||||
|
""isComposite"": false,
|
||||||
|
""isPartOfComposite"": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
""name"": ""right"",
|
||||||
|
""id"": ""975926ee-895b-4858-b17d-c8ccc3142fb4"",
|
||||||
|
""path"": ""<Keyboard>/d"",
|
||||||
|
""interactions"": """",
|
||||||
|
""processors"": """",
|
||||||
|
""groups"": ""Keyboard&Mouse"",
|
||||||
|
""action"": ""Move"",
|
||||||
|
""isComposite"": false,
|
||||||
|
""isPartOfComposite"": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
""name"": """",
|
""name"": """",
|
||||||
""id"": ""2daa9903-ce4b-4c8d-9347-5f59b09e8674"",
|
""id"": ""17f1b73a-900f-477d-b3aa-2cfc0335591f"",
|
||||||
""path"": ""<Mouse>/leftButton"",
|
""path"": ""<Mouse>/leftButton"",
|
||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
""processors"": """",
|
""processors"": """",
|
||||||
""groups"": ""Keyboard&Mouse"",
|
""groups"": ""Keyboard&Mouse"",
|
||||||
""action"": ""SelectUnit"",
|
""action"": ""Attack"",
|
||||||
""isComposite"": false,
|
""isComposite"": false,
|
||||||
""isPartOfComposite"": false
|
""isPartOfComposite"": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
""name"": """",
|
""name"": """",
|
||||||
""id"": ""76632044-5edc-4dba-97aa-64d5173c78ec"",
|
""id"": ""acdb5d7e-efe0-4c9a-9c7c-c6810fc37c72"",
|
||||||
""path"": ""<Mouse>/rightButton"",
|
""path"": ""<Keyboard>/k"",
|
||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
""processors"": """",
|
""processors"": """",
|
||||||
""groups"": ""Keyboard&Mouse"",
|
""groups"": ""Keyboard&Mouse"",
|
||||||
""action"": ""MoveUnit"",
|
""action"": ""Attack"",
|
||||||
""isComposite"": false,
|
""isComposite"": false,
|
||||||
""isPartOfComposite"": false
|
""isPartOfComposite"": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
""name"": """",
|
""name"": """",
|
||||||
""id"": ""e768abd0-e04f-4441-b6b3-09f456041cd8"",
|
""id"": ""4a22ea68-00e5-46bf-b622-b6ceb0351141"",
|
||||||
""path"": ""<Keyboard>/escape"",
|
""path"": ""<Keyboard>/space"",
|
||||||
""interactions"": """",
|
""interactions"": """",
|
||||||
""processors"": """",
|
""processors"": """",
|
||||||
""groups"": ""Keyboard&Mouse"",
|
""groups"": ""Keyboard&Mouse"",
|
||||||
""action"": ""CancelSelectedUnit"",
|
""action"": ""Dash"",
|
||||||
""isComposite"": false,
|
""isComposite"": false,
|
||||||
""isPartOfComposite"": false
|
""isPartOfComposite"": false
|
||||||
}
|
}
|
||||||
@ -658,7 +693,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
m_Player_SpawnInIsladnPlayer = m_Player.FindAction("SpawnInIsladnPlayer", throwIfNotFound: true);
|
m_Player_SpawnInIsladnPlayer = m_Player.FindAction("SpawnInIsladnPlayer", throwIfNotFound: true);
|
||||||
m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true);
|
m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true);
|
||||||
m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
|
m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
|
||||||
m_Player_Dash = m_Player.FindAction("Dash", throwIfNotFound: true);
|
|
||||||
m_Player_ActivateMainSkill = m_Player.FindAction("ActivateMainSkill", throwIfNotFound: true);
|
m_Player_ActivateMainSkill = m_Player.FindAction("ActivateMainSkill", throwIfNotFound: true);
|
||||||
m_Player_ToggleLaunchMode = m_Player.FindAction("ToggleLaunchMode", throwIfNotFound: true);
|
m_Player_ToggleLaunchMode = m_Player.FindAction("ToggleLaunchMode", throwIfNotFound: true);
|
||||||
m_Player_LaunchCannon = m_Player.FindAction("LaunchCannon", throwIfNotFound: true);
|
m_Player_LaunchCannon = m_Player.FindAction("LaunchCannon", throwIfNotFound: true);
|
||||||
@ -670,11 +704,11 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true);
|
m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true);
|
||||||
m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true);
|
m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true);
|
||||||
m_Camera_Rotate = m_Camera.FindAction("Rotate", throwIfNotFound: true);
|
m_Camera_Rotate = m_Camera.FindAction("Rotate", throwIfNotFound: true);
|
||||||
// Unit
|
// Combat
|
||||||
m_Unit = asset.FindActionMap("Unit", throwIfNotFound: true);
|
m_Combat = asset.FindActionMap("Combat", throwIfNotFound: true);
|
||||||
m_Unit_SelectUnit = m_Unit.FindAction("SelectUnit", throwIfNotFound: true);
|
m_Combat_Move = m_Combat.FindAction("Move", throwIfNotFound: true);
|
||||||
m_Unit_CancelSelectedUnit = m_Unit.FindAction("CancelSelectedUnit", throwIfNotFound: true);
|
m_Combat_Attack = m_Combat.FindAction("Attack", throwIfNotFound: true);
|
||||||
m_Unit_MoveUnit = m_Unit.FindAction("MoveUnit", throwIfNotFound: true);
|
m_Combat_Dash = m_Combat.FindAction("Dash", throwIfNotFound: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
@ -748,7 +782,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
private readonly InputAction m_Player_SpawnInIsladnPlayer;
|
private readonly InputAction m_Player_SpawnInIsladnPlayer;
|
||||||
private readonly InputAction m_Player_CancelHold;
|
private readonly InputAction m_Player_CancelHold;
|
||||||
private readonly InputAction m_Player_Attack;
|
private readonly InputAction m_Player_Attack;
|
||||||
private readonly InputAction m_Player_Dash;
|
|
||||||
private readonly InputAction m_Player_ActivateMainSkill;
|
private readonly InputAction m_Player_ActivateMainSkill;
|
||||||
private readonly InputAction m_Player_ToggleLaunchMode;
|
private readonly InputAction m_Player_ToggleLaunchMode;
|
||||||
private readonly InputAction m_Player_LaunchCannon;
|
private readonly InputAction m_Player_LaunchCannon;
|
||||||
@ -772,7 +805,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
public InputAction @SpawnInIsladnPlayer => m_Wrapper.m_Player_SpawnInIsladnPlayer;
|
public InputAction @SpawnInIsladnPlayer => m_Wrapper.m_Player_SpawnInIsladnPlayer;
|
||||||
public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold;
|
public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold;
|
||||||
public InputAction @Attack => m_Wrapper.m_Player_Attack;
|
public InputAction @Attack => m_Wrapper.m_Player_Attack;
|
||||||
public InputAction @Dash => m_Wrapper.m_Player_Dash;
|
|
||||||
public InputAction @ActivateMainSkill => m_Wrapper.m_Player_ActivateMainSkill;
|
public InputAction @ActivateMainSkill => m_Wrapper.m_Player_ActivateMainSkill;
|
||||||
public InputAction @ToggleLaunchMode => m_Wrapper.m_Player_ToggleLaunchMode;
|
public InputAction @ToggleLaunchMode => m_Wrapper.m_Player_ToggleLaunchMode;
|
||||||
public InputAction @LaunchCannon => m_Wrapper.m_Player_LaunchCannon;
|
public InputAction @LaunchCannon => m_Wrapper.m_Player_LaunchCannon;
|
||||||
@ -825,9 +857,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
@Attack.started += instance.OnAttack;
|
@Attack.started += instance.OnAttack;
|
||||||
@Attack.performed += instance.OnAttack;
|
@Attack.performed += instance.OnAttack;
|
||||||
@Attack.canceled += instance.OnAttack;
|
@Attack.canceled += instance.OnAttack;
|
||||||
@Dash.started += instance.OnDash;
|
|
||||||
@Dash.performed += instance.OnDash;
|
|
||||||
@Dash.canceled += instance.OnDash;
|
|
||||||
@ActivateMainSkill.started += instance.OnActivateMainSkill;
|
@ActivateMainSkill.started += instance.OnActivateMainSkill;
|
||||||
@ActivateMainSkill.performed += instance.OnActivateMainSkill;
|
@ActivateMainSkill.performed += instance.OnActivateMainSkill;
|
||||||
@ActivateMainSkill.canceled += instance.OnActivateMainSkill;
|
@ActivateMainSkill.canceled += instance.OnActivateMainSkill;
|
||||||
@ -889,9 +918,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
@Attack.started -= instance.OnAttack;
|
@Attack.started -= instance.OnAttack;
|
||||||
@Attack.performed -= instance.OnAttack;
|
@Attack.performed -= instance.OnAttack;
|
||||||
@Attack.canceled -= instance.OnAttack;
|
@Attack.canceled -= instance.OnAttack;
|
||||||
@Dash.started -= instance.OnDash;
|
|
||||||
@Dash.performed -= instance.OnDash;
|
|
||||||
@Dash.canceled -= instance.OnDash;
|
|
||||||
@ActivateMainSkill.started -= instance.OnActivateMainSkill;
|
@ActivateMainSkill.started -= instance.OnActivateMainSkill;
|
||||||
@ActivateMainSkill.performed -= instance.OnActivateMainSkill;
|
@ActivateMainSkill.performed -= instance.OnActivateMainSkill;
|
||||||
@ActivateMainSkill.canceled -= instance.OnActivateMainSkill;
|
@ActivateMainSkill.canceled -= instance.OnActivateMainSkill;
|
||||||
@ -985,67 +1011,67 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
}
|
}
|
||||||
public CameraActions @Camera => new CameraActions(this);
|
public CameraActions @Camera => new CameraActions(this);
|
||||||
|
|
||||||
// Unit
|
// Combat
|
||||||
private readonly InputActionMap m_Unit;
|
private readonly InputActionMap m_Combat;
|
||||||
private List<IUnitActions> m_UnitActionsCallbackInterfaces = new List<IUnitActions>();
|
private List<ICombatActions> m_CombatActionsCallbackInterfaces = new List<ICombatActions>();
|
||||||
private readonly InputAction m_Unit_SelectUnit;
|
private readonly InputAction m_Combat_Move;
|
||||||
private readonly InputAction m_Unit_CancelSelectedUnit;
|
private readonly InputAction m_Combat_Attack;
|
||||||
private readonly InputAction m_Unit_MoveUnit;
|
private readonly InputAction m_Combat_Dash;
|
||||||
public struct UnitActions
|
public struct CombatActions
|
||||||
{
|
{
|
||||||
private @BlueWater m_Wrapper;
|
private @BlueWater m_Wrapper;
|
||||||
public UnitActions(@BlueWater wrapper) { m_Wrapper = wrapper; }
|
public CombatActions(@BlueWater wrapper) { m_Wrapper = wrapper; }
|
||||||
public InputAction @SelectUnit => m_Wrapper.m_Unit_SelectUnit;
|
public InputAction @Move => m_Wrapper.m_Combat_Move;
|
||||||
public InputAction @CancelSelectedUnit => m_Wrapper.m_Unit_CancelSelectedUnit;
|
public InputAction @Attack => m_Wrapper.m_Combat_Attack;
|
||||||
public InputAction @MoveUnit => m_Wrapper.m_Unit_MoveUnit;
|
public InputAction @Dash => m_Wrapper.m_Combat_Dash;
|
||||||
public InputActionMap Get() { return m_Wrapper.m_Unit; }
|
public InputActionMap Get() { return m_Wrapper.m_Combat; }
|
||||||
public void Enable() { Get().Enable(); }
|
public void Enable() { Get().Enable(); }
|
||||||
public void Disable() { Get().Disable(); }
|
public void Disable() { Get().Disable(); }
|
||||||
public bool enabled => Get().enabled;
|
public bool enabled => Get().enabled;
|
||||||
public static implicit operator InputActionMap(UnitActions set) { return set.Get(); }
|
public static implicit operator InputActionMap(CombatActions set) { return set.Get(); }
|
||||||
public void AddCallbacks(IUnitActions instance)
|
public void AddCallbacks(ICombatActions instance)
|
||||||
{
|
{
|
||||||
if (instance == null || m_Wrapper.m_UnitActionsCallbackInterfaces.Contains(instance)) return;
|
if (instance == null || m_Wrapper.m_CombatActionsCallbackInterfaces.Contains(instance)) return;
|
||||||
m_Wrapper.m_UnitActionsCallbackInterfaces.Add(instance);
|
m_Wrapper.m_CombatActionsCallbackInterfaces.Add(instance);
|
||||||
@SelectUnit.started += instance.OnSelectUnit;
|
@Move.started += instance.OnMove;
|
||||||
@SelectUnit.performed += instance.OnSelectUnit;
|
@Move.performed += instance.OnMove;
|
||||||
@SelectUnit.canceled += instance.OnSelectUnit;
|
@Move.canceled += instance.OnMove;
|
||||||
@CancelSelectedUnit.started += instance.OnCancelSelectedUnit;
|
@Attack.started += instance.OnAttack;
|
||||||
@CancelSelectedUnit.performed += instance.OnCancelSelectedUnit;
|
@Attack.performed += instance.OnAttack;
|
||||||
@CancelSelectedUnit.canceled += instance.OnCancelSelectedUnit;
|
@Attack.canceled += instance.OnAttack;
|
||||||
@MoveUnit.started += instance.OnMoveUnit;
|
@Dash.started += instance.OnDash;
|
||||||
@MoveUnit.performed += instance.OnMoveUnit;
|
@Dash.performed += instance.OnDash;
|
||||||
@MoveUnit.canceled += instance.OnMoveUnit;
|
@Dash.canceled += instance.OnDash;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UnregisterCallbacks(IUnitActions instance)
|
private void UnregisterCallbacks(ICombatActions instance)
|
||||||
{
|
{
|
||||||
@SelectUnit.started -= instance.OnSelectUnit;
|
@Move.started -= instance.OnMove;
|
||||||
@SelectUnit.performed -= instance.OnSelectUnit;
|
@Move.performed -= instance.OnMove;
|
||||||
@SelectUnit.canceled -= instance.OnSelectUnit;
|
@Move.canceled -= instance.OnMove;
|
||||||
@CancelSelectedUnit.started -= instance.OnCancelSelectedUnit;
|
@Attack.started -= instance.OnAttack;
|
||||||
@CancelSelectedUnit.performed -= instance.OnCancelSelectedUnit;
|
@Attack.performed -= instance.OnAttack;
|
||||||
@CancelSelectedUnit.canceled -= instance.OnCancelSelectedUnit;
|
@Attack.canceled -= instance.OnAttack;
|
||||||
@MoveUnit.started -= instance.OnMoveUnit;
|
@Dash.started -= instance.OnDash;
|
||||||
@MoveUnit.performed -= instance.OnMoveUnit;
|
@Dash.performed -= instance.OnDash;
|
||||||
@MoveUnit.canceled -= instance.OnMoveUnit;
|
@Dash.canceled -= instance.OnDash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveCallbacks(IUnitActions instance)
|
public void RemoveCallbacks(ICombatActions instance)
|
||||||
{
|
{
|
||||||
if (m_Wrapper.m_UnitActionsCallbackInterfaces.Remove(instance))
|
if (m_Wrapper.m_CombatActionsCallbackInterfaces.Remove(instance))
|
||||||
UnregisterCallbacks(instance);
|
UnregisterCallbacks(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetCallbacks(IUnitActions instance)
|
public void SetCallbacks(ICombatActions instance)
|
||||||
{
|
{
|
||||||
foreach (var item in m_Wrapper.m_UnitActionsCallbackInterfaces)
|
foreach (var item in m_Wrapper.m_CombatActionsCallbackInterfaces)
|
||||||
UnregisterCallbacks(item);
|
UnregisterCallbacks(item);
|
||||||
m_Wrapper.m_UnitActionsCallbackInterfaces.Clear();
|
m_Wrapper.m_CombatActionsCallbackInterfaces.Clear();
|
||||||
AddCallbacks(instance);
|
AddCallbacks(instance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public UnitActions @Unit => new UnitActions(this);
|
public CombatActions @Combat => new CombatActions(this);
|
||||||
private int m_KeyboardMouseSchemeIndex = -1;
|
private int m_KeyboardMouseSchemeIndex = -1;
|
||||||
public InputControlScheme KeyboardMouseScheme
|
public InputControlScheme KeyboardMouseScheme
|
||||||
{
|
{
|
||||||
@ -1078,7 +1104,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
void OnSpawnInIsladnPlayer(InputAction.CallbackContext context);
|
void OnSpawnInIsladnPlayer(InputAction.CallbackContext context);
|
||||||
void OnCancelHold(InputAction.CallbackContext context);
|
void OnCancelHold(InputAction.CallbackContext context);
|
||||||
void OnAttack(InputAction.CallbackContext context);
|
void OnAttack(InputAction.CallbackContext context);
|
||||||
void OnDash(InputAction.CallbackContext context);
|
|
||||||
void OnActivateMainSkill(InputAction.CallbackContext context);
|
void OnActivateMainSkill(InputAction.CallbackContext context);
|
||||||
void OnToggleLaunchMode(InputAction.CallbackContext context);
|
void OnToggleLaunchMode(InputAction.CallbackContext context);
|
||||||
void OnLaunchCannon(InputAction.CallbackContext context);
|
void OnLaunchCannon(InputAction.CallbackContext context);
|
||||||
@ -1092,10 +1117,10 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
|
|||||||
void OnZoom(InputAction.CallbackContext context);
|
void OnZoom(InputAction.CallbackContext context);
|
||||||
void OnRotate(InputAction.CallbackContext context);
|
void OnRotate(InputAction.CallbackContext context);
|
||||||
}
|
}
|
||||||
public interface IUnitActions
|
public interface ICombatActions
|
||||||
{
|
{
|
||||||
void OnSelectUnit(InputAction.CallbackContext context);
|
void OnMove(InputAction.CallbackContext context);
|
||||||
void OnCancelSelectedUnit(InputAction.CallbackContext context);
|
void OnAttack(InputAction.CallbackContext context);
|
||||||
void OnMoveUnit(InputAction.CallbackContext context);
|
void OnDash(InputAction.CallbackContext context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,15 +113,6 @@
|
|||||||
"interactions": "",
|
"interactions": "",
|
||||||
"initialStateCheck": false
|
"initialStateCheck": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Dash",
|
|
||||||
"type": "Button",
|
|
||||||
"id": "c68960a5-036f-4304-8d05-25778470ecfd",
|
|
||||||
"expectedControlType": "Button",
|
|
||||||
"processors": "",
|
|
||||||
"interactions": "",
|
|
||||||
"initialStateCheck": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "ActivateMainSkill",
|
"name": "ActivateMainSkill",
|
||||||
"type": "Button",
|
"type": "Button",
|
||||||
@ -374,17 +365,6 @@
|
|||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": false
|
"isPartOfComposite": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "",
|
|
||||||
"id": "5a134753-6868-4dec-9b0e-5839b48f7417",
|
|
||||||
"path": "<Keyboard>/space",
|
|
||||||
"interactions": "",
|
|
||||||
"processors": "",
|
|
||||||
"groups": "Keyboard&Mouse",
|
|
||||||
"action": "Dash",
|
|
||||||
"isComposite": false,
|
|
||||||
"isPartOfComposite": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": "f1364876-ede7-4831-b23e-532d6995031e",
|
"id": "f1364876-ede7-4831-b23e-532d6995031e",
|
||||||
@ -524,31 +504,31 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Unit",
|
"name": "Combat",
|
||||||
"id": "72deb161-83b9-4d14-8bcf-0bd0c122f76f",
|
"id": "fcad259b-ca44-46e3-b008-1297fa7be828",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"name": "SelectUnit",
|
"name": "Move",
|
||||||
|
"type": "Value",
|
||||||
|
"id": "4714fdf1-f399-40c7-b623-660c9bfff052",
|
||||||
|
"expectedControlType": "Vector2",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Attack",
|
||||||
"type": "Button",
|
"type": "Button",
|
||||||
"id": "2c1978d2-b4be-453a-9413-7b54903dbf38",
|
"id": "5ff50411-308e-490e-acb2-e1001785169d",
|
||||||
"expectedControlType": "Button",
|
"expectedControlType": "Button",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"initialStateCheck": false
|
"initialStateCheck": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "CancelSelectedUnit",
|
"name": "Dash",
|
||||||
"type": "Button",
|
"type": "Button",
|
||||||
"id": "952be7b5-8952-47b7-a2db-ced6517d161a",
|
"id": "07c70113-456d-4ae6-a273-92bfa09153c2",
|
||||||
"expectedControlType": "Button",
|
|
||||||
"processors": "",
|
|
||||||
"interactions": "",
|
|
||||||
"initialStateCheck": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "MoveUnit",
|
|
||||||
"type": "Button",
|
|
||||||
"id": "2fe8434e-42e2-4b88-b0b3-0b2b4f8596a8",
|
|
||||||
"expectedControlType": "Button",
|
"expectedControlType": "Button",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
@ -556,36 +536,91 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bindings": [
|
"bindings": [
|
||||||
|
{
|
||||||
|
"name": "WASD",
|
||||||
|
"id": "362fb18c-8b50-4fcd-9bc9-9fcab5fd2ce5",
|
||||||
|
"path": "2DVector",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "",
|
||||||
|
"action": "Move",
|
||||||
|
"isComposite": true,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "up",
|
||||||
|
"id": "36746c9d-eca6-4ff8-bcec-2d658d907744",
|
||||||
|
"path": "<Keyboard>/w",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Move",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "down",
|
||||||
|
"id": "8420a87e-ccc1-4940-addd-1516ac2896af",
|
||||||
|
"path": "<Keyboard>/s",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Move",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left",
|
||||||
|
"id": "6ac0b570-a29a-40f9-b039-c4085ef669a8",
|
||||||
|
"path": "<Keyboard>/a",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Move",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right",
|
||||||
|
"id": "975926ee-895b-4858-b17d-c8ccc3142fb4",
|
||||||
|
"path": "<Keyboard>/d",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Move",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": "2daa9903-ce4b-4c8d-9347-5f59b09e8674",
|
"id": "17f1b73a-900f-477d-b3aa-2cfc0335591f",
|
||||||
"path": "<Mouse>/leftButton",
|
"path": "<Mouse>/leftButton",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"groups": "Keyboard&Mouse",
|
"groups": "Keyboard&Mouse",
|
||||||
"action": "SelectUnit",
|
"action": "Attack",
|
||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": false
|
"isPartOfComposite": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": "76632044-5edc-4dba-97aa-64d5173c78ec",
|
"id": "acdb5d7e-efe0-4c9a-9c7c-c6810fc37c72",
|
||||||
"path": "<Mouse>/rightButton",
|
"path": "<Keyboard>/k",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"groups": "Keyboard&Mouse",
|
"groups": "Keyboard&Mouse",
|
||||||
"action": "MoveUnit",
|
"action": "Attack",
|
||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": false
|
"isPartOfComposite": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": "e768abd0-e04f-4441-b6b3-09f456041cd8",
|
"id": "4a22ea68-00e5-46bf-b622-b6ceb0351141",
|
||||||
"path": "<Keyboard>/escape",
|
"path": "<Keyboard>/space",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"groups": "Keyboard&Mouse",
|
"groups": "Keyboard&Mouse",
|
||||||
"action": "CancelSelectedUnit",
|
"action": "Dash",
|
||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": false
|
"isPartOfComposite": false
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// ReSharper disable once CheckNamespace
|
||||||
|
namespace BlueWaterProject
|
||||||
|
{
|
||||||
|
public class CombatAttacker : MonoBehaviour
|
||||||
|
{
|
||||||
|
[HideInInspector] public CombatAnimator combatAnimator;
|
||||||
|
|
||||||
|
private bool useMouseAttack;
|
||||||
|
|
||||||
|
public void HandleAttack()
|
||||||
|
{
|
||||||
|
// if (!enableDash || isDashing) return;
|
||||||
|
//
|
||||||
|
// StartCoroutine(nameof(DashCoroutine));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: db1e3c9d88cdfcc47aa88870aa44851f
|
@ -15,39 +15,50 @@ namespace BlueWaterProject
|
|||||||
public delegate void DashInput();
|
public delegate void DashInput();
|
||||||
public event DashInput OnDashInputReceived;
|
public event DashInput OnDashInputReceived;
|
||||||
|
|
||||||
public delegate void AttackInput(InputAction.CallbackContext context);
|
public delegate void AttackInput(bool usedMouse);
|
||||||
public event AttackInput OnAttackInputReceived;
|
public event AttackInput OnAttackInputReceived;
|
||||||
|
|
||||||
private void OnEnable()
|
|
||||||
{
|
|
||||||
playerInput.actions.FindAction("Attack").performed += OnAttackEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnDisable()
|
|
||||||
{
|
|
||||||
playerInput.actions.FindAction("Attack").performed -= OnAttackEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Button("셋팅 초기화")]
|
[Button("셋팅 초기화")]
|
||||||
private void InitSetting()
|
private void InitSetting()
|
||||||
{
|
{
|
||||||
playerInput = GetComponent<PlayerInput>();
|
playerInput = GetComponent<PlayerInput>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnMove(InputValue value)
|
public void OnMove(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
var movementInput = value.Get<Vector2>();
|
var movementInput = context.ReadValue<Vector2>();
|
||||||
OnMoveInputReceived?.Invoke(movementInput);
|
OnMoveInputReceived?.Invoke(movementInput);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDash()
|
public void OnDash(InputAction.CallbackContext context)
|
||||||
|
{
|
||||||
|
if (context.started)
|
||||||
{
|
{
|
||||||
OnDashInputReceived?.Invoke();
|
OnDashInputReceived?.Invoke();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnAttackEvent(InputAction.CallbackContext context)
|
public void OnAttack(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
OnAttackInputReceived?.Invoke(context);
|
if (context.started)
|
||||||
|
{
|
||||||
|
var device = context.control.device;
|
||||||
|
bool usedMouse;
|
||||||
|
|
||||||
|
switch (device)
|
||||||
|
{
|
||||||
|
case Keyboard:
|
||||||
|
usedMouse = false;
|
||||||
|
break;
|
||||||
|
case Mouse:
|
||||||
|
usedMouse = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
OnAttackInputReceived?.Invoke(usedMouse);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnItemInventory()
|
private void OnItemInventory()
|
||||||
|
@ -24,14 +24,6 @@ namespace BlueWaterProject
|
|||||||
[Range(0f, 5f), Tooltip("대쉬 쿨타임")]
|
[Range(0f, 5f), Tooltip("대쉬 쿨타임")]
|
||||||
[SerializeField] private float dashCooldown = 0.5f;
|
[SerializeField] private float dashCooldown = 0.5f;
|
||||||
|
|
||||||
// Ground
|
|
||||||
[Range(0.1f, 10.0f), Tooltip("지면 감지 거리")]
|
|
||||||
[SerializeField] private float groundCheckDistance = 2.0f;
|
|
||||||
|
|
||||||
[SerializeField] private LayerMask groundLayer;
|
|
||||||
|
|
||||||
private Animator Animator => combatAnimator.animator;
|
|
||||||
|
|
||||||
private Vector3 currentMoveDirection;
|
private Vector3 currentMoveDirection;
|
||||||
private Vector3 previousMoveDirection = Vector3.back;
|
private Vector3 previousMoveDirection = Vector3.back;
|
||||||
private float finalSpeed;
|
private float finalSpeed;
|
||||||
@ -48,12 +40,9 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
private void FixedUpdate()
|
private void FixedUpdate()
|
||||||
{
|
{
|
||||||
//CheckGround();
|
|
||||||
|
|
||||||
if (isDashing) return;
|
if (isDashing) return;
|
||||||
|
|
||||||
var finalVelocity = rb.position + currentMoveDirection * (moveSpeed * Time.fixedDeltaTime);
|
HandleMove();
|
||||||
rb.MovePosition(finalVelocity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Button("셋팅 초기화")]
|
[Button("셋팅 초기화")]
|
||||||
@ -73,51 +62,6 @@ namespace BlueWaterProject
|
|||||||
isMoving = currentMoveDirection != Vector3.zero;
|
isMoving = currentMoveDirection != Vector3.zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HandleDash()
|
|
||||||
{
|
|
||||||
if (!enableDash || isDashing) return;
|
|
||||||
|
|
||||||
StartCoroutine(nameof(DashCoroutine));
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator DashCoroutine()
|
|
||||||
{
|
|
||||||
var dashDirection = previousMoveDirection;
|
|
||||||
isDashing = true;
|
|
||||||
enableDash = false;
|
|
||||||
combatAnimator.SetIsDash(true);
|
|
||||||
|
|
||||||
var elapsedTime = 0f;
|
|
||||||
while (!Animator.GetCurrentAnimatorStateInfo(0).IsName("DashState"))
|
|
||||||
{
|
|
||||||
elapsedTime += Time.deltaTime;
|
|
||||||
|
|
||||||
if (elapsedTime >= 1f)
|
|
||||||
{
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var animationLength = Animator.GetCurrentAnimatorStateInfo(0).length;
|
|
||||||
Animator.speed = animationLength / dashTime;
|
|
||||||
|
|
||||||
while (Animator.GetCurrentAnimatorStateInfo(0).IsName("DashState") &&
|
|
||||||
Animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1f)
|
|
||||||
{
|
|
||||||
var finalVelocity = rb.position + dashDirection * (dashSpeed * Time.fixedDeltaTime);
|
|
||||||
rb.MovePosition(finalVelocity);
|
|
||||||
yield return new WaitForFixedUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
Animator.speed = 1f;
|
|
||||||
isDashing = false;
|
|
||||||
combatAnimator.SetIsDash(false);
|
|
||||||
|
|
||||||
StartCoroutine(Utils.CoolDown(dashCooldown, () => enableDash = true));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MoveAnimation()
|
private void MoveAnimation()
|
||||||
{
|
{
|
||||||
combatAnimator.SetIsMoving(isMoving);
|
combatAnimator.SetIsMoving(isMoving);
|
||||||
@ -139,6 +83,61 @@ namespace BlueWaterProject
|
|||||||
};
|
};
|
||||||
visualLook.localScale = localScale;
|
visualLook.localScale = localScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleMove()
|
||||||
|
{
|
||||||
|
var finalVelocity = currentMoveDirection * moveSpeed;
|
||||||
|
rb.velocity = finalVelocity;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dash
|
||||||
|
public void HandleDash()
|
||||||
|
{
|
||||||
|
if (!enableDash || isDashing) return;
|
||||||
|
|
||||||
|
StartCoroutine(nameof(DashCoroutine));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator DashCoroutine()
|
||||||
|
{
|
||||||
|
var dashDirection = previousMoveDirection;
|
||||||
|
isDashing = true;
|
||||||
|
enableDash = false;
|
||||||
|
combatAnimator.SetIsDash(true);
|
||||||
|
|
||||||
|
var elapsedTime = 0f;
|
||||||
|
while (!combatAnimator.animator.GetCurrentAnimatorStateInfo(0).IsName("DashState"))
|
||||||
|
{
|
||||||
|
elapsedTime += Time.deltaTime;
|
||||||
|
|
||||||
|
if (elapsedTime >= 1f)
|
||||||
|
{
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var animationLength = combatAnimator.animator.GetCurrentAnimatorStateInfo(0).length;
|
||||||
|
combatAnimator.animator.speed = animationLength / dashTime;
|
||||||
|
|
||||||
|
while (combatAnimator.animator.GetCurrentAnimatorStateInfo(0).IsName("DashState") &&
|
||||||
|
combatAnimator.animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1f)
|
||||||
|
{
|
||||||
|
//var finalVelocity = rb.position + dashDirection * (dashSpeed * Time.fixedDeltaTime);
|
||||||
|
//rb.MovePosition(finalVelocity);
|
||||||
|
|
||||||
|
var finalVelocity = dashDirection * dashSpeed;
|
||||||
|
rb.velocity = finalVelocity;
|
||||||
|
yield return new WaitForFixedUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
combatAnimator.animator.speed = 1f;
|
||||||
|
isDashing = false;
|
||||||
|
combatAnimator.SetIsDash(false);
|
||||||
|
|
||||||
|
StartCoroutine(Utils.CoolDown(dashCooldown, () => enableDash = true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,18 +15,12 @@ namespace BlueWaterProject
|
|||||||
movement.combatAnimator = animator;
|
movement.combatAnimator = animator;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnEnable()
|
private void Start()
|
||||||
{
|
{
|
||||||
input.OnMoveInputReceived += movement.InputMovementValue;
|
input.OnMoveInputReceived += movement.InputMovementValue;
|
||||||
input.OnDashInputReceived += movement.HandleDash;
|
input.OnDashInputReceived += movement.HandleDash;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDisable()
|
|
||||||
{
|
|
||||||
input.OnMoveInputReceived -= movement.InputMovementValue;
|
|
||||||
input.OnDashInputReceived -= movement.HandleDash;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Button("셋팅 초기화")]
|
[Button("셋팅 초기화")]
|
||||||
private void InitSetting()
|
private void InitSetting()
|
||||||
{
|
{
|
||||||
|
71
BlueWater/Assets/02.Scripts/InputKeyManager.cs
Normal file
71
BlueWater/Assets/02.Scripts/InputKeyManager.cs
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
|
|
||||||
|
// ReSharper disable once CheckNamespace
|
||||||
|
namespace BlueWaterProject
|
||||||
|
{
|
||||||
|
public class InputKeyManager : Singleton<InputKeyManager>
|
||||||
|
{
|
||||||
|
[SerializeField] private InputActionAsset actionAsset;
|
||||||
|
public Dictionary<string, List<string>> CombatKeyBindings { get; set; } = new();
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
LoadBindings();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadBindings()
|
||||||
|
{
|
||||||
|
foreach (var actionMap in actionAsset.actionMaps)
|
||||||
|
{
|
||||||
|
switch (actionMap.name)
|
||||||
|
{
|
||||||
|
case "Combat":
|
||||||
|
CombatKeyBindings = LoadActionMapBindings(actionMap);
|
||||||
|
break;
|
||||||
|
// 추가 액션 맵에 대해서도 비슷한 패턴으로 처리 가능
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dictionary<string, List<string>> LoadActionMapBindings(InputActionMap actionMap)
|
||||||
|
{
|
||||||
|
var bindings = new Dictionary<string, List<string>>();
|
||||||
|
|
||||||
|
foreach (var action in actionMap.actions)
|
||||||
|
{
|
||||||
|
var bindingList = new List<string>();
|
||||||
|
|
||||||
|
foreach (var binding in action.bindings)
|
||||||
|
{
|
||||||
|
var path = !string.IsNullOrEmpty(binding.overridePath) ? binding.overridePath : binding.path;
|
||||||
|
bindingList.Add(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bindingList.Count > 0)
|
||||||
|
{
|
||||||
|
bindings[action.name] = bindingList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return bindings;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Button("Dictionary 출력")]
|
||||||
|
private void PrintBindings()
|
||||||
|
{
|
||||||
|
PrintActionMapBindings("Combat", CombatKeyBindings);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PrintActionMapBindings(string actionMapName, Dictionary<string, List<string>> bindings)
|
||||||
|
{
|
||||||
|
Debug.Log($"Action Map: {actionMapName}");
|
||||||
|
foreach (var entry in bindings)
|
||||||
|
{
|
||||||
|
Debug.Log($"Action: {entry.Key}, Bindings: {string.Join(", ", entry.Value)}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
BlueWater/Assets/02.Scripts/InputKeyManager.cs.meta
Normal file
2
BlueWater/Assets/02.Scripts/InputKeyManager.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 56df21ea9c4a2754891388a52bc934ec
|
BIN
BlueWater/Assets/03.Images/Maps/land_combat.png
Normal file
BIN
BlueWater/Assets/03.Images/Maps/land_combat.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 MiB |
140
BlueWater/Assets/03.Images/Maps/land_combat.png.meta
Normal file
140
BlueWater/Assets/03.Images/Maps/land_combat.png.meta
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a2c0eba9ac9e3b348a20360173d139e1
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
143
BlueWater/Assets/03.Materials/land_combat.mat
Normal file
143
BlueWater/Assets/03.Materials/land_combat.mat
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: land_combat
|
||||||
|
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords:
|
||||||
|
- _ALPHATEST_ON
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2450
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: TransparentCutout
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: a2c0eba9ac9e3b348a20360173d139e1, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: a2c0eba9ac9e3b348a20360173d139e1, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaClip: 1
|
||||||
|
- _AlphaToMask: 1
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 0
|
||||||
|
- _BlendOp: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossinessSource: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _SampleGI: 0
|
||||||
|
- _Shininess: 0
|
||||||
|
- _Smoothness: 0.5
|
||||||
|
- _SmoothnessSource: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecSource: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &1271948002411579340
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
8
BlueWater/Assets/03.Materials/land_combat.mat.meta
Normal file
8
BlueWater/Assets/03.Materials/land_combat.mat.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bbf7dcc03516d1645a9ba2cef5d056c4
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user