diff --git a/Assets/InputSystem_Actions.cs b/Assets/InputSystem_Actions.cs
new file mode 100644
index 0000000000..041ae9533b
--- /dev/null
+++ b/Assets/InputSystem_Actions.cs
@@ -0,0 +1,1838 @@
+//------------------------------------------------------------------------------
+//
+// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
+// version 1.14.2
+// from Assets/InputSystem_Actions.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/InputSystem_Actions.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 @InputSystem_Actions: IInputActionCollection2, IDisposable
+{
+ ///
+ /// Provides access to the underlying asset instance.
+ ///
+ public InputActionAsset asset { get; }
+
+ ///
+ /// Constructs a new instance.
+ ///
+ public @InputSystem_Actions()
+ {
+ asset = InputActionAsset.FromJson(@"{
+ ""version"": 1,
+ ""name"": ""InputSystem_Actions"",
+ ""maps"": [
+ {
+ ""name"": ""Player"",
+ ""id"": ""df70fa95-8a34-4494-b137-73ab6b9c7d37"",
+ ""actions"": [
+ {
+ ""name"": ""Move"",
+ ""type"": ""Value"",
+ ""id"": ""351f2ccd-1f9f-44bf-9bec-d62ac5c5f408"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""Look"",
+ ""type"": ""Value"",
+ ""id"": ""6b444451-8a00-4d00-a97e-f47457f736a8"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""Attack"",
+ ""type"": ""Button"",
+ ""id"": ""6c2ab1b8-8984-453a-af3d-a3c78ae1679a"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Interact"",
+ ""type"": ""Button"",
+ ""id"": ""852140f2-7766-474d-8707-702459ba45f3"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": ""Hold"",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Crouch"",
+ ""type"": ""Button"",
+ ""id"": ""27c5f898-bc57-4ee1-8800-db469aca5fe3"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Jump"",
+ ""type"": ""Button"",
+ ""id"": ""f1ba0d36-48eb-4cd5-b651-1c94a6531f70"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Previous"",
+ ""type"": ""Button"",
+ ""id"": ""2776c80d-3c14-4091-8c56-d04ced07a2b0"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Next"",
+ ""type"": ""Button"",
+ ""id"": ""b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Sprint"",
+ ""type"": ""Button"",
+ ""id"": ""641cd816-40e6-41b4-8c3d-04687c349290"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ }
+ ],
+ ""bindings"": [
+ {
+ ""name"": """",
+ ""id"": ""978bfe49-cc26-4a3d-ab7b-7d7a29327403"",
+ ""path"": ""/leftStick"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""WASD"",
+ ""id"": ""00ca640b-d935-4593-8157-c05846ea39b3"",
+ ""path"": ""Dpad"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Move"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""e2062cb9-1b15-46a2-838c-2f8d72a0bdd9"",
+ ""path"": ""/w"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""8180e8bd-4097-4f4e-ab88-4523101a6ce9"",
+ ""path"": ""/upArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""320bffee-a40b-4347-ac70-c210eb8bc73a"",
+ ""path"": ""/s"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""1c5327b5-f71c-4f60-99c7-4e737386f1d1"",
+ ""path"": ""/downArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""d2581a9b-1d11-4566-b27d-b92aff5fabbc"",
+ ""path"": ""/a"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""2e46982e-44cc-431b-9f0b-c11910bf467a"",
+ ""path"": ""/leftArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""fcfe95b8-67b9-4526-84b5-5d0bc98d6400"",
+ ""path"": ""/d"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""77bff152-3580-4b21-b6de-dcd0c7e41164"",
+ ""path"": ""/rightArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""1635d3fe-58b6-4ba9-a4e2-f4b964f6b5c8"",
+ ""path"": ""/{Primary2DAxis}"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""3ea4d645-4504-4529-b061-ab81934c3752"",
+ ""path"": ""/stick"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""c1f7a91b-d0fd-4a62-997e-7fb9b69bf235"",
+ ""path"": ""/rightStick"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Look"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""8c8e490b-c610-4785-884f-f04217b23ca4"",
+ ""path"": ""/delta"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse;Touch"",
+ ""action"": ""Look"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""3e5f5442-8668-4b27-a940-df99bad7e831"",
+ ""path"": ""/{Hatswitch}"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Look"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""143bb1cd-cc10-4eca-a2f0-a3664166fe91"",
+ ""path"": ""/buttonWest"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Attack"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""05f6913d-c316-48b2-a6bb-e225f14c7960"",
+ ""path"": ""/leftButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Attack"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""886e731e-7071-4ae4-95c0-e61739dad6fd"",
+ ""path"": ""/primaryTouch/tap"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Touch"",
+ ""action"": ""Attack"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""ee3d0cd2-254e-47a7-a8cb-bc94d9658c54"",
+ ""path"": ""/trigger"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Attack"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""8255d333-5683-4943-a58a-ccb207ff1dce"",
+ ""path"": ""/{PrimaryAction}"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""Attack"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7"",
+ ""path"": ""/enter"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Attack"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""cbac6039-9c09-46a1-b5f2-4e5124ccb5ed"",
+ ""path"": ""/2"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Next"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""e15ca19d-e649-4852-97d5-7fe8ccc44e94"",
+ ""path"": ""/dpad/right"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Gamepad"",
+ ""action"": ""Next"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""f2e9ba44-c423-42a7-ad56-f20975884794"",
+ ""path"": ""/leftShift"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Sprint"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""8cbb2f4b-a784-49cc-8d5e-c010b8c7f4e6"",
+ ""path"": ""/leftStickPress"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Gamepad"",
+ ""action"": ""Sprint"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""d8bf24bf-3f2f-4160-a97c-38ec1eb520ba"",
+ ""path"": ""/trigger"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""Sprint"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""eb40bb66-4559-4dfa-9a2f-820438abb426"",
+ ""path"": ""/space"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Jump"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""daba33a1-ad0c-4742-a909-43ad1cdfbeb6"",
+ ""path"": ""/buttonSouth"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Gamepad"",
+ ""action"": ""Jump"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""603f3daf-40bd-4854-8724-93e8017f59e3"",
+ ""path"": ""/secondaryButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""Jump"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""1534dc16-a6aa-499d-9c3a-22b47347b52a"",
+ ""path"": ""/1"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Previous"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""25060bbd-a3a6-476e-8fba-45ae484aad05"",
+ ""path"": ""/dpad/left"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Gamepad"",
+ ""action"": ""Previous"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""1c04ea5f-b012-41d1-a6f7-02e963b52893"",
+ ""path"": ""/e"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Interact"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""b3f66d0b-7751-423f-908b-a11c5bd95930"",
+ ""path"": ""/buttonNorth"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Gamepad"",
+ ""action"": ""Interact"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""4f4649ac-64a8-4a73-af11-b3faef356a4d"",
+ ""path"": ""/buttonEast"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Gamepad"",
+ ""action"": ""Crouch"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""36e52cba-0905-478e-a818-f4bfcb9f3b9a"",
+ ""path"": ""/c"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Crouch"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ }
+ ]
+ },
+ {
+ ""name"": ""UI"",
+ ""id"": ""272f6d14-89ba-496f-b7ff-215263d3219f"",
+ ""actions"": [
+ {
+ ""name"": ""Navigate"",
+ ""type"": ""PassThrough"",
+ ""id"": ""c95b2375-e6d9-4b88-9c4c-c5e76515df4b"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Submit"",
+ ""type"": ""Button"",
+ ""id"": ""7607c7b6-cd76-4816-beef-bd0341cfe950"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Cancel"",
+ ""type"": ""Button"",
+ ""id"": ""15cef263-9014-4fd5-94d9-4e4a6234a6ef"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Point"",
+ ""type"": ""PassThrough"",
+ ""id"": ""32b35790-4ed0-4e9a-aa41-69ac6d629449"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""Click"",
+ ""type"": ""PassThrough"",
+ ""id"": ""3c7022bf-7922-4f7c-a998-c437916075ad"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""RightClick"",
+ ""type"": ""PassThrough"",
+ ""id"": ""44b200b1-1557-4083-816c-b22cbdf77ddf"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""MiddleClick"",
+ ""type"": ""PassThrough"",
+ ""id"": ""dad70c86-b58c-4b17-88ad-f5e53adf419e"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""ScrollWheel"",
+ ""type"": ""PassThrough"",
+ ""id"": ""0489e84a-4833-4c40-bfae-cea84b696689"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""TrackedDevicePosition"",
+ ""type"": ""PassThrough"",
+ ""id"": ""24908448-c609-4bc3-a128-ea258674378a"",
+ ""expectedControlType"": ""Vector3"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""TrackedDeviceOrientation"",
+ ""type"": ""PassThrough"",
+ ""id"": ""9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be"",
+ ""expectedControlType"": ""Quaternion"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ }
+ ],
+ ""bindings"": [
+ {
+ ""name"": ""Gamepad"",
+ ""id"": ""809f371f-c5e2-4e7a-83a1-d867598f40dd"",
+ ""path"": ""2DVector"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Navigate"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf"",
+ ""path"": ""/leftStick/up"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""9144cbe6-05e1-4687-a6d7-24f99d23dd81"",
+ ""path"": ""/rightStick/up"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""2db08d65-c5fb-421b-983f-c71163608d67"",
+ ""path"": ""/leftStick/down"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""58748904-2ea9-4a80-8579-b500e6a76df8"",
+ ""path"": ""/rightStick/down"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""8ba04515-75aa-45de-966d-393d9bbd1c14"",
+ ""path"": ""/leftStick/left"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""712e721c-bdfb-4b23-a86c-a0d9fcfea921"",
+ ""path"": ""/rightStick/left"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""fcd248ae-a788-4676-a12e-f4d81205600b"",
+ ""path"": ""/leftStick/right"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""1f04d9bc-c50b-41a1-bfcc-afb75475ec20"",
+ ""path"": ""/rightStick/right"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""fb8277d4-c5cd-4663-9dc7-ee3f0b506d90"",
+ ""path"": ""/dpad"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Gamepad"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""Joystick"",
+ ""id"": ""e25d9774-381c-4a61-b47c-7b6b299ad9f9"",
+ ""path"": ""2DVector"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Navigate"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""3db53b26-6601-41be-9887-63ac74e79d19"",
+ ""path"": ""/stick/up"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""0cb3e13e-3d90-4178-8ae6-d9c5501d653f"",
+ ""path"": ""/stick/down"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""0392d399-f6dd-4c82-8062-c1e9c0d34835"",
+ ""path"": ""/stick/left"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""942a66d9-d42f-43d6-8d70-ecb4ba5363bc"",
+ ""path"": ""/stick/right"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Joystick"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""Keyboard"",
+ ""id"": ""ff527021-f211-4c02-933e-5976594c46ed"",
+ ""path"": ""2DVector"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Navigate"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""563fbfdd-0f09-408d-aa75-8642c4f08ef0"",
+ ""path"": ""/w"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""eb480147-c587-4a33-85ed-eb0ab9942c43"",
+ ""path"": ""/upArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""2bf42165-60bc-42ca-8072-8c13ab40239b"",
+ ""path"": ""/s"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""85d264ad-e0a0-4565-b7ff-1a37edde51ac"",
+ ""path"": ""/downArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""74214943-c580-44e4-98eb-ad7eebe17902"",
+ ""path"": ""/a"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""cea9b045-a000-445b-95b8-0c171af70a3b"",
+ ""path"": ""/leftArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""8607c725-d935-4808-84b1-8354e29bab63"",
+ ""path"": ""/d"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""4cda81dc-9edd-4e03-9d7c-a71a14345d0b"",
+ ""path"": ""/rightArrow"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Navigate"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc"",
+ ""path"": ""*/{Submit}"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse;Gamepad;Touch;Joystick;XR"",
+ ""action"": ""Submit"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""82627dcc-3b13-4ba9-841d-e4b746d6553e"",
+ ""path"": ""*/{Cancel}"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse;Gamepad;Touch;Joystick;XR"",
+ ""action"": ""Cancel"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""c52c8e0b-8179-41d3-b8a1-d149033bbe86"",
+ ""path"": ""/position"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Point"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""e1394cbc-336e-44ce-9ea8-6007ed6193f7"",
+ ""path"": ""/position"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""Point"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""5693e57a-238a-46ed-b5ae-e64e6e574302"",
+ ""path"": ""/touch*/position"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Touch"",
+ ""action"": ""Point"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""4faf7dc9-b979-4210-aa8c-e808e1ef89f5"",
+ ""path"": ""/leftButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Click"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""8d66d5ba-88d7-48e6-b1cd-198bbfef7ace"",
+ ""path"": ""/tip"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Click"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""47c2a644-3ebc-4dae-a106-589b7ca75b59"",
+ ""path"": ""/touch*/press"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Touch"",
+ ""action"": ""Click"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""bb9e6b34-44bf-4381-ac63-5aa15d19f677"",
+ ""path"": ""/trigger"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""Click"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""38c99815-14ea-4617-8627-164d27641299"",
+ ""path"": ""/scroll"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""ScrollWheel"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""4c191405-5738-4d4b-a523-c6a301dbf754"",
+ ""path"": ""/rightButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""RightClick"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""24066f69-da47-44f3-a07e-0015fb02eb2e"",
+ ""path"": ""/middleButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard&Mouse"",
+ ""action"": ""MiddleClick"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77"",
+ ""path"": ""/devicePosition"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""TrackedDevicePosition"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""23e01e3a-f935-4948-8d8b-9bcac77714fb"",
+ ""path"": ""/deviceRotation"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""XR"",
+ ""action"": ""TrackedDeviceOrientation"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ }
+ ]
+ }
+ ],
+ ""controlSchemes"": [
+ {
+ ""name"": ""Keyboard&Mouse"",
+ ""bindingGroup"": ""Keyboard&Mouse"",
+ ""devices"": [
+ {
+ ""devicePath"": """",
+ ""isOptional"": false,
+ ""isOR"": false
+ },
+ {
+ ""devicePath"": """",
+ ""isOptional"": false,
+ ""isOR"": false
+ }
+ ]
+ },
+ {
+ ""name"": ""Gamepad"",
+ ""bindingGroup"": ""Gamepad"",
+ ""devices"": [
+ {
+ ""devicePath"": """",
+ ""isOptional"": false,
+ ""isOR"": false
+ }
+ ]
+ },
+ {
+ ""name"": ""Touch"",
+ ""bindingGroup"": ""Touch"",
+ ""devices"": [
+ {
+ ""devicePath"": """",
+ ""isOptional"": false,
+ ""isOR"": false
+ }
+ ]
+ },
+ {
+ ""name"": ""Joystick"",
+ ""bindingGroup"": ""Joystick"",
+ ""devices"": [
+ {
+ ""devicePath"": """",
+ ""isOptional"": false,
+ ""isOR"": false
+ }
+ ]
+ },
+ {
+ ""name"": ""XR"",
+ ""bindingGroup"": ""XR"",
+ ""devices"": [
+ {
+ ""devicePath"": """",
+ ""isOptional"": false,
+ ""isOR"": false
+ }
+ ]
+ }
+ ]
+}");
+ // Player
+ m_Player = asset.FindActionMap("Player", throwIfNotFound: true);
+ m_Player_Move = m_Player.FindAction("Move", throwIfNotFound: true);
+ m_Player_Look = m_Player.FindAction("Look", throwIfNotFound: true);
+ m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
+ m_Player_Interact = m_Player.FindAction("Interact", throwIfNotFound: true);
+ m_Player_Crouch = m_Player.FindAction("Crouch", throwIfNotFound: true);
+ m_Player_Jump = m_Player.FindAction("Jump", throwIfNotFound: true);
+ m_Player_Previous = m_Player.FindAction("Previous", throwIfNotFound: true);
+ m_Player_Next = m_Player.FindAction("Next", throwIfNotFound: true);
+ m_Player_Sprint = m_Player.FindAction("Sprint", throwIfNotFound: true);
+ // UI
+ m_UI = asset.FindActionMap("UI", throwIfNotFound: true);
+ m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true);
+ m_UI_Submit = m_UI.FindAction("Submit", throwIfNotFound: true);
+ m_UI_Cancel = m_UI.FindAction("Cancel", throwIfNotFound: true);
+ m_UI_Point = m_UI.FindAction("Point", throwIfNotFound: true);
+ m_UI_Click = m_UI.FindAction("Click", throwIfNotFound: true);
+ m_UI_RightClick = m_UI.FindAction("RightClick", throwIfNotFound: true);
+ m_UI_MiddleClick = m_UI.FindAction("MiddleClick", throwIfNotFound: true);
+ m_UI_ScrollWheel = m_UI.FindAction("ScrollWheel", throwIfNotFound: true);
+ m_UI_TrackedDevicePosition = m_UI.FindAction("TrackedDevicePosition", throwIfNotFound: true);
+ m_UI_TrackedDeviceOrientation = m_UI.FindAction("TrackedDeviceOrientation", throwIfNotFound: true);
+ }
+
+ ~@InputSystem_Actions()
+ {
+ UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, InputSystem_Actions.Player.Disable() has not been called.");
+ UnityEngine.Debug.Assert(!m_UI.enabled, "This will cause a leak and performance issues, InputSystem_Actions.UI.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);
+ }
+
+ // Player
+ private readonly InputActionMap m_Player;
+ private List m_PlayerActionsCallbackInterfaces = new List();
+ private readonly InputAction m_Player_Move;
+ private readonly InputAction m_Player_Look;
+ private readonly InputAction m_Player_Attack;
+ private readonly InputAction m_Player_Interact;
+ private readonly InputAction m_Player_Crouch;
+ private readonly InputAction m_Player_Jump;
+ private readonly InputAction m_Player_Previous;
+ private readonly InputAction m_Player_Next;
+ private readonly InputAction m_Player_Sprint;
+ ///
+ /// Provides access to input actions defined in input action map "Player".
+ ///
+ public struct PlayerActions
+ {
+ private @InputSystem_Actions m_Wrapper;
+
+ ///
+ /// Construct a new instance of the input action map wrapper class.
+ ///
+ public PlayerActions(@InputSystem_Actions wrapper) { m_Wrapper = wrapper; }
+ ///
+ /// Provides access to the underlying input action "Player/Move".
+ ///
+ public InputAction @Move => m_Wrapper.m_Player_Move;
+ ///
+ /// Provides access to the underlying input action "Player/Look".
+ ///
+ public InputAction @Look => m_Wrapper.m_Player_Look;
+ ///
+ /// Provides access to the underlying input action "Player/Attack".
+ ///
+ public InputAction @Attack => m_Wrapper.m_Player_Attack;
+ ///
+ /// Provides access to the underlying input action "Player/Interact".
+ ///
+ public InputAction @Interact => m_Wrapper.m_Player_Interact;
+ ///
+ /// Provides access to the underlying input action "Player/Crouch".
+ ///
+ public InputAction @Crouch => m_Wrapper.m_Player_Crouch;
+ ///
+ /// Provides access to the underlying input action "Player/Jump".
+ ///
+ public InputAction @Jump => m_Wrapper.m_Player_Jump;
+ ///
+ /// Provides access to the underlying input action "Player/Previous".
+ ///
+ public InputAction @Previous => m_Wrapper.m_Player_Previous;
+ ///
+ /// Provides access to the underlying input action "Player/Next".
+ ///
+ public InputAction @Next => m_Wrapper.m_Player_Next;
+ ///
+ /// Provides access to the underlying input action "Player/Sprint".
+ ///
+ public InputAction @Sprint => m_Wrapper.m_Player_Sprint;
+ ///
+ /// Provides access to the underlying input action map instance.
+ ///
+ public InputActionMap Get() { return m_Wrapper.m_Player; }
+ ///
+ 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(PlayerActions 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(IPlayerActions instance)
+ {
+ if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return;
+ m_Wrapper.m_PlayerActionsCallbackInterfaces.Add(instance);
+ @Move.started += instance.OnMove;
+ @Move.performed += instance.OnMove;
+ @Move.canceled += instance.OnMove;
+ @Look.started += instance.OnLook;
+ @Look.performed += instance.OnLook;
+ @Look.canceled += instance.OnLook;
+ @Attack.started += instance.OnAttack;
+ @Attack.performed += instance.OnAttack;
+ @Attack.canceled += instance.OnAttack;
+ @Interact.started += instance.OnInteract;
+ @Interact.performed += instance.OnInteract;
+ @Interact.canceled += instance.OnInteract;
+ @Crouch.started += instance.OnCrouch;
+ @Crouch.performed += instance.OnCrouch;
+ @Crouch.canceled += instance.OnCrouch;
+ @Jump.started += instance.OnJump;
+ @Jump.performed += instance.OnJump;
+ @Jump.canceled += instance.OnJump;
+ @Previous.started += instance.OnPrevious;
+ @Previous.performed += instance.OnPrevious;
+ @Previous.canceled += instance.OnPrevious;
+ @Next.started += instance.OnNext;
+ @Next.performed += instance.OnNext;
+ @Next.canceled += instance.OnNext;
+ @Sprint.started += instance.OnSprint;
+ @Sprint.performed += instance.OnSprint;
+ @Sprint.canceled += instance.OnSprint;
+ }
+
+ ///
+ /// 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(IPlayerActions instance)
+ {
+ @Move.started -= instance.OnMove;
+ @Move.performed -= instance.OnMove;
+ @Move.canceled -= instance.OnMove;
+ @Look.started -= instance.OnLook;
+ @Look.performed -= instance.OnLook;
+ @Look.canceled -= instance.OnLook;
+ @Attack.started -= instance.OnAttack;
+ @Attack.performed -= instance.OnAttack;
+ @Attack.canceled -= instance.OnAttack;
+ @Interact.started -= instance.OnInteract;
+ @Interact.performed -= instance.OnInteract;
+ @Interact.canceled -= instance.OnInteract;
+ @Crouch.started -= instance.OnCrouch;
+ @Crouch.performed -= instance.OnCrouch;
+ @Crouch.canceled -= instance.OnCrouch;
+ @Jump.started -= instance.OnJump;
+ @Jump.performed -= instance.OnJump;
+ @Jump.canceled -= instance.OnJump;
+ @Previous.started -= instance.OnPrevious;
+ @Previous.performed -= instance.OnPrevious;
+ @Previous.canceled -= instance.OnPrevious;
+ @Next.started -= instance.OnNext;
+ @Next.performed -= instance.OnNext;
+ @Next.canceled -= instance.OnNext;
+ @Sprint.started -= instance.OnSprint;
+ @Sprint.performed -= instance.OnSprint;
+ @Sprint.canceled -= instance.OnSprint;
+ }
+
+ ///
+ /// Unregisters and unregisters all input action callbacks via .
+ ///
+ ///
+ public void RemoveCallbacks(IPlayerActions instance)
+ {
+ if (m_Wrapper.m_PlayerActionsCallbackInterfaces.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(IPlayerActions instance)
+ {
+ foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces)
+ UnregisterCallbacks(item);
+ m_Wrapper.m_PlayerActionsCallbackInterfaces.Clear();
+ AddCallbacks(instance);
+ }
+ }
+ ///
+ /// Provides a new instance referencing this action map.
+ ///
+ public PlayerActions @Player => new PlayerActions(this);
+
+ // UI
+ private readonly InputActionMap m_UI;
+ private List m_UIActionsCallbackInterfaces = new List();
+ private readonly InputAction m_UI_Navigate;
+ private readonly InputAction m_UI_Submit;
+ private readonly InputAction m_UI_Cancel;
+ private readonly InputAction m_UI_Point;
+ private readonly InputAction m_UI_Click;
+ private readonly InputAction m_UI_RightClick;
+ private readonly InputAction m_UI_MiddleClick;
+ private readonly InputAction m_UI_ScrollWheel;
+ private readonly InputAction m_UI_TrackedDevicePosition;
+ private readonly InputAction m_UI_TrackedDeviceOrientation;
+ ///
+ /// Provides access to input actions defined in input action map "UI".
+ ///
+ public struct UIActions
+ {
+ private @InputSystem_Actions m_Wrapper;
+
+ ///
+ /// Construct a new instance of the input action map wrapper class.
+ ///
+ public UIActions(@InputSystem_Actions wrapper) { m_Wrapper = wrapper; }
+ ///
+ /// Provides access to the underlying input action "UI/Navigate".
+ ///
+ public InputAction @Navigate => m_Wrapper.m_UI_Navigate;
+ ///
+ /// Provides access to the underlying input action "UI/Submit".
+ ///
+ public InputAction @Submit => m_Wrapper.m_UI_Submit;
+ ///
+ /// Provides access to the underlying input action "UI/Cancel".
+ ///
+ public InputAction @Cancel => m_Wrapper.m_UI_Cancel;
+ ///
+ /// Provides access to the underlying input action "UI/Point".
+ ///
+ public InputAction @Point => m_Wrapper.m_UI_Point;
+ ///
+ /// Provides access to the underlying input action "UI/Click".
+ ///
+ public InputAction @Click => m_Wrapper.m_UI_Click;
+ ///
+ /// Provides access to the underlying input action "UI/RightClick".
+ ///
+ public InputAction @RightClick => m_Wrapper.m_UI_RightClick;
+ ///
+ /// Provides access to the underlying input action "UI/MiddleClick".
+ ///
+ public InputAction @MiddleClick => m_Wrapper.m_UI_MiddleClick;
+ ///
+ /// Provides access to the underlying input action "UI/ScrollWheel".
+ ///
+ public InputAction @ScrollWheel => m_Wrapper.m_UI_ScrollWheel;
+ ///
+ /// Provides access to the underlying input action "UI/TrackedDevicePosition".
+ ///
+ public InputAction @TrackedDevicePosition => m_Wrapper.m_UI_TrackedDevicePosition;
+ ///
+ /// Provides access to the underlying input action "UI/TrackedDeviceOrientation".
+ ///
+ public InputAction @TrackedDeviceOrientation => m_Wrapper.m_UI_TrackedDeviceOrientation;
+ ///
+ /// Provides access to the underlying input action map instance.
+ ///
+ public InputActionMap Get() { return m_Wrapper.m_UI; }
+ ///
+ 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(UIActions 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(IUIActions instance)
+ {
+ if (instance == null || m_Wrapper.m_UIActionsCallbackInterfaces.Contains(instance)) return;
+ m_Wrapper.m_UIActionsCallbackInterfaces.Add(instance);
+ @Navigate.started += instance.OnNavigate;
+ @Navigate.performed += instance.OnNavigate;
+ @Navigate.canceled += instance.OnNavigate;
+ @Submit.started += instance.OnSubmit;
+ @Submit.performed += instance.OnSubmit;
+ @Submit.canceled += instance.OnSubmit;
+ @Cancel.started += instance.OnCancel;
+ @Cancel.performed += instance.OnCancel;
+ @Cancel.canceled += instance.OnCancel;
+ @Point.started += instance.OnPoint;
+ @Point.performed += instance.OnPoint;
+ @Point.canceled += instance.OnPoint;
+ @Click.started += instance.OnClick;
+ @Click.performed += instance.OnClick;
+ @Click.canceled += instance.OnClick;
+ @RightClick.started += instance.OnRightClick;
+ @RightClick.performed += instance.OnRightClick;
+ @RightClick.canceled += instance.OnRightClick;
+ @MiddleClick.started += instance.OnMiddleClick;
+ @MiddleClick.performed += instance.OnMiddleClick;
+ @MiddleClick.canceled += instance.OnMiddleClick;
+ @ScrollWheel.started += instance.OnScrollWheel;
+ @ScrollWheel.performed += instance.OnScrollWheel;
+ @ScrollWheel.canceled += instance.OnScrollWheel;
+ @TrackedDevicePosition.started += instance.OnTrackedDevicePosition;
+ @TrackedDevicePosition.performed += instance.OnTrackedDevicePosition;
+ @TrackedDevicePosition.canceled += instance.OnTrackedDevicePosition;
+ @TrackedDeviceOrientation.started += instance.OnTrackedDeviceOrientation;
+ @TrackedDeviceOrientation.performed += instance.OnTrackedDeviceOrientation;
+ @TrackedDeviceOrientation.canceled += instance.OnTrackedDeviceOrientation;
+ }
+
+ ///
+ /// 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(IUIActions instance)
+ {
+ @Navigate.started -= instance.OnNavigate;
+ @Navigate.performed -= instance.OnNavigate;
+ @Navigate.canceled -= instance.OnNavigate;
+ @Submit.started -= instance.OnSubmit;
+ @Submit.performed -= instance.OnSubmit;
+ @Submit.canceled -= instance.OnSubmit;
+ @Cancel.started -= instance.OnCancel;
+ @Cancel.performed -= instance.OnCancel;
+ @Cancel.canceled -= instance.OnCancel;
+ @Point.started -= instance.OnPoint;
+ @Point.performed -= instance.OnPoint;
+ @Point.canceled -= instance.OnPoint;
+ @Click.started -= instance.OnClick;
+ @Click.performed -= instance.OnClick;
+ @Click.canceled -= instance.OnClick;
+ @RightClick.started -= instance.OnRightClick;
+ @RightClick.performed -= instance.OnRightClick;
+ @RightClick.canceled -= instance.OnRightClick;
+ @MiddleClick.started -= instance.OnMiddleClick;
+ @MiddleClick.performed -= instance.OnMiddleClick;
+ @MiddleClick.canceled -= instance.OnMiddleClick;
+ @ScrollWheel.started -= instance.OnScrollWheel;
+ @ScrollWheel.performed -= instance.OnScrollWheel;
+ @ScrollWheel.canceled -= instance.OnScrollWheel;
+ @TrackedDevicePosition.started -= instance.OnTrackedDevicePosition;
+ @TrackedDevicePosition.performed -= instance.OnTrackedDevicePosition;
+ @TrackedDevicePosition.canceled -= instance.OnTrackedDevicePosition;
+ @TrackedDeviceOrientation.started -= instance.OnTrackedDeviceOrientation;
+ @TrackedDeviceOrientation.performed -= instance.OnTrackedDeviceOrientation;
+ @TrackedDeviceOrientation.canceled -= instance.OnTrackedDeviceOrientation;
+ }
+
+ ///
+ /// Unregisters and unregisters all input action callbacks via .
+ ///
+ ///
+ public void RemoveCallbacks(IUIActions instance)
+ {
+ if (m_Wrapper.m_UIActionsCallbackInterfaces.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(IUIActions instance)
+ {
+ foreach (var item in m_Wrapper.m_UIActionsCallbackInterfaces)
+ UnregisterCallbacks(item);
+ m_Wrapper.m_UIActionsCallbackInterfaces.Clear();
+ AddCallbacks(instance);
+ }
+ }
+ ///
+ /// Provides a new instance referencing this action map.
+ ///
+ public UIActions @UI => new UIActions(this);
+ private int m_KeyboardMouseSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
+ public InputControlScheme KeyboardMouseScheme
+ {
+ get
+ {
+ if (m_KeyboardMouseSchemeIndex == -1) m_KeyboardMouseSchemeIndex = asset.FindControlSchemeIndex("Keyboard&Mouse");
+ return asset.controlSchemes[m_KeyboardMouseSchemeIndex];
+ }
+ }
+ private int m_GamepadSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
+ public InputControlScheme GamepadScheme
+ {
+ get
+ {
+ if (m_GamepadSchemeIndex == -1) m_GamepadSchemeIndex = asset.FindControlSchemeIndex("Gamepad");
+ return asset.controlSchemes[m_GamepadSchemeIndex];
+ }
+ }
+ private int m_TouchSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
+ public InputControlScheme TouchScheme
+ {
+ get
+ {
+ if (m_TouchSchemeIndex == -1) m_TouchSchemeIndex = asset.FindControlSchemeIndex("Touch");
+ return asset.controlSchemes[m_TouchSchemeIndex];
+ }
+ }
+ private int m_JoystickSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
+ public InputControlScheme JoystickScheme
+ {
+ get
+ {
+ if (m_JoystickSchemeIndex == -1) m_JoystickSchemeIndex = asset.FindControlSchemeIndex("Joystick");
+ return asset.controlSchemes[m_JoystickSchemeIndex];
+ }
+ }
+ private int m_XRSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
+ public InputControlScheme XRScheme
+ {
+ get
+ {
+ if (m_XRSchemeIndex == -1) m_XRSchemeIndex = asset.FindControlSchemeIndex("XR");
+ return asset.controlSchemes[m_XRSchemeIndex];
+ }
+ }
+ ///
+ /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Player" which allows adding and removing callbacks.
+ ///
+ ///
+ ///
+ public interface IPlayerActions
+ {
+ ///
+ /// Method invoked when associated input action "Move" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnMove(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Look" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnLook(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Attack" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnAttack(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Interact" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnInteract(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Crouch" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCrouch(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Jump" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnJump(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Previous" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnPrevious(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Next" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnNext(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Sprint" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnSprint(InputAction.CallbackContext context);
+ }
+ ///
+ /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks.
+ ///
+ ///
+ ///
+ public interface IUIActions
+ {
+ ///
+ /// Method invoked when associated input action "Navigate" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnNavigate(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Submit" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnSubmit(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Cancel" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCancel(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Point" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnPoint(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Click" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnClick(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "RightClick" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnRightClick(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "MiddleClick" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnMiddleClick(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "ScrollWheel" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnScrollWheel(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "TrackedDevicePosition" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnTrackedDevicePosition(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "TrackedDeviceOrientation" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnTrackedDeviceOrientation(InputAction.CallbackContext context);
+ }
+}
diff --git a/Assets/InputSystem_Actions.cs.meta b/Assets/InputSystem_Actions.cs.meta
new file mode 100644
index 0000000000..80e547caa5
--- /dev/null
+++ b/Assets/InputSystem_Actions.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: b19f4ea7b65a3f641abb61aafd8ba0fe
\ No newline at end of file
diff --git a/Assets/InputSystem_Actions.inputactions.meta b/Assets/InputSystem_Actions.inputactions.meta
index 6b38b043d9..e336413d38 100644
--- a/Assets/InputSystem_Actions.inputactions.meta
+++ b/Assets/InputSystem_Actions.inputactions.meta
@@ -8,7 +8,7 @@ ScriptedImporter:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
- generateWrapperCode: 0
+ generateWrapperCode: 1
wrapperCodePath:
wrapperClassName:
wrapperCodeNamespace:
diff --git a/Assets/Jianghu/Prefabs/Environment/鼠标悬浮 Variant.prefab b/Assets/Jianghu/Prefabs/Environment/鼠标悬浮 Variant.prefab
new file mode 100644
index 0000000000..8a6c53cc48
--- /dev/null
+++ b/Assets/Jianghu/Prefabs/Environment/鼠标悬浮 Variant.prefab
@@ -0,0 +1,88 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &4029439430316340095
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -90
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2232743197522067124, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4502962325606181486, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ propertyPath: m_Name
+ value: "\u9F20\u6807\u60AC\u6D6E Variant"
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 4502962325606181486, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1557245198507093151}
+ m_SourcePrefab: {fileID: 100100000, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+--- !u!1 &690965750815136017 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 4502962325606181486, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ m_PrefabInstance: {fileID: 4029439430316340095}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &1557245198507093151
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 690965750815136017}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9dcde7b030da4a94a9b5c05323a411bf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _vfx: {fileID: 3377335678319547738}
+ _lifeTime: -1
+ _isLoopVfx: 1
+ m_iState: 0
+--- !u!198 &3377335678319547738 stripped
+ParticleSystem:
+ m_CorrespondingSourceObject: {fileID: 1816574868192781861, guid: f3a1a6186688c0a43a83e5301ae63bb5, type: 3}
+ m_PrefabInstance: {fileID: 4029439430316340095}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Jianghu/Prefabs/Environment/鼠标悬浮 Variant.prefab.meta b/Assets/Jianghu/Prefabs/Environment/鼠标悬浮 Variant.prefab.meta
new file mode 100644
index 0000000000..81e32d95ba
--- /dev/null
+++ b/Assets/Jianghu/Prefabs/Environment/鼠标悬浮 Variant.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 23c524cd6f7fb27449cee2b10668fdd7
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs
index a26e50cd4f..bbe630c751 100644
--- a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs
+++ b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs
@@ -29,6 +29,7 @@ public abstract class CECPlayer : CECObject
protected float rotationSpeed = 5;
internal int m_iMoveMode; // Player's move mode
[SerializeField] internal int m_idSelTarget;
+ [SerializeField] internal int m_idCurHover; // ID of object under cursor
protected int m_iShape; // Ñ¡ÖÐÄ¿±êµÄID
protected uint m_dwStates; // Player's basic states
protected uint m_uAttackType;
diff --git a/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs b/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs
index 657bc6d933..638a8f9514 100644
--- a/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs
+++ b/Assets/PerfectWorld/Scripts/Vfx/BaseVfxObject.cs
@@ -15,6 +15,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Vfx
{
[SerializeField] private ParticleSystem _vfx;
[SerializeField] private float _lifeTime =-1;
+ [SerializeField] private bool _isLoopVfx;
private string _vfxPath;
private Vector3 _originalScale = Vector3.one;
private Vector3 _offset = Vector3.zero;
@@ -49,6 +50,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Vfx
private void Update()
{
+ if(_isLoopVfx) return;
if (_lifeTime > 0 && m_iState == GFX_STATE.ST_PLAY && !_lifetimeCompleted)
{
_elapsedTime += Time.deltaTime;
diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs
index f55887d34c..1f10a3e4cc 100644
--- a/Assets/Scripts/CECHostPlayer.cs
+++ b/Assets/Scripts/CECHostPlayer.cs
@@ -112,6 +112,7 @@ public partial class CECHostPlayer : CECPlayer
Camera mainCam;
private BaseVfxObject m_pSelectedGFX;
+ private BaseVfxObject m_pHoverGFX;
public bool IsChangingFace() { return m_bChangingFace; }
@@ -1128,7 +1129,7 @@ public partial class CECHostPlayer : CECPlayer
var gfxCaster = EC_Game.GetGFXCaster();
// m_pMoveTargetGFX = g_pGame->GetGFXCaster()->LoadGFXEx(res_GFXFile(RES_GFX_MOVETARGET));
m_pSelectedGFX = await gfxCaster.LoadGFXEx(EC_Resource.res_GFXFile((int)GfxResourceType.RES_GFX_SELECTED));
- // m_pHoverGFX = g_pGame->GetGFXCaster()->LoadGFXEx(res_GFXFile(RES_GFX_CURSORHOVER));
+ m_pHoverGFX = await gfxCaster.LoadGFXEx(EC_Resource.res_GFXFile((int)GfxResourceType.RES_GFX_CURSORHOVER));
// m_pFloatDust = g_pGame->GetGFXCaster()->LoadGFXEx(res_GFXFile(RES_GFX_FLOATING_DUST));
if (true /*CECUIConfig::Instance().GetGameUI().bEnableActionSwitch*/)
@@ -2327,30 +2328,31 @@ public partial class CECHostPlayer : CECPlayer
// if (m_pLevelUpGFX)
// m_pLevelUpGFX->SetParentTM(GetAbsoluteTM());
- // if (m_pHoverGFX)// && m_idCurHover != m_idSelTarget)
- // {
- // if (!IsChangingFace() && (ISPLAYERID(m_idCurHover) || ISNPCID(m_idCurHover)))
- // {
- // CECObject* pObject = pWorld->GetObject(m_idCurHover, 1);
- // if (pObject)
- // {
- // if (m_pHoverGFX->GetState() == ST_STOP)
- // m_pHoverGFX->Start();
- //
- // m_pHoverGFX->SetParentTM(pObject->GetAbsoluteTM());
- // }
- // else
- // m_pHoverGFX->Stop();
- // }
- // else
- // m_pHoverGFX->Stop();
- // }
+ if (m_pHoverGFX)// && m_idCurHover != m_idSelTarget)
+ {
+ if (!IsChangingFace() && (GPDataTypeHelper.ISPLAYERID(m_idCurHover) || GPDataTypeHelper.ISNPCID(m_idCurHover)))
+ {
+ CECObject pObject = EC_ManMessageMono.Instance?.GetObject(m_idCurHover, 1);
+ if (pObject)
+ {
+ if (m_pHoverGFX.GetState() == GFX_STATE.ST_STOP)
+ m_pHoverGFX.Play();
+
+ m_pSelectedGFX.transform.parent = pObject.transform;
+ m_pSelectedGFX.transform.localPosition = Vector3.zero;
+ }
+ else
+ m_pHoverGFX.Stop();
+ }
+ else
+ m_pHoverGFX.Stop();
+ }
if (m_pSelectedGFX)
{
if (!IsChangingFace() && (GPDataTypeHelper.ISPLAYERID(m_idSelTarget) || GPDataTypeHelper.ISNPCID(m_idSelTarget)))
{
- var pObject =EC_ManMessageMono.Instance?.GetObject(m_idSelTarget, 1);
+ var pObject = EC_ManMessageMono.Instance?.GetObject(m_idSelTarget, 1);
if (pObject)
{
if (m_pSelectedGFX.GetState() == GFX_STATE.ST_STOP)
@@ -2434,6 +2436,118 @@ public partial class CECHostPlayer : CECPlayer
// ((CDlgOnlineAward*)pGameUI->GetDialog("Win_AddExp2"))->RestartWhenLevelup();
// }
}
+
+ // Estimate mouse cursor
+private void EstimateCursor() // here
+{
+ // CECGameRun pGameRun = CECGameRun.Instance;
+ //
+ // m_idCurHover = 0;
+ // if (pGameRun.UIHasCursor() || IsChangingFace())
+ // return;
+ //
+ // CECCDS pCDS = pGameRun->GetWorld()->GetCDS();
+ // CECInputCtrl* pInputCtrl = pGameRun->GetInputCtrl();
+ //
+ // int x, y, iCursor=RES_CUR_NORMAL;
+ //
+ // if (CDlgAutoHelp::IsAutoHelp())
+ // {
+ // iCursor = RES_CUR_HAND;
+ // }
+ //
+ // pInputCtrl->GetMousePos(&x, &y);
+ // A3DVECTOR3 vDest((float)x, (float)y, 1.0f);
+ // A3DViewport* pView = g_pGame->GetViewport()->GetA3DViewport();
+ // pView->InvTransform(vDest, vDest);
+ //
+ // A3DVECTOR3 vStart = pView->GetCamera()->GetPos();
+ // A3DVECTOR3 vDelta = vDest - vStart;
+ //
+ // RAYTRACERT TraceRt;
+ // int iTraceFlag = TRACEOBJ_LBTNCLICK;
+ // if (pInputCtrl->KeyIsBeingPressed(VK_SHIFT))
+ // iTraceFlag |= 0x80000000;
+ //
+ // if (pInputCtrl->KeyIsBeingPressed(VK_MENU))
+ // iTraceFlag |= 0x40000000;
+ //
+ //
+ //
+ // CECPlayerMan* pPlayerMan = g_pGame->GetGameRun()->GetWorld()->GetPlayerMan();
+ // CECElsePlayer* pPatePlayer = pPlayerMan->GetMouseOnPateTextPlayer(x,y);
+ // if (pPatePlayer && pPatePlayer->GetBoothState() == 2){
+ // iCursor = RES_CUR_HAND;
+ // m_idCurHover = pPatePlayer->GetCharacterID();
+ // }
+ //
+ // if (pCDS->RayTrace(vStart, vDelta, 1.0f, &TraceRt, iTraceFlag, (DWORD)this))
+ // {
+ // int idHitObject(0);
+ // A3DVECTOR3 hitDis = TraceRt.vHitPos - vStart;
+ // if(pPatePlayer){
+ // A3DVECTOR3 playerPateDis = pPatePlayer->GetPos() - vStart;
+ // if (hitDis.Magnitude() < playerPateDis.Magnitude()){
+ // idHitObject = pCDS->m_RayTraceRt.iObjectID;
+ // }
+ // }else{
+ // idHitObject = pCDS->m_RayTraceRt.iObjectID;
+ // }
+ // if (idHitObject){
+ // bool bForceAttack = glb_GetForceAttackFlag(NULL);
+ //
+ // if (pCDS->m_RayTraceRt.iEntity == ECENT_MATTER)
+ // {
+ // CECMatter* pMatter = pGameRun->GetWorld()->GetMatterMan()->GetMatter(idHitObject);
+ // if (pMatter)
+ // {
+ // if (!pMatter->IsMine())
+ // iCursor = RES_CUR_PICKUP;
+ // else if (CanGatherMatter(pMatter))
+ // iCursor = pMatter->IsMonsterSpiritMine() ? RES_CUR_SWALLOW : RES_CUR_DIG;
+ // }
+ //
+ // if (iCursor != RES_CUR_NORMAL)
+ // m_idCurHover = idHitObject;
+ // }
+ // else if (pCDS->m_RayTraceRt.iEntity == ECENT_NPC)
+ // {
+ // CECNPC* pNPC = pGameRun->GetWorld()->GetNPCMan()->GetNPC(idHitObject);
+ // if (pNPC)
+ // {
+ // m_idCurHover = idHitObject;
+ // if (m_idSelTarget == idHitObject && AttackableJudge(idHitObject, bForceAttack) == 1)
+ // iCursor = RES_CUR_ATTACK;
+ // else if (pNPC->IsServerNPC())
+ // {
+ // if (!IsInBattle() || InSameBattleCamp(pNPC))
+ // iCursor = RES_CUR_TALK;
+ // }
+ // }
+ // }
+ // else if (pCDS->m_RayTraceRt.iEntity == ECENT_PLAYER)
+ // {
+ // CECElsePlayer* pTracePlayer = pGameRun->GetWorld()->GetPlayerMan()->GetElsePlayer(idHitObject);
+ // m_idCurHover = idHitObject;
+ // if (m_idSelTarget == idHitObject && AttackableJudge(idHitObject, bForceAttack) == 1)
+ // iCursor = RES_CUR_ATTACK;
+ // }
+ //
+ // l_fTestDist = vDelta.Magnitude() * TraceRt.fFraction;
+ // }
+ // }else{
+ // l_fTestDist = -1.0f;
+ // }
+ //
+ // CECNPCMan* pNPCMan = g_pGame->GetGameRun()->GetWorld()->GetNPCMan();
+ // CECNPC* pHoverNPC = pNPCMan->GetMouseOnPateTextNPC(x,y);
+ // if (pHoverNPC){
+ // iCursor = RES_CUR_TALK;
+ // m_idCurHover = pHoverNPC->GetNPCID();
+ // }
+ //
+ // g_pGame->ChangeCursor(iCursor);
+}
}
public enum StateAnim