diff options
Diffstat (limited to 'Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs')
-rw-r--r-- | Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs b/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs index 9103162..3f93e7a 100644 --- a/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs +++ b/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs @@ -4,6 +4,8 @@ using UnityEngine.UI; namespace UnityEngine.EventSystems { + + // 会处理触屏和鼠标 public abstract class PointerInputModule : BaseInputModule { public const int kMouseLeftId = -1; @@ -37,7 +39,8 @@ namespace UnityEngine.EventSystems protected PointerEventData GetTouchPointerEventData(Touch input, out bool pressed, out bool released) { PointerEventData pointerData; - var created = GetPointerData(input.fingerId, out pointerData, true); // 拿到存储结构,返回是否是新建结构 + // 从池子里拿到存储结构,返回是否是新建结构 + var created = GetPointerData(input.fingerId, out pointerData, true); pointerData.Reset(); @@ -60,8 +63,10 @@ namespace UnityEngine.EventSystems // 用这个触摸数据做射线检测,检测结果在m_RaycastResultCache eventSystem.RaycastAll(pointerData, m_RaycastResultCache); - + + // 只取第一个,舍弃其他的 var raycast = FindFirstRaycast(m_RaycastResultCache); + Debug.Log("raycast: " + raycast.index); pointerData.pointerCurrentRaycast = raycast; m_RaycastResultCache.Clear(); return pointerData; @@ -209,6 +214,8 @@ namespace UnityEngine.EventSystems leftData.scrollDelta = input.mouseScrollDelta; leftData.button = PointerEventData.InputButton.Left; eventSystem.RaycastAll(leftData, m_RaycastResultCache); + + // 只要第一个raycast结果 var raycast = FindFirstRaycast(m_RaycastResultCache); leftData.pointerCurrentRaycast = raycast; m_RaycastResultCache.Clear(); @@ -224,6 +231,7 @@ namespace UnityEngine.EventSystems CopyFromTo(leftData, middleData); middleData.button = PointerEventData.InputButton.Middle; + // 设置按键状态 m_MouseState.SetButtonState(PointerEventData.InputButton.Left, StateForMouseButton(0), leftData); m_MouseState.SetButtonState(PointerEventData.InputButton.Right, StateForMouseButton(1), rightData); m_MouseState.SetButtonState(PointerEventData.InputButton.Middle, StateForMouseButton(2), middleData); @@ -252,6 +260,7 @@ namespace UnityEngine.EventSystems HandlePointerExitAndEnter(pointerEvent, targetGO); } + // 发送drag事件 protected virtual void ProcessDrag(PointerEventData pointerEvent) { if (!pointerEvent.IsPointerMoving() || |