2 using System.Collections;
4 using UnityEngine.EventSystems;
12 public InputDeviceManager.InputDeviceType getDeviceType ()
14 return InputDeviceManager.InputDeviceType.Mouse;
17 public bool developmentMode =
true;
18 public Vector3 rayOriginOffset;
20 private LineRenderer lineRenderer;
22 public float mouseSpeed = 1.4f;
24 private Vector2 texCoordDelta;
25 private Vector3 positionDelta;
27 private Vector3 rayAngle =
new Vector3( 0, 0, 0 );
31 public Ray createRay()
36 ray = Camera.main.ScreenPointToRay(Input.mousePosition);
39 rayAngle = rayAngle +
new Vector3 ( -Input.GetAxis(
"Mouse Y") * mouseSpeed, Input.GetAxis(
"Mouse X") * mouseSpeed, 0f );
40 Vector3 rayDir = Quaternion.Euler (rayAngle) * Vector3.forward;
42 ray =
new Ray(Camera.main.transform.position + rayOriginOffset, rayDir);
47 public Vector2 getScrollDelta()
49 return Input.mouseScrollDelta*20f;
53 lineRenderer = this.GetComponent<LineRenderer> ();
54 if (lineRenderer == null) {
55 Debug.LogError (
"[MouseInput.cs] Line renderer not set");
59 InputDeviceManager.instance.registerInputDevice (
this);
60 Debug.Log (
"Mouse registered");
64 public void Update() {
65 if (!developmentMode && Input.GetKey (
"escape")) {
66 Cursor.lockState = CursorLockMode.None;
70 public void OnEnable() {
71 if (!developmentMode) {
72 Cursor.lockState = CursorLockMode.Locked;
76 public bool isLeftButtonDown()
78 return Input.GetMouseButton (0);
80 public bool isRightButtonDown()
82 return Input.GetMouseButton (1);
84 public bool isMiddleButtonDown()
86 return Input.GetMouseButton (2);
92 if (Input.GetMouseButtonDown (0) && Input.GetMouseButtonUp (0)) {
93 buttonInfo.buttonStates [ButtonType.Left] = PointerEventData.FramePressState.PressedAndReleased;
94 }
else if (Input.GetMouseButtonDown (0)) {
95 buttonInfo.buttonStates [ButtonType.Left] = PointerEventData.FramePressState.Pressed;
96 }
else if (Input.GetMouseButtonUp (0)) {
97 buttonInfo.buttonStates [ButtonType.Left] = PointerEventData.FramePressState.Released;
99 buttonInfo.buttonStates [ButtonType.Left] = PointerEventData.FramePressState.NotChanged;
102 if (Input.GetMouseButtonDown (1) && Input.GetMouseButtonUp (1)) {
103 buttonInfo.buttonStates [ButtonType.Right] = PointerEventData.FramePressState.PressedAndReleased;
104 }
else if (Input.GetMouseButtonDown (1)) {
105 buttonInfo.buttonStates [ButtonType.Right] = PointerEventData.FramePressState.Pressed;
106 }
else if (Input.GetMouseButtonUp (1)) {
107 buttonInfo.buttonStates [ButtonType.Right] = PointerEventData.FramePressState.Released;
109 buttonInfo.buttonStates [ButtonType.Right] = PointerEventData.FramePressState.NotChanged;
112 if (Input.GetMouseButtonDown (2) && Input.GetMouseButtonUp (2)) {
113 buttonInfo.buttonStates [ButtonType.Middle] = PointerEventData.FramePressState.PressedAndReleased;
114 }
else if (Input.GetMouseButtonDown (2)) {
115 buttonInfo.buttonStates [ButtonType.Middle] = PointerEventData.FramePressState.Pressed;
116 }
else if (Input.GetMouseButtonUp (2)) {
117 buttonInfo.buttonStates [ButtonType.Middle] = PointerEventData.FramePressState.Released;
119 buttonInfo.buttonStates [ButtonType.Middle] = PointerEventData.FramePressState.NotChanged;
125 public Camera getEventCamera()
132 return texCoordDelta;
134 public Vector3 get3DDelta() {
135 return positionDelta;
138 public void setTexCoordDelta( Vector2 delta ) {
139 texCoordDelta = delta;
141 public void set3DDelta( Vector2 delta ) {
142 positionDelta = delta;
149 public class MouseInputDeviceEditor : Editor
151 public override void OnInspectorGUI()
155 mid.developmentMode = GUILayout.Toggle(mid.developmentMode,
"Development Mode");
157 if (!mid.developmentMode) {
158 mid.rayOriginOffset = EditorGUILayout.Vector3Field (
"Ray Origin Offset",
new Vector3 (0.2f, -0.3f, 0f));
159 mid.mouseSpeed = EditorGUILayout.FloatField (
"Mouse Speed", 1.5f);
160 Cursor.lockState = CursorLockMode.Locked;
162 mid.rayOriginOffset = Vector3.zero;
163 mid.mouseSpeed = 1.5f;
164 Cursor.lockState = CursorLockMode.None;