diff options
Diffstat (limited to 'Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input')
6 files changed, 283 insertions, 0 deletions
diff --git a/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/InputNodes.cs b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/InputNodes.cs new file mode 100644 index 0000000..d1687db --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/InputNodes.cs @@ -0,0 +1,82 @@ +using UnityEngine; + +namespace UnityEngine.Graphs.LogicGraph +{ + public partial class InputNodes + { + public delegate void AxisDelegate (float value); + public delegate void MouseDelegate (Vector3 mousePosition); + + [Logic] + [Title("Input/Get Button")] + public static void GetButton(string buttonName, Action onDown, Action onUp, Action down, Action up) + { + if (onDown != null && Input.GetButtonDown (buttonName)) + onDown (); + + if (onUp != null && Input.GetButtonUp (buttonName)) + onUp (); + + if (down != null || up != null) + { + var stateDelegate = Input.GetButton (buttonName) ? down : up; + if (stateDelegate != null) + stateDelegate (); + } + } + + [Logic] + [Title("Input/Get Mouse Button")] + public static void GetMouseButton (int mouseButton, MouseDelegate onDown, MouseDelegate onUp, MouseDelegate down, MouseDelegate up) + { + if (onDown != null && Input.GetMouseButtonDown(mouseButton)) + onDown(Input.mousePosition); + + if (onUp != null && Input.GetMouseButtonUp(mouseButton)) + onUp(Input.mousePosition); + + if (down != null || up != null) + { + MouseDelegate stateDelegate = Input.GetMouseButton(mouseButton) ? down : up; + if (stateDelegate != null) + stateDelegate(Input.mousePosition); + } + } + + [Logic] + [Title("Input/Get Key")] + public static void GetKey(KeyCode key, Action onDown, Action onUp, Action down, Action up) + { + if (onDown != null && Input.GetKeyDown (key)) + onDown (); + + if (onUp != null && Input.GetKeyUp (key)) + onUp (); + + if (down != null || up != null) + { + var stateDelegate = Input.GetKey (key) ? down : up; + if (stateDelegate != null) + stateDelegate (); + } + } + + [Logic] + [Title("Input/Get Axis")] + public static void GetAxis(string axisName, AxisDelegate down, AxisDelegate up) + { + AxisDelegate stateDelegate = Input.GetButton (axisName) ? down : up; + if (stateDelegate != null) + stateDelegate (Input.GetAxis (axisName)); + } + + [LogicEval] + [Title("Input/Mouse Position")] + [return: Title("Mouse Position")] + public static Vector3 MousePosition () + { + return Input.mousePosition; + } + } +} + diff --git a/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnAxis.cs b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnAxis.cs new file mode 100644 index 0000000..f9bdcb6 --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnAxis.cs @@ -0,0 +1,37 @@ +using UnityEngine; + +namespace UnityEngine.Graphs.LogicGraph +{ + public partial class InputNodes + { + [Logic] + [Title("Input/On Axis")] + public sealed class OnAxis : OnInputNode + { + private float m_Value; + public float value { get { return m_Value; } } + + private string m_AxisName; + public string axisName { set { m_AxisName = value; } } + + public OnAxis (GraphBehaviour graphBehaviour) : base (graphBehaviour) { } + public OnAxis (IMonoBehaviourEventCaller graphBehaviour, string axisName) : base (graphBehaviour) + { + m_AxisName = axisName; + } + + protected override void OnUpdate () + { + if (down == null && up == null) + return; + + m_Value = Input.GetAxis (m_AxisName); + + var stateDelegate = Input.GetButton (m_AxisName) ? down : up; + if (stateDelegate != null) + stateDelegate (); + } + } + } +} + diff --git a/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnButton.cs b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnButton.cs new file mode 100644 index 0000000..a5d0809 --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnButton.cs @@ -0,0 +1,38 @@ +using UnityEngine; + +namespace UnityEngine.Graphs.LogicGraph +{ + public partial class InputNodes + { + [Logic] + [Title("Input/On Button")] + public sealed class OnButton : OnStateInputNode + { + private string m_ButtonName; + public string buttonName { set { m_ButtonName = value; } } + + public OnButton (GraphBehaviour graphBehaviour) : base (graphBehaviour) { } + public OnButton (IMonoBehaviourEventCaller graphBehaviour, string buttonName) : base (graphBehaviour) + { + m_ButtonName = buttonName; + } + + protected override void OnUpdate () + { + if (onDown != null && Input.GetButtonDown (m_ButtonName)) + onDown (); + + if (onUp != null && Input.GetButtonUp (m_ButtonName)) + onUp (); + + if (down != null || up != null) + { + var stateDelegate = Input.GetButton (m_ButtonName) ? down : up; + if (stateDelegate != null) + stateDelegate (); + } + } + } + } +} + diff --git a/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnInputNode.cs b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnInputNode.cs new file mode 100644 index 0000000..70032f2 --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnInputNode.cs @@ -0,0 +1,50 @@ +using System; + + +namespace UnityEngine.Graphs.LogicGraph +{ + public partial class InputNodes + { + public abstract class OnInputNode + { + protected IMonoBehaviourEventCaller m_GraphBehaviour; + + protected float m_DeltaTime; + public float deltaTime { get { return m_DeltaTime; } } + + public Action down; + public Action up; + + protected OnInputNode () { } + + protected OnInputNode (GraphBehaviour graphBehaviour) + { + m_GraphBehaviour = graphBehaviour; + m_GraphBehaviour.OnUpdate += OnBaseUpdate; + } + + protected OnInputNode (IMonoBehaviourEventCaller graphBehaviour) + { + m_GraphBehaviour = graphBehaviour; + m_GraphBehaviour.OnUpdate += OnBaseUpdate; + } + + private void OnBaseUpdate (float deltaTime) + { + m_DeltaTime = deltaTime; + OnUpdate (); + } + + protected abstract void OnUpdate (); + } + + public abstract class OnStateInputNode : OnInputNode + { + public Action onDown; + public Action onUp; + + protected OnStateInputNode (GraphBehaviour graphBehaviour) : base (graphBehaviour) { } + protected OnStateInputNode (IMonoBehaviourEventCaller graphBehaviour) : base (graphBehaviour) { } + } + } +} diff --git a/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnKey.cs b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnKey.cs new file mode 100644 index 0000000..64732f7 --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnKey.cs @@ -0,0 +1,38 @@ +using UnityEngine; + +namespace UnityEngine.Graphs.LogicGraph +{ + public partial class InputNodes + { + [Logic] + [Title("Input/On Key")] + public sealed class OnKey : OnStateInputNode + { + private KeyCode m_Key; + public KeyCode key { set { m_Key = value; } } + + public OnKey (GraphBehaviour graphBehaviour) : base (graphBehaviour) { } + public OnKey (IMonoBehaviourEventCaller graphBehaviour, KeyCode key) : base (graphBehaviour) + { + m_Key = key; + } + + protected override void OnUpdate () + { + if (onDown != null && Input.GetKeyDown (m_Key)) + onDown (); + + if (onUp != null && Input.GetKeyUp (m_Key)) + onUp (); + + if (down != null || up != null) + { + var stateDelegate = Input.GetKey (m_Key) ? down : up; + if (stateDelegate != null) + stateDelegate (); + } + } + } + } +} + diff --git a/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnMouseButton.cs b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnMouseButton.cs new file mode 100644 index 0000000..544a1e8 --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnMouseButton.cs @@ -0,0 +1,38 @@ +using UnityEngine; + +namespace UnityEngine.Graphs.LogicGraph +{ + public partial class InputNodes + { + [Logic] + [Title("Input/On Mouse Button")] + public sealed class OnMouseButton : OnStateInputNode + { + private int m_MouseButton; + public int mouseButton { set { m_MouseButton = value; } } + + public OnMouseButton (GraphBehaviour graphBehaviour) : base (graphBehaviour) { } + public OnMouseButton (IMonoBehaviourEventCaller graphBehaviour, int mouseButton) : base (graphBehaviour) + { + m_MouseButton = mouseButton; + } + + protected override void OnUpdate () + { + if (onDown != null && Input.GetMouseButtonDown (m_MouseButton)) + onDown (); + + if (onUp != null && Input.GetMouseButtonUp (m_MouseButton)) + onUp (); + + if (down != null || up != null) + { + var stateDelegate = Input.GetMouseButton (m_MouseButton) ? down : up; + if (stateDelegate != null) + stateDelegate (); + } + } + } + } +} + |