Files
Dec2017-Script-Dump/UnityEngine.UI/EventSystems/BaseInputModule.cs
T
2026-06-04 11:42:34 +02:00

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;
}
}