summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-11 09:12:08 +0800
committerchai <chaifix@163.com>2020-10-11 09:12:08 +0800
commitb1276a1b76ac3b87add90e0c6b887d5afea1cfea (patch)
treeae12e1bc24f6907c9870bf062d020d6ce1db6fa1 /Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/InputModules/PointerInputModule.cs
parent8d89ca7b0662cff2a93b33ed92205ff3f6170436 (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.cs24
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;