diff options
author | chai <chaifix@163.com> | 2020-10-11 09:12:08 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-11 09:12:08 +0800 |
commit | b1276a1b76ac3b87add90e0c6b887d5afea1cfea (patch) | |
tree | ae12e1bc24f6907c9870bf062d020d6ce1db6fa1 /Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs | |
parent | 8d89ca7b0662cff2a93b33ed92205ff3f6170436 (diff) |
*event system鍒濇帰
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 | 24 |
1 files changed, 14 insertions, 10 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 d31f433..9103162 100644 --- a/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs +++ b/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs @@ -16,7 +16,7 @@ namespace UnityEngine.EventSystems protected bool GetPointerData(int id, out PointerEventData data, bool create) { - if (!m_PointerData.TryGetValue(id, out data) && create) + if (!m_PointerData.TryGetValue(id, out data) && create) // 一个池子 { data = new PointerEventData(eventSystem) { @@ -33,29 +33,33 @@ namespace UnityEngine.EventSystems m_PointerData.Remove(data.pointerId); } + //c 根据touch数据得到pointEventData,并且保存raycaster结果 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(); - pressed = created || (input.phase == TouchPhase.Began); - released = (input.phase == TouchPhase.Canceled) || (input.phase == TouchPhase.Ended); + // pressed和released用来判断抬起或者放下 - if (created) + pressed = created || (input.phase == TouchPhase.Began); // 如果结构是新建的或input phase是bagan,说明是刚按下 + released = (input.phase == TouchPhase.Canceled) || (input.phase == TouchPhase.Ended); // 如果phase是这两种,说明是抬起来了 + + if (created)//如果是新建的,记录下起始位置,否则还保留旧值,下面用来计算delta pointerData.position = input.position; - if (pressed) + if (pressed)//如果是刚按下,delta置为0 pointerData.delta = Vector2.zero; else - pointerData.delta = input.position - pointerData.position; + pointerData.delta = input.position - pointerData.position; // 计算delta - pointerData.position = input.position; + pointerData.position = input.position; // 计算完delta后覆盖 - pointerData.button = PointerEventData.InputButton.Left; + pointerData.button = PointerEventData.InputButton.Left; // 这里不知道为什么 - eventSystem.RaycastAll(pointerData, m_RaycastResultCache); + // 用这个触摸数据做射线检测,检测结果在m_RaycastResultCache + eventSystem.RaycastAll(pointerData, m_RaycastResultCache); var raycast = FindFirstRaycast(m_RaycastResultCache); pointerData.pointerCurrentRaycast = raycast; |