diff --git a/Assets/InputConfig.cs b/Assets/InputConfig.cs
new file mode 100644
index 0000000..f8cab00
--- /dev/null
+++ b/Assets/InputConfig.cs
@@ -0,0 +1,743 @@
+//------------------------------------------------------------------------------
+//
+// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
+// version 1.14.2
+// from Assets/Settings/InputConfig.inputactions
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.InputSystem;
+using UnityEngine.InputSystem.Utilities;
+
+///
+/// Provides programmatic access to , , and instances defined in asset "Assets/Settings/InputConfig.inputactions".
+///
+///
+/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
+///
+///
+///
+/// using namespace UnityEngine;
+/// using UnityEngine.InputSystem;
+///
+/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
+/// public class Example : MonoBehaviour, MyActions.IPlayerActions
+/// {
+/// private MyActions_Actions m_Actions; // Source code representation of asset.
+/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
+///
+/// void Awake()
+/// {
+/// m_Actions = new MyActions_Actions(); // Create asset object.
+/// m_Player = m_Actions.Player; // Extract action map object.
+/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
+/// }
+///
+/// void OnDestroy()
+/// {
+/// m_Actions.Dispose(); // Destroy asset object.
+/// }
+///
+/// void OnEnable()
+/// {
+/// m_Player.Enable(); // Enable all actions within map.
+/// }
+///
+/// void OnDisable()
+/// {
+/// m_Player.Disable(); // Disable all actions within map.
+/// }
+///
+/// #region Interface implementation of MyActions.IPlayerActions
+///
+/// // Invoked when "Move" action is either started, performed or canceled.
+/// public void OnMove(InputAction.CallbackContext context)
+/// {
+/// Debug.Log($"OnMove: {context.ReadValue<Vector2>()}");
+/// }
+///
+/// // Invoked when "Attack" action is either started, performed or canceled.
+/// public void OnAttack(InputAction.CallbackContext context)
+/// {
+/// Debug.Log($"OnAttack: {context.ReadValue<float>()}");
+/// }
+///
+/// #endregion
+/// }
+///
+///
+public partial class @InputConfig: IInputActionCollection2, IDisposable
+{
+ ///
+ /// Provides access to the underlying asset instance.
+ ///
+ public InputActionAsset asset { get; }
+
+ ///
+ /// Constructs a new instance.
+ ///
+ public @InputConfig()
+ {
+ asset = InputActionAsset.FromJson(@"{
+ ""version"": 1,
+ ""name"": ""InputConfig"",
+ ""maps"": [
+ {
+ ""name"": ""Default"",
+ ""id"": ""0625d9c0-43b5-4745-824b-9fda8ba30fee"",
+ ""actions"": [
+ {
+ ""name"": ""Camera Horizontal"",
+ ""type"": ""Value"",
+ ""id"": ""c07137df-45a6-4c7f-a7a9-4a0308e41992"",
+ ""expectedControlType"": ""Axis"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""Camera Vertical"",
+ ""type"": ""Value"",
+ ""id"": ""65ba5ae5-0f08-4c90-85ef-ff497cb253b9"",
+ ""expectedControlType"": ""Axis"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ }
+ ],
+ ""bindings"": [
+ {
+ ""name"": """",
+ ""id"": ""9ec96503-2099-45d3-aaf2-cf1475edb473"",
+ ""path"": ""/leftStick/x"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Horizontal"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""1D Axis"",
+ ""id"": ""ed76a404-3e05-4d45-a021-05844bc10505"",
+ ""path"": ""1DAxis"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Horizontal"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""negative"",
+ ""id"": ""d655a04f-766a-439d-901d-794696b1ec89"",
+ ""path"": ""/a"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Horizontal"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""positive"",
+ ""id"": ""b0d947fc-bec7-46a7-9704-afc08a1e2886"",
+ ""path"": ""/d"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Horizontal"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""ede8a471-011b-444f-aea7-3079794926f1"",
+ ""path"": ""/leftStick/y"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Vertical"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""1D Axis"",
+ ""id"": ""e9f01183-aa1d-4ebf-9799-09aec02d3cf8"",
+ ""path"": ""1DAxis"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Vertical"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""negative"",
+ ""id"": ""908edb1a-3d82-4454-9d8e-2020aafd0714"",
+ ""path"": ""/s"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Vertical"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""positive"",
+ ""id"": ""34639f79-f10f-4950-96dc-b2a5ab43c4a7"",
+ ""path"": ""/w"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Camera Vertical"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ }
+ ]
+ },
+ {
+ ""name"": ""Marketing"",
+ ""id"": ""56f2eb0a-da06-47a3-9123-f39cfe90e6a1"",
+ ""actions"": [
+ {
+ ""name"": ""CameraFOV"",
+ ""type"": ""Value"",
+ ""id"": ""970c903e-bdb9-42ab-b5e5-0e5019ac0994"",
+ ""expectedControlType"": ""Axis"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""CameraUpDown"",
+ ""type"": ""Value"",
+ ""id"": ""ad16855f-155a-4c1c-9557-171868403461"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""CameraRotationX"",
+ ""type"": ""Value"",
+ ""id"": ""f47fc852-b65d-4ae3-8ee4-c4e948103760"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""CameraRotationY"",
+ ""type"": ""Value"",
+ ""id"": ""54a4cdd3-92f4-4562-bc26-932f1ecf3961"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ }
+ ],
+ ""bindings"": [
+ {
+ ""name"": ""1D Axis"",
+ ""id"": ""5b23e3c8-fa10-4d03-81ba-247c869d1e57"",
+ ""path"": ""1DAxis"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraFOV"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""negative"",
+ ""id"": ""ebd13f12-54ac-4f07-b24b-8794856068a5"",
+ ""path"": ""/o"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraFOV"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""positive"",
+ ""id"": ""6e9ad397-b3d9-4b84-ab9c-fc1621b99e13"",
+ ""path"": ""/p"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraFOV"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""c0c2a08a-f7cc-4b85-bfc0-d645d7b3f48f"",
+ ""path"": ""/dpad/x"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraFOV"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""8d66cc2f-effa-47c4-8d9c-f1f89c9fbebc"",
+ ""path"": ""/dpad/y"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraUpDown"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""1D Axis"",
+ ""id"": ""77e92290-0b17-41f7-a044-9109ddfb1149"",
+ ""path"": ""1DAxis"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraUpDown"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""negative"",
+ ""id"": ""1797a6a8-20e6-420a-9623-f49123d9c18a"",
+ ""path"": ""/k"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraUpDown"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""positive"",
+ ""id"": ""77a25d8f-be60-4403-84a5-b32f4199555b"",
+ ""path"": ""/l"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""CameraUpDown"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""1a68b1f2-634e-47f5-b88c-29be850e1a75"",
+ ""path"": ""/rightStick/x"",
+ ""interactions"": """",
+ ""processors"": ""Invert"",
+ ""groups"": """",
+ ""action"": ""CameraRotationX"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""222a9167-cf4e-473e-bcd8-173c4084fa81"",
+ ""path"": ""/rightStick/y"",
+ ""interactions"": """",
+ ""processors"": ""Invert"",
+ ""groups"": """",
+ ""action"": ""CameraRotationY"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ }
+ ]
+ }
+ ],
+ ""controlSchemes"": []
+}");
+ // Default
+ m_Default = asset.FindActionMap("Default", throwIfNotFound: true);
+ m_Default_CameraHorizontal = m_Default.FindAction("Camera Horizontal", throwIfNotFound: true);
+ m_Default_CameraVertical = m_Default.FindAction("Camera Vertical", throwIfNotFound: true);
+ // Marketing
+ m_Marketing = asset.FindActionMap("Marketing", throwIfNotFound: true);
+ m_Marketing_CameraFOV = m_Marketing.FindAction("CameraFOV", throwIfNotFound: true);
+ m_Marketing_CameraUpDown = m_Marketing.FindAction("CameraUpDown", throwIfNotFound: true);
+ m_Marketing_CameraRotationX = m_Marketing.FindAction("CameraRotationX", throwIfNotFound: true);
+ m_Marketing_CameraRotationY = m_Marketing.FindAction("CameraRotationY", throwIfNotFound: true);
+ }
+
+ ~@InputConfig()
+ {
+ UnityEngine.Debug.Assert(!m_Default.enabled, "This will cause a leak and performance issues, InputConfig.Default.Disable() has not been called.");
+ UnityEngine.Debug.Assert(!m_Marketing.enabled, "This will cause a leak and performance issues, InputConfig.Marketing.Disable() has not been called.");
+ }
+
+ ///
+ /// Destroys this asset and all associated instances.
+ ///
+ public void Dispose()
+ {
+ UnityEngine.Object.Destroy(asset);
+ }
+
+ ///
+ public InputBinding? bindingMask
+ {
+ get => asset.bindingMask;
+ set => asset.bindingMask = value;
+ }
+
+ ///
+ public ReadOnlyArray? devices
+ {
+ get => asset.devices;
+ set => asset.devices = value;
+ }
+
+ ///
+ public ReadOnlyArray controlSchemes => asset.controlSchemes;
+
+ ///
+ public bool Contains(InputAction action)
+ {
+ return asset.Contains(action);
+ }
+
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return asset.GetEnumerator();
+ }
+
+ ///
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ ///
+ public void Enable()
+ {
+ asset.Enable();
+ }
+
+ ///
+ public void Disable()
+ {
+ asset.Disable();
+ }
+
+ ///
+ public IEnumerable bindings => asset.bindings;
+
+ ///
+ public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
+ {
+ return asset.FindAction(actionNameOrId, throwIfNotFound);
+ }
+
+ ///
+ public int FindBinding(InputBinding bindingMask, out InputAction action)
+ {
+ return asset.FindBinding(bindingMask, out action);
+ }
+
+ // Default
+ private readonly InputActionMap m_Default;
+ private List m_DefaultActionsCallbackInterfaces = new List();
+ private readonly InputAction m_Default_CameraHorizontal;
+ private readonly InputAction m_Default_CameraVertical;
+ ///
+ /// Provides access to input actions defined in input action map "Default".
+ ///
+ public struct DefaultActions
+ {
+ private @InputConfig m_Wrapper;
+
+ ///
+ /// Construct a new instance of the input action map wrapper class.
+ ///
+ public DefaultActions(@InputConfig wrapper) { m_Wrapper = wrapper; }
+ ///
+ /// Provides access to the underlying input action "Default/CameraHorizontal".
+ ///
+ public InputAction @CameraHorizontal => m_Wrapper.m_Default_CameraHorizontal;
+ ///
+ /// Provides access to the underlying input action "Default/CameraVertical".
+ ///
+ public InputAction @CameraVertical => m_Wrapper.m_Default_CameraVertical;
+ ///
+ /// Provides access to the underlying input action map instance.
+ ///
+ public InputActionMap Get() { return m_Wrapper.m_Default; }
+ ///
+ public void Enable() { Get().Enable(); }
+ ///
+ public void Disable() { Get().Disable(); }
+ ///
+ public bool enabled => Get().enabled;
+ ///
+ /// Implicitly converts an to an instance.
+ ///
+ public static implicit operator InputActionMap(DefaultActions set) { return set.Get(); }
+ ///
+ /// Adds , and callbacks provided via on all input actions contained in this map.
+ ///
+ /// Callback instance.
+ ///
+ /// If is null or have already been added this method does nothing.
+ ///
+ ///
+ public void AddCallbacks(IDefaultActions instance)
+ {
+ if (instance == null || m_Wrapper.m_DefaultActionsCallbackInterfaces.Contains(instance)) return;
+ m_Wrapper.m_DefaultActionsCallbackInterfaces.Add(instance);
+ @CameraHorizontal.started += instance.OnCameraHorizontal;
+ @CameraHorizontal.performed += instance.OnCameraHorizontal;
+ @CameraHorizontal.canceled += instance.OnCameraHorizontal;
+ @CameraVertical.started += instance.OnCameraVertical;
+ @CameraVertical.performed += instance.OnCameraVertical;
+ @CameraVertical.canceled += instance.OnCameraVertical;
+ }
+
+ ///
+ /// Removes , and callbacks provided via on all input actions contained in this map.
+ ///
+ ///
+ /// Calling this method when have not previously been registered has no side-effects.
+ ///
+ ///
+ private void UnregisterCallbacks(IDefaultActions instance)
+ {
+ @CameraHorizontal.started -= instance.OnCameraHorizontal;
+ @CameraHorizontal.performed -= instance.OnCameraHorizontal;
+ @CameraHorizontal.canceled -= instance.OnCameraHorizontal;
+ @CameraVertical.started -= instance.OnCameraVertical;
+ @CameraVertical.performed -= instance.OnCameraVertical;
+ @CameraVertical.canceled -= instance.OnCameraVertical;
+ }
+
+ ///
+ /// Unregisters and unregisters all input action callbacks via .
+ ///
+ ///
+ public void RemoveCallbacks(IDefaultActions instance)
+ {
+ if (m_Wrapper.m_DefaultActionsCallbackInterfaces.Remove(instance))
+ UnregisterCallbacks(instance);
+ }
+
+ ///
+ /// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via .
+ ///
+ ///
+ /// If is null, calling this method will only unregister all existing callbacks but not register any new callbacks.
+ ///
+ ///
+ ///
+ ///
+ public void SetCallbacks(IDefaultActions instance)
+ {
+ foreach (var item in m_Wrapper.m_DefaultActionsCallbackInterfaces)
+ UnregisterCallbacks(item);
+ m_Wrapper.m_DefaultActionsCallbackInterfaces.Clear();
+ AddCallbacks(instance);
+ }
+ }
+ ///
+ /// Provides a new instance referencing this action map.
+ ///
+ public DefaultActions @Default => new DefaultActions(this);
+
+ // Marketing
+ private readonly InputActionMap m_Marketing;
+ private List m_MarketingActionsCallbackInterfaces = new List();
+ private readonly InputAction m_Marketing_CameraFOV;
+ private readonly InputAction m_Marketing_CameraUpDown;
+ private readonly InputAction m_Marketing_CameraRotationX;
+ private readonly InputAction m_Marketing_CameraRotationY;
+ ///
+ /// Provides access to input actions defined in input action map "Marketing".
+ ///
+ public struct MarketingActions
+ {
+ private @InputConfig m_Wrapper;
+
+ ///
+ /// Construct a new instance of the input action map wrapper class.
+ ///
+ public MarketingActions(@InputConfig wrapper) { m_Wrapper = wrapper; }
+ ///
+ /// Provides access to the underlying input action "Marketing/CameraFOV".
+ ///
+ public InputAction @CameraFOV => m_Wrapper.m_Marketing_CameraFOV;
+ ///
+ /// Provides access to the underlying input action "Marketing/CameraUpDown".
+ ///
+ public InputAction @CameraUpDown => m_Wrapper.m_Marketing_CameraUpDown;
+ ///
+ /// Provides access to the underlying input action "Marketing/CameraRotationX".
+ ///
+ public InputAction @CameraRotationX => m_Wrapper.m_Marketing_CameraRotationX;
+ ///
+ /// Provides access to the underlying input action "Marketing/CameraRotationY".
+ ///
+ public InputAction @CameraRotationY => m_Wrapper.m_Marketing_CameraRotationY;
+ ///
+ /// Provides access to the underlying input action map instance.
+ ///
+ public InputActionMap Get() { return m_Wrapper.m_Marketing; }
+ ///
+ public void Enable() { Get().Enable(); }
+ ///
+ public void Disable() { Get().Disable(); }
+ ///
+ public bool enabled => Get().enabled;
+ ///
+ /// Implicitly converts an to an instance.
+ ///
+ public static implicit operator InputActionMap(MarketingActions set) { return set.Get(); }
+ ///
+ /// Adds , and callbacks provided via on all input actions contained in this map.
+ ///
+ /// Callback instance.
+ ///
+ /// If is null or have already been added this method does nothing.
+ ///
+ ///
+ public void AddCallbacks(IMarketingActions instance)
+ {
+ if (instance == null || m_Wrapper.m_MarketingActionsCallbackInterfaces.Contains(instance)) return;
+ m_Wrapper.m_MarketingActionsCallbackInterfaces.Add(instance);
+ @CameraFOV.started += instance.OnCameraFOV;
+ @CameraFOV.performed += instance.OnCameraFOV;
+ @CameraFOV.canceled += instance.OnCameraFOV;
+ @CameraUpDown.started += instance.OnCameraUpDown;
+ @CameraUpDown.performed += instance.OnCameraUpDown;
+ @CameraUpDown.canceled += instance.OnCameraUpDown;
+ @CameraRotationX.started += instance.OnCameraRotationX;
+ @CameraRotationX.performed += instance.OnCameraRotationX;
+ @CameraRotationX.canceled += instance.OnCameraRotationX;
+ @CameraRotationY.started += instance.OnCameraRotationY;
+ @CameraRotationY.performed += instance.OnCameraRotationY;
+ @CameraRotationY.canceled += instance.OnCameraRotationY;
+ }
+
+ ///
+ /// Removes , and callbacks provided via on all input actions contained in this map.
+ ///
+ ///
+ /// Calling this method when have not previously been registered has no side-effects.
+ ///
+ ///
+ private void UnregisterCallbacks(IMarketingActions instance)
+ {
+ @CameraFOV.started -= instance.OnCameraFOV;
+ @CameraFOV.performed -= instance.OnCameraFOV;
+ @CameraFOV.canceled -= instance.OnCameraFOV;
+ @CameraUpDown.started -= instance.OnCameraUpDown;
+ @CameraUpDown.performed -= instance.OnCameraUpDown;
+ @CameraUpDown.canceled -= instance.OnCameraUpDown;
+ @CameraRotationX.started -= instance.OnCameraRotationX;
+ @CameraRotationX.performed -= instance.OnCameraRotationX;
+ @CameraRotationX.canceled -= instance.OnCameraRotationX;
+ @CameraRotationY.started -= instance.OnCameraRotationY;
+ @CameraRotationY.performed -= instance.OnCameraRotationY;
+ @CameraRotationY.canceled -= instance.OnCameraRotationY;
+ }
+
+ ///
+ /// Unregisters and unregisters all input action callbacks via .
+ ///
+ ///
+ public void RemoveCallbacks(IMarketingActions instance)
+ {
+ if (m_Wrapper.m_MarketingActionsCallbackInterfaces.Remove(instance))
+ UnregisterCallbacks(instance);
+ }
+
+ ///
+ /// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via .
+ ///
+ ///
+ /// If is null, calling this method will only unregister all existing callbacks but not register any new callbacks.
+ ///
+ ///
+ ///
+ ///
+ public void SetCallbacks(IMarketingActions instance)
+ {
+ foreach (var item in m_Wrapper.m_MarketingActionsCallbackInterfaces)
+ UnregisterCallbacks(item);
+ m_Wrapper.m_MarketingActionsCallbackInterfaces.Clear();
+ AddCallbacks(instance);
+ }
+ }
+ ///
+ /// Provides a new instance referencing this action map.
+ ///
+ public MarketingActions @Marketing => new MarketingActions(this);
+ ///
+ /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Default" which allows adding and removing callbacks.
+ ///
+ ///
+ ///
+ public interface IDefaultActions
+ {
+ ///
+ /// Method invoked when associated input action "Camera Horizontal" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCameraHorizontal(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Camera Vertical" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCameraVertical(InputAction.CallbackContext context);
+ }
+ ///
+ /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Marketing" which allows adding and removing callbacks.
+ ///
+ ///
+ ///
+ public interface IMarketingActions
+ {
+ ///
+ /// Method invoked when associated input action "CameraFOV" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCameraFOV(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "CameraUpDown" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCameraUpDown(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "CameraRotationX" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCameraRotationX(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "CameraRotationY" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCameraRotationY(InputAction.CallbackContext context);
+ }
+}
diff --git a/Assets/InputConfig.cs.meta b/Assets/InputConfig.cs.meta
new file mode 100644
index 0000000..68def66
--- /dev/null
+++ b/Assets/InputConfig.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 24f8ebac435e83c4c9a5f76647590d28
\ No newline at end of file
diff --git a/Assets/InputConfig.inputactions b/Assets/InputConfig.inputactions
new file mode 100644
index 0000000..a83bc0b
--- /dev/null
+++ b/Assets/InputConfig.inputactions
@@ -0,0 +1,275 @@
+{
+ "version": 1,
+ "name": "InputConfig",
+ "maps": [
+ {
+ "name": "Default",
+ "id": "0625d9c0-43b5-4745-824b-9fda8ba30fee",
+ "actions": [
+ {
+ "name": "Camera Horizontal",
+ "type": "Value",
+ "id": "c07137df-45a6-4c7f-a7a9-4a0308e41992",
+ "expectedControlType": "Axis",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "Camera Vertical",
+ "type": "Value",
+ "id": "65ba5ae5-0f08-4c90-85ef-ff497cb253b9",
+ "expectedControlType": "Axis",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ }
+ ],
+ "bindings": [
+ {
+ "name": "",
+ "id": "9ec96503-2099-45d3-aaf2-cf1475edb473",
+ "path": "/leftStick/x",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Horizontal",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "1D Axis",
+ "id": "ed76a404-3e05-4d45-a021-05844bc10505",
+ "path": "1DAxis",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Horizontal",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "negative",
+ "id": "d655a04f-766a-439d-901d-794696b1ec89",
+ "path": "/a",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Horizontal",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "positive",
+ "id": "b0d947fc-bec7-46a7-9704-afc08a1e2886",
+ "path": "/d",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Horizontal",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "ede8a471-011b-444f-aea7-3079794926f1",
+ "path": "/leftStick/y",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Vertical",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "1D Axis",
+ "id": "e9f01183-aa1d-4ebf-9799-09aec02d3cf8",
+ "path": "1DAxis",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Vertical",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "negative",
+ "id": "908edb1a-3d82-4454-9d8e-2020aafd0714",
+ "path": "/s",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Vertical",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "positive",
+ "id": "34639f79-f10f-4950-96dc-b2a5ab43c4a7",
+ "path": "/w",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Camera Vertical",
+ "isComposite": false,
+ "isPartOfComposite": true
+ }
+ ]
+ },
+ {
+ "name": "Marketing",
+ "id": "56f2eb0a-da06-47a3-9123-f39cfe90e6a1",
+ "actions": [
+ {
+ "name": "CameraFOV",
+ "type": "Value",
+ "id": "970c903e-bdb9-42ab-b5e5-0e5019ac0994",
+ "expectedControlType": "Axis",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "CameraUpDown",
+ "type": "Value",
+ "id": "ad16855f-155a-4c1c-9557-171868403461",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "CameraRotationX",
+ "type": "Value",
+ "id": "f47fc852-b65d-4ae3-8ee4-c4e948103760",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "CameraRotationY",
+ "type": "Value",
+ "id": "54a4cdd3-92f4-4562-bc26-932f1ecf3961",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ }
+ ],
+ "bindings": [
+ {
+ "name": "1D Axis",
+ "id": "5b23e3c8-fa10-4d03-81ba-247c869d1e57",
+ "path": "1DAxis",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraFOV",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "negative",
+ "id": "ebd13f12-54ac-4f07-b24b-8794856068a5",
+ "path": "/o",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraFOV",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "positive",
+ "id": "6e9ad397-b3d9-4b84-ab9c-fc1621b99e13",
+ "path": "/p",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraFOV",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "c0c2a08a-f7cc-4b85-bfc0-d645d7b3f48f",
+ "path": "/dpad/x",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraFOV",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "8d66cc2f-effa-47c4-8d9c-f1f89c9fbebc",
+ "path": "/dpad/y",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraUpDown",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "1D Axis",
+ "id": "77e92290-0b17-41f7-a044-9109ddfb1149",
+ "path": "1DAxis",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraUpDown",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "negative",
+ "id": "1797a6a8-20e6-420a-9623-f49123d9c18a",
+ "path": "/k",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraUpDown",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "positive",
+ "id": "77a25d8f-be60-4403-84a5-b32f4199555b",
+ "path": "/l",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "CameraUpDown",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "1a68b1f2-634e-47f5-b88c-29be850e1a75",
+ "path": "/rightStick/x",
+ "interactions": "",
+ "processors": "Invert",
+ "groups": "",
+ "action": "CameraRotationX",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "222a9167-cf4e-473e-bcd8-173c4084fa81",
+ "path": "/rightStick/y",
+ "interactions": "",
+ "processors": "Invert",
+ "groups": "",
+ "action": "CameraRotationY",
+ "isComposite": false,
+ "isPartOfComposite": false
+ }
+ ]
+ }
+ ],
+ "controlSchemes": []
+}
\ No newline at end of file
diff --git a/Assets/InputConfig.inputactions.meta b/Assets/InputConfig.inputactions.meta
new file mode 100644
index 0000000..bbc2a9f
--- /dev/null
+++ b/Assets/InputConfig.inputactions.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0c7b9246b90bb9c4ab7519d0cb909720
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/FirstPersonController.cs b/Assets/Scripts/FirstPersonController.cs
index 8822467..d6a0f32 100644
--- a/Assets/Scripts/FirstPersonController.cs
+++ b/Assets/Scripts/FirstPersonController.cs
@@ -1,3 +1,4 @@
+using Unity.VisualScripting;
using UnityEngine;
public class FirstPersonController : MonoBehaviour
@@ -45,7 +46,8 @@ public class FirstPersonController : MonoBehaviour
void Update()
{
- if (controller == null) return;
+ if( controller == null )
+ return;
isGrounded = controller.isGrounded;
diff --git a/Assets/Scripts/Game.meta b/Assets/Scripts/Game.meta
new file mode 100644
index 0000000..d9ace26
--- /dev/null
+++ b/Assets/Scripts/Game.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 95d67a3c950d0c04bbf9b00db7424ff8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Game/Defines.cs b/Assets/Scripts/Game/Defines.cs
new file mode 100644
index 0000000..631d415
--- /dev/null
+++ b/Assets/Scripts/Game/Defines.cs
@@ -0,0 +1,25 @@
+using UnityEngine;
+
+public class Defines
+{
+ public class Input
+ {
+ public const int kLeftMouseButton = 0;
+ public const int kRightMouseButton = 1;
+ public const int kMiddleMouseButton = 2;
+
+ public const float kShortClickDelay = 0.25f;
+ public const float kShortClickCancelMinMouseMovement = 10.0f;
+
+ public const float kHeldClickDelay = 0.3f;
+
+ public const KeyCode rotateLeftKey = KeyCode.R;
+ public const KeyCode rotateRightKey = KeyCode.T;
+ public const KeyCode kCancelKeyCode = KeyCode.Escape;
+
+ public const CursorLockMode kDefaultCursorLockMode = CursorLockMode.Confined;
+
+ public const float kMouseRotationDistance = 100.0f;
+ public const float kDoubleClickThreshold = 0.5f;
+ }
+}
diff --git a/Assets/Scripts/Game/Defines.cs.meta b/Assets/Scripts/Game/Defines.cs.meta
new file mode 100644
index 0000000..a4711ad
--- /dev/null
+++ b/Assets/Scripts/Game/Defines.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 87ada8c9eefa71f47aefa0442b6e990f
\ No newline at end of file
diff --git a/Assets/Scripts/Game/Input.meta b/Assets/Scripts/Game/Input.meta
new file mode 100644
index 0000000..7c8fa45
--- /dev/null
+++ b/Assets/Scripts/Game/Input.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d14cfa81116a2f342bb961c77495567a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Game/Input/InputData.cs b/Assets/Scripts/Game/Input/InputData.cs
new file mode 100644
index 0000000..7cc945c
--- /dev/null
+++ b/Assets/Scripts/Game/Input/InputData.cs
@@ -0,0 +1,474 @@
+using UnityEngine;
+using System.Collections.Generic;
+using UnityEngine.InputSystem;
+
+public static class InputData
+{
+ public const float kDoubleClickThreshold = 0.5f;
+
+ public static Vector2 mousePosition;
+ public static Vector2 mouseDelta;
+ public static float smoothScrollDelta;
+ public static float scrollDelta;
+
+ public static bool mouseOverUI
+ {
+ get; private set;
+ }
+
+ public static MouseButton leftMouseButton;
+ public static MouseButton middleMouseButton;
+ public static MouseButton rightMouseButton;
+
+ public static Button up;
+ public static Button down;
+ public static Button debugButton;
+ public static Button agentDebugButton;
+
+ public static Button rotateLeft;
+ public static Button rotateRight;
+
+ public static Button cancel;
+
+ public static Button floorUp;
+ public static Button floorDown;
+
+ public static Button cameraLeft;
+ public static Button cameraRight;
+ public static Button cameraUp;
+ public static Button cameraDown;
+ public static Button cameraRotateLeft;
+ public static Button cameraRotateRight;
+ public static Button cameraSpeedBoost;
+
+ public static Button pauseTime;
+
+ public static Button pauseGame;
+
+ public static Axis cameraHorizontal;
+ public static Axis cameraVertical;
+
+#if MARKETING_BUILD
+
+ public static Axis fovAxis;
+
+ public static Axis cameraUpDownAxis;
+ public static Axis marketingCameraX;
+ public static Axis marketingCameraY;
+
+#endif
+
+ private static List