summaryrefslogtreecommitdiff
path: root/Runtime/Graphs/UnityEngine.Graphs/LogicNodeLibrary/Input/OnMouseButton.cs
blob: 544a1e8871e45bc723b365f42951f182cfd428b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 ();
				}
			}
		}
	}
}