276 lines
7.4 KiB
C#
276 lines
7.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace UnityEngine.EventSystems
|
|
{
|
|
// Token: 0x02000027 RID: 39
|
|
[RequireComponent(typeof(EventSystem))]
|
|
public abstract class BaseInputModule : UIBehaviour
|
|
{
|
|
// Token: 0x17000042 RID: 66
|
|
// (get) Token: 0x060000DB RID: 219 RVA: 0x00003E4C File Offset: 0x0000224C
|
|
public BaseInput input
|
|
{
|
|
get
|
|
{
|
|
BaseInput baseInput;
|
|
if (this.m_InputOverride != null)
|
|
{
|
|
baseInput = this.m_InputOverride;
|
|
}
|
|
else
|
|
{
|
|
if (this.m_DefaultInput == null)
|
|
{
|
|
BaseInput[] components = base.GetComponents<BaseInput>();
|
|
foreach (BaseInput baseInput2 in components)
|
|
{
|
|
if (baseInput2 != null && baseInput2.GetType() == typeof(BaseInput))
|
|
{
|
|
this.m_DefaultInput = baseInput2;
|
|
break;
|
|
}
|
|
}
|
|
if (this.m_DefaultInput == null)
|
|
{
|
|
this.m_DefaultInput = base.gameObject.AddComponent<BaseInput>();
|
|
}
|
|
}
|
|
baseInput = this.m_DefaultInput;
|
|
}
|
|
return baseInput;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000043 RID: 67
|
|
// (get) Token: 0x060000DC RID: 220 RVA: 0x00003F10 File Offset: 0x00002310
|
|
protected EventSystem eventSystem
|
|
{
|
|
get
|
|
{
|
|
return this.m_EventSystem;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060000DD RID: 221 RVA: 0x00003F2B File Offset: 0x0000232B
|
|
protected override void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
this.m_EventSystem = base.GetComponent<EventSystem>();
|
|
this.m_EventSystem.UpdateModules();
|
|
}
|
|
|
|
// Token: 0x060000DE RID: 222 RVA: 0x00003F4B File Offset: 0x0000234B
|
|
protected override void OnDisable()
|
|
{
|
|
this.m_EventSystem.UpdateModules();
|
|
base.OnDisable();
|
|
}
|
|
|
|
// Token: 0x060000DF RID: 223
|
|
public abstract void Process();
|
|
|
|
// Token: 0x060000E0 RID: 224 RVA: 0x00003F60 File Offset: 0x00002360
|
|
protected static RaycastResult FindFirstRaycast(List<RaycastResult> candidates)
|
|
{
|
|
for (int i = 0; i < candidates.Count; i++)
|
|
{
|
|
if (!(candidates[i].gameObject == null))
|
|
{
|
|
return candidates[i];
|
|
}
|
|
}
|
|
return default(RaycastResult);
|
|
}
|
|
|
|
// Token: 0x060000E1 RID: 225 RVA: 0x00003FC4 File Offset: 0x000023C4
|
|
protected static MoveDirection DetermineMoveDirection(float x, float y)
|
|
{
|
|
return BaseInputModule.DetermineMoveDirection(x, y, 0.6f);
|
|
}
|
|
|
|
// Token: 0x060000E2 RID: 226 RVA: 0x00003FE8 File Offset: 0x000023E8
|
|
protected static MoveDirection DetermineMoveDirection(float x, float y, float deadZone)
|
|
{
|
|
Vector2 vector = new Vector2(x, y);
|
|
MoveDirection moveDirection;
|
|
if (vector.sqrMagnitude < deadZone * deadZone)
|
|
{
|
|
moveDirection = MoveDirection.None;
|
|
}
|
|
else if (Mathf.Abs(x) > Mathf.Abs(y))
|
|
{
|
|
if (x > 0f)
|
|
{
|
|
moveDirection = MoveDirection.Right;
|
|
}
|
|
else
|
|
{
|
|
moveDirection = MoveDirection.Left;
|
|
}
|
|
}
|
|
else if (y > 0f)
|
|
{
|
|
moveDirection = MoveDirection.Up;
|
|
}
|
|
else
|
|
{
|
|
moveDirection = MoveDirection.Down;
|
|
}
|
|
return moveDirection;
|
|
}
|
|
|
|
// Token: 0x060000E3 RID: 227 RVA: 0x0000405C File Offset: 0x0000245C
|
|
protected static GameObject FindCommonRoot(GameObject g1, GameObject g2)
|
|
{
|
|
GameObject gameObject;
|
|
if (g1 == null || g2 == null)
|
|
{
|
|
gameObject = null;
|
|
}
|
|
else
|
|
{
|
|
Transform transform = g1.transform;
|
|
while (transform != null)
|
|
{
|
|
Transform transform2 = g2.transform;
|
|
while (transform2 != null)
|
|
{
|
|
if (transform == transform2)
|
|
{
|
|
return transform.gameObject;
|
|
}
|
|
transform2 = transform2.parent;
|
|
}
|
|
transform = transform.parent;
|
|
}
|
|
gameObject = null;
|
|
}
|
|
return gameObject;
|
|
}
|
|
|
|
// Token: 0x060000E4 RID: 228 RVA: 0x000040EC File Offset: 0x000024EC
|
|
protected void HandlePointerExitAndEnter(PointerEventData currentPointerData, GameObject newEnterTarget)
|
|
{
|
|
if (newEnterTarget == null || currentPointerData.pointerEnter == null)
|
|
{
|
|
for (int i = 0; i < currentPointerData.hovered.Count; i++)
|
|
{
|
|
ExecuteEvents.Execute<IPointerExitHandler>(currentPointerData.hovered[i], currentPointerData, ExecuteEvents.pointerExitHandler);
|
|
}
|
|
currentPointerData.hovered.Clear();
|
|
if (newEnterTarget == null)
|
|
{
|
|
currentPointerData.pointerEnter = newEnterTarget;
|
|
return;
|
|
}
|
|
}
|
|
if (!(currentPointerData.pointerEnter == newEnterTarget) || !newEnterTarget)
|
|
{
|
|
GameObject gameObject = BaseInputModule.FindCommonRoot(currentPointerData.pointerEnter, newEnterTarget);
|
|
if (currentPointerData.pointerEnter != null)
|
|
{
|
|
Transform transform = currentPointerData.pointerEnter.transform;
|
|
while (transform != null)
|
|
{
|
|
if (gameObject != null && gameObject.transform == transform)
|
|
{
|
|
break;
|
|
}
|
|
ExecuteEvents.Execute<IPointerExitHandler>(transform.gameObject, currentPointerData, ExecuteEvents.pointerExitHandler);
|
|
currentPointerData.hovered.Remove(transform.gameObject);
|
|
transform = transform.parent;
|
|
}
|
|
}
|
|
currentPointerData.pointerEnter = newEnterTarget;
|
|
if (newEnterTarget != null)
|
|
{
|
|
Transform transform2 = newEnterTarget.transform;
|
|
while (transform2 != null && transform2.gameObject != gameObject)
|
|
{
|
|
ExecuteEvents.Execute<IPointerEnterHandler>(transform2.gameObject, currentPointerData, ExecuteEvents.pointerEnterHandler);
|
|
currentPointerData.hovered.Add(transform2.gameObject);
|
|
transform2 = transform2.parent;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060000E5 RID: 229 RVA: 0x00004288 File Offset: 0x00002688
|
|
protected virtual AxisEventData GetAxisEventData(float x, float y, float moveDeadZone)
|
|
{
|
|
if (this.m_AxisEventData == null)
|
|
{
|
|
this.m_AxisEventData = new AxisEventData(this.eventSystem);
|
|
}
|
|
this.m_AxisEventData.Reset();
|
|
this.m_AxisEventData.moveVector = new Vector2(x, y);
|
|
this.m_AxisEventData.moveDir = BaseInputModule.DetermineMoveDirection(x, y, moveDeadZone);
|
|
return this.m_AxisEventData;
|
|
}
|
|
|
|
// Token: 0x060000E6 RID: 230 RVA: 0x000042F0 File Offset: 0x000026F0
|
|
protected virtual BaseEventData GetBaseEventData()
|
|
{
|
|
if (this.m_BaseEventData == null)
|
|
{
|
|
this.m_BaseEventData = new BaseEventData(this.eventSystem);
|
|
}
|
|
this.m_BaseEventData.Reset();
|
|
return this.m_BaseEventData;
|
|
}
|
|
|
|
// Token: 0x060000E7 RID: 231 RVA: 0x00004334 File Offset: 0x00002734
|
|
public virtual bool IsPointerOverGameObject(int pointerId)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// Token: 0x060000E8 RID: 232 RVA: 0x0000434C File Offset: 0x0000274C
|
|
public virtual bool ShouldActivateModule()
|
|
{
|
|
return base.enabled && base.gameObject.activeInHierarchy;
|
|
}
|
|
|
|
// Token: 0x060000E9 RID: 233 RVA: 0x0000437A File Offset: 0x0000277A
|
|
public virtual void DeactivateModule()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000EA RID: 234 RVA: 0x0000437D File Offset: 0x0000277D
|
|
public virtual void ActivateModule()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000EB RID: 235 RVA: 0x00004380 File Offset: 0x00002780
|
|
public virtual void UpdateModule()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000EC RID: 236 RVA: 0x00004384 File Offset: 0x00002784
|
|
public virtual bool IsModuleSupported()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0400007D RID: 125
|
|
[NonSerialized]
|
|
protected List<RaycastResult> m_RaycastResultCache = new List<RaycastResult>();
|
|
|
|
// Token: 0x0400007E RID: 126
|
|
private AxisEventData m_AxisEventData;
|
|
|
|
// Token: 0x0400007F RID: 127
|
|
private EventSystem m_EventSystem;
|
|
|
|
// Token: 0x04000080 RID: 128
|
|
private BaseEventData m_BaseEventData;
|
|
|
|
// Token: 0x04000081 RID: 129
|
|
protected BaseInput m_InputOverride;
|
|
|
|
// Token: 0x04000082 RID: 130
|
|
private BaseInput m_DefaultInput;
|
|
}
|
|
}
|