scripts
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000039 RID: 57
|
||||
[Serializable]
|
||||
public class AnimationTriggers
|
||||
{
|
||||
// Token: 0x17000064 RID: 100
|
||||
// (get) Token: 0x06000179 RID: 377 RVA: 0x00006BFC File Offset: 0x00004FFC
|
||||
// (set) Token: 0x0600017A RID: 378 RVA: 0x00006C17 File Offset: 0x00005017
|
||||
public string normalTrigger
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_NormalTrigger;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_NormalTrigger = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000065 RID: 101
|
||||
// (get) Token: 0x0600017B RID: 379 RVA: 0x00006C24 File Offset: 0x00005024
|
||||
// (set) Token: 0x0600017C RID: 380 RVA: 0x00006C3F File Offset: 0x0000503F
|
||||
public string highlightedTrigger
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HighlightedTrigger;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_HighlightedTrigger = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000066 RID: 102
|
||||
// (get) Token: 0x0600017D RID: 381 RVA: 0x00006C4C File Offset: 0x0000504C
|
||||
// (set) Token: 0x0600017E RID: 382 RVA: 0x00006C67 File Offset: 0x00005067
|
||||
public string pressedTrigger
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PressedTrigger;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_PressedTrigger = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000067 RID: 103
|
||||
// (get) Token: 0x0600017F RID: 383 RVA: 0x00006C74 File Offset: 0x00005074
|
||||
// (set) Token: 0x06000180 RID: 384 RVA: 0x00006C8F File Offset: 0x0000508F
|
||||
public string disabledTrigger
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_DisabledTrigger;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_DisabledTrigger = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000B6 RID: 182
|
||||
private const string kDefaultNormalAnimName = "Normal";
|
||||
|
||||
// Token: 0x040000B7 RID: 183
|
||||
private const string kDefaultSelectedAnimName = "Highlighted";
|
||||
|
||||
// Token: 0x040000B8 RID: 184
|
||||
private const string kDefaultPressedAnimName = "Pressed";
|
||||
|
||||
// Token: 0x040000B9 RID: 185
|
||||
private const string kDefaultDisabledAnimName = "Disabled";
|
||||
|
||||
// Token: 0x040000BA RID: 186
|
||||
[FormerlySerializedAs("normalTrigger")]
|
||||
[SerializeField]
|
||||
private string m_NormalTrigger = "Normal";
|
||||
|
||||
// Token: 0x040000BB RID: 187
|
||||
[FormerlySerializedAs("highlightedTrigger")]
|
||||
[FormerlySerializedAs("m_SelectedTrigger")]
|
||||
[SerializeField]
|
||||
private string m_HighlightedTrigger = "Highlighted";
|
||||
|
||||
// Token: 0x040000BC RID: 188
|
||||
[FormerlySerializedAs("pressedTrigger")]
|
||||
[SerializeField]
|
||||
private string m_PressedTrigger = "Pressed";
|
||||
|
||||
// Token: 0x040000BD RID: 189
|
||||
[FormerlySerializedAs("disabledTrigger")]
|
||||
[SerializeField]
|
||||
private string m_DisabledTrigger = "Disabled";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
using System;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000087 RID: 135
|
||||
[AddComponentMenu("Layout/Aspect Ratio Fitter", 142)]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
[DisallowMultipleComponent]
|
||||
public class AspectRatioFitter : UIBehaviour, ILayoutSelfController, ILayoutController
|
||||
{
|
||||
// Token: 0x060004F8 RID: 1272 RVA: 0x0001A942 File Offset: 0x00018D42
|
||||
protected AspectRatioFitter()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700015A RID: 346
|
||||
// (get) Token: 0x060004F9 RID: 1273 RVA: 0x0001A960 File Offset: 0x00018D60
|
||||
// (set) Token: 0x060004FA RID: 1274 RVA: 0x0001A97B File Offset: 0x00018D7B
|
||||
public AspectRatioFitter.AspectMode aspectMode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AspectMode;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<AspectRatioFitter.AspectMode>(ref this.m_AspectMode, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700015B RID: 347
|
||||
// (get) Token: 0x060004FB RID: 1275 RVA: 0x0001A998 File Offset: 0x00018D98
|
||||
// (set) Token: 0x060004FC RID: 1276 RVA: 0x0001A9B3 File Offset: 0x00018DB3
|
||||
public float aspectRatio
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AspectRatio;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_AspectRatio, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700015C RID: 348
|
||||
// (get) Token: 0x060004FD RID: 1277 RVA: 0x0001A9D0 File Offset: 0x00018DD0
|
||||
private RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Rect == null)
|
||||
{
|
||||
this.m_Rect = base.GetComponent<RectTransform>();
|
||||
}
|
||||
return this.m_Rect;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004FE RID: 1278 RVA: 0x0001AA08 File Offset: 0x00018E08
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x060004FF RID: 1279 RVA: 0x0001AA17 File Offset: 0x00018E17
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x06000500 RID: 1280 RVA: 0x0001AA36 File Offset: 0x00018E36
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
this.UpdateRect();
|
||||
}
|
||||
|
||||
// Token: 0x06000501 RID: 1281 RVA: 0x0001AA40 File Offset: 0x00018E40
|
||||
private void UpdateRect()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
switch (this.m_AspectMode)
|
||||
{
|
||||
case AspectRatioFitter.AspectMode.WidthControlsHeight:
|
||||
this.m_Tracker.Add(this, this.rectTransform, DrivenTransformProperties.SizeDeltaY);
|
||||
this.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, this.rectTransform.rect.width / this.m_AspectRatio);
|
||||
break;
|
||||
case AspectRatioFitter.AspectMode.HeightControlsWidth:
|
||||
this.m_Tracker.Add(this, this.rectTransform, DrivenTransformProperties.SizeDeltaX);
|
||||
this.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, this.rectTransform.rect.height * this.m_AspectRatio);
|
||||
break;
|
||||
case AspectRatioFitter.AspectMode.FitInParent:
|
||||
case AspectRatioFitter.AspectMode.EnvelopeParent:
|
||||
{
|
||||
this.m_Tracker.Add(this, this.rectTransform, DrivenTransformProperties.AnchoredPositionX | DrivenTransformProperties.AnchoredPositionY | DrivenTransformProperties.AnchorMinX | DrivenTransformProperties.AnchorMinY | DrivenTransformProperties.AnchorMaxX | DrivenTransformProperties.AnchorMaxY | DrivenTransformProperties.SizeDeltaX | DrivenTransformProperties.SizeDeltaY);
|
||||
this.rectTransform.anchorMin = Vector2.zero;
|
||||
this.rectTransform.anchorMax = Vector2.one;
|
||||
this.rectTransform.anchoredPosition = Vector2.zero;
|
||||
Vector2 zero = Vector2.zero;
|
||||
Vector2 parentSize = this.GetParentSize();
|
||||
if ((parentSize.y * this.aspectRatio < parentSize.x) ^ (this.m_AspectMode == AspectRatioFitter.AspectMode.FitInParent))
|
||||
{
|
||||
zero.y = this.GetSizeDeltaToProduceSize(parentSize.x / this.aspectRatio, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
zero.x = this.GetSizeDeltaToProduceSize(parentSize.y * this.aspectRatio, 0);
|
||||
}
|
||||
this.rectTransform.sizeDelta = zero;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000502 RID: 1282 RVA: 0x0001ABE4 File Offset: 0x00018FE4
|
||||
private float GetSizeDeltaToProduceSize(float size, int axis)
|
||||
{
|
||||
return size - this.GetParentSize()[axis] * (this.rectTransform.anchorMax[axis] - this.rectTransform.anchorMin[axis]);
|
||||
}
|
||||
|
||||
// Token: 0x06000503 RID: 1283 RVA: 0x0001AC34 File Offset: 0x00019034
|
||||
private Vector2 GetParentSize()
|
||||
{
|
||||
RectTransform rectTransform = this.rectTransform.parent as RectTransform;
|
||||
Vector2 vector;
|
||||
if (!rectTransform)
|
||||
{
|
||||
vector = Vector2.zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
vector = rectTransform.rect.size;
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x06000504 RID: 1284 RVA: 0x0001AC7E File Offset: 0x0001907E
|
||||
public virtual void SetLayoutHorizontal()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000505 RID: 1285 RVA: 0x0001AC81 File Offset: 0x00019081
|
||||
public virtual void SetLayoutVertical()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000506 RID: 1286 RVA: 0x0001AC84 File Offset: 0x00019084
|
||||
protected void SetDirty()
|
||||
{
|
||||
this.UpdateRect();
|
||||
}
|
||||
|
||||
// Token: 0x04000259 RID: 601
|
||||
[SerializeField]
|
||||
private AspectRatioFitter.AspectMode m_AspectMode = AspectRatioFitter.AspectMode.None;
|
||||
|
||||
// Token: 0x0400025A RID: 602
|
||||
[SerializeField]
|
||||
private float m_AspectRatio = 1f;
|
||||
|
||||
// Token: 0x0400025B RID: 603
|
||||
[NonSerialized]
|
||||
private RectTransform m_Rect;
|
||||
|
||||
// Token: 0x0400025C RID: 604
|
||||
private DrivenRectTransformTracker m_Tracker;
|
||||
|
||||
// Token: 0x02000088 RID: 136
|
||||
public enum AspectMode
|
||||
{
|
||||
// Token: 0x0400025E RID: 606
|
||||
None,
|
||||
// Token: 0x0400025F RID: 607
|
||||
WidthControlsHeight,
|
||||
// Token: 0x04000260 RID: 608
|
||||
HeightControlsWidth,
|
||||
// Token: 0x04000261 RID: 609
|
||||
FitInParent,
|
||||
// Token: 0x04000262 RID: 610
|
||||
EnvelopeParent
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000AA RID: 170
|
||||
[ExecuteInEditMode]
|
||||
public abstract class BaseMeshEffect : UIBehaviour, IMeshModifier
|
||||
{
|
||||
// Token: 0x1700019B RID: 411
|
||||
// (get) Token: 0x06000619 RID: 1561 RVA: 0x0001E574 File Offset: 0x0001C974
|
||||
protected Graphic graphic
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Graphic == null)
|
||||
{
|
||||
this.m_Graphic = base.GetComponent<Graphic>();
|
||||
}
|
||||
return this.m_Graphic;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600061A RID: 1562 RVA: 0x0001E5AC File Offset: 0x0001C9AC
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
if (this.graphic != null)
|
||||
{
|
||||
this.graphic.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600061B RID: 1563 RVA: 0x0001E5D1 File Offset: 0x0001C9D1
|
||||
protected override void OnDisable()
|
||||
{
|
||||
if (this.graphic != null)
|
||||
{
|
||||
this.graphic.SetVerticesDirty();
|
||||
}
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x0600061C RID: 1564 RVA: 0x0001E5F6 File Offset: 0x0001C9F6
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
if (this.graphic != null)
|
||||
{
|
||||
this.graphic.SetVerticesDirty();
|
||||
}
|
||||
base.OnDidApplyAnimationProperties();
|
||||
}
|
||||
|
||||
// Token: 0x0600061D RID: 1565 RVA: 0x0001E61C File Offset: 0x0001CA1C
|
||||
public virtual void ModifyMesh(Mesh mesh)
|
||||
{
|
||||
using (VertexHelper vertexHelper = new VertexHelper(mesh))
|
||||
{
|
||||
this.ModifyMesh(vertexHelper);
|
||||
vertexHelper.FillMesh(mesh);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600061E RID: 1566
|
||||
public abstract void ModifyMesh(VertexHelper vh);
|
||||
|
||||
// Token: 0x040002D6 RID: 726
|
||||
[NonSerialized]
|
||||
private Graphic m_Graphic;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000A9 RID: 169
|
||||
[Obsolete("Use BaseMeshEffect instead", true)]
|
||||
public abstract class BaseVertexEffect
|
||||
{
|
||||
// Token: 0x06000617 RID: 1559
|
||||
[Obsolete("Use BaseMeshEffect.ModifyMeshes instead", true)]
|
||||
public abstract void ModifyVertices(List<UIVertex> vertices);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200003A RID: 58
|
||||
[AddComponentMenu("UI/Button", 30)]
|
||||
public class Button : Selectable, IPointerClickHandler, ISubmitHandler, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x06000181 RID: 385 RVA: 0x00007B73 File Offset: 0x00005F73
|
||||
protected Button()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000068 RID: 104
|
||||
// (get) Token: 0x06000182 RID: 386 RVA: 0x00007B88 File Offset: 0x00005F88
|
||||
// (set) Token: 0x06000183 RID: 387 RVA: 0x00007BA3 File Offset: 0x00005FA3
|
||||
public Button.ButtonClickedEvent onClick
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnClick;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_OnClick = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000184 RID: 388 RVA: 0x00007BAD File Offset: 0x00005FAD
|
||||
private void Press()
|
||||
{
|
||||
if (this.IsActive() && this.IsInteractable())
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("Button.onClick", this);
|
||||
this.m_OnClick.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000185 RID: 389 RVA: 0x00007BE1 File Offset: 0x00005FE1
|
||||
public virtual void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
this.Press();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000186 RID: 390 RVA: 0x00007BFA File Offset: 0x00005FFA
|
||||
public virtual void OnSubmit(BaseEventData eventData)
|
||||
{
|
||||
this.Press();
|
||||
if (this.IsActive() && this.IsInteractable())
|
||||
{
|
||||
this.DoStateTransition(Selectable.SelectionState.Pressed, false);
|
||||
base.StartCoroutine(this.OnFinishSubmit());
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000187 RID: 391 RVA: 0x00007C34 File Offset: 0x00006034
|
||||
private IEnumerator OnFinishSubmit()
|
||||
{
|
||||
float fadeTime = base.colors.fadeDuration;
|
||||
float elapsedTime = 0f;
|
||||
while (elapsedTime < fadeTime)
|
||||
{
|
||||
elapsedTime += Time.unscaledDeltaTime;
|
||||
yield return null;
|
||||
}
|
||||
this.DoStateTransition(base.currentSelectionState, false);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x040000BE RID: 190
|
||||
[FormerlySerializedAs("onClick")]
|
||||
[SerializeField]
|
||||
private Button.ButtonClickedEvent m_OnClick = new Button.ButtonClickedEvent();
|
||||
|
||||
// Token: 0x0200003B RID: 59
|
||||
[Serializable]
|
||||
public class ButtonClickedEvent : UnityEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,432 @@
|
||||
using System;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000089 RID: 137
|
||||
[RequireComponent(typeof(Canvas))]
|
||||
[ExecuteInEditMode]
|
||||
[AddComponentMenu("Layout/Canvas Scaler", 101)]
|
||||
public class CanvasScaler : UIBehaviour
|
||||
{
|
||||
// Token: 0x06000507 RID: 1287 RVA: 0x0001AC90 File Offset: 0x00019090
|
||||
protected CanvasScaler()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700015D RID: 349
|
||||
// (get) Token: 0x06000508 RID: 1288 RVA: 0x0001AD28 File Offset: 0x00019128
|
||||
// (set) Token: 0x06000509 RID: 1289 RVA: 0x0001AD43 File Offset: 0x00019143
|
||||
public CanvasScaler.ScaleMode uiScaleMode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_UiScaleMode;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_UiScaleMode = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700015E RID: 350
|
||||
// (get) Token: 0x0600050A RID: 1290 RVA: 0x0001AD50 File Offset: 0x00019150
|
||||
// (set) Token: 0x0600050B RID: 1291 RVA: 0x0001AD6B File Offset: 0x0001916B
|
||||
public float referencePixelsPerUnit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ReferencePixelsPerUnit;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ReferencePixelsPerUnit = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700015F RID: 351
|
||||
// (get) Token: 0x0600050C RID: 1292 RVA: 0x0001AD78 File Offset: 0x00019178
|
||||
// (set) Token: 0x0600050D RID: 1293 RVA: 0x0001AD93 File Offset: 0x00019193
|
||||
public float scaleFactor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ScaleFactor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ScaleFactor = Mathf.Max(0.01f, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000160 RID: 352
|
||||
// (get) Token: 0x0600050E RID: 1294 RVA: 0x0001ADA8 File Offset: 0x000191A8
|
||||
// (set) Token: 0x0600050F RID: 1295 RVA: 0x0001ADC4 File Offset: 0x000191C4
|
||||
public Vector2 referenceResolution
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ReferenceResolution;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ReferenceResolution = value;
|
||||
if (this.m_ReferenceResolution.x > -1E-05f && this.m_ReferenceResolution.x < 1E-05f)
|
||||
{
|
||||
this.m_ReferenceResolution.x = 1E-05f * Mathf.Sign(this.m_ReferenceResolution.x);
|
||||
}
|
||||
if (this.m_ReferenceResolution.y > -1E-05f && this.m_ReferenceResolution.y < 1E-05f)
|
||||
{
|
||||
this.m_ReferenceResolution.y = 1E-05f * Mathf.Sign(this.m_ReferenceResolution.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000161 RID: 353
|
||||
// (get) Token: 0x06000510 RID: 1296 RVA: 0x0001AE70 File Offset: 0x00019270
|
||||
// (set) Token: 0x06000511 RID: 1297 RVA: 0x0001AE8B File Offset: 0x0001928B
|
||||
public CanvasScaler.ScreenMatchMode screenMatchMode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ScreenMatchMode;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ScreenMatchMode = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000162 RID: 354
|
||||
// (get) Token: 0x06000512 RID: 1298 RVA: 0x0001AE98 File Offset: 0x00019298
|
||||
// (set) Token: 0x06000513 RID: 1299 RVA: 0x0001AEB3 File Offset: 0x000192B3
|
||||
public float matchWidthOrHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MatchWidthOrHeight;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_MatchWidthOrHeight = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000163 RID: 355
|
||||
// (get) Token: 0x06000514 RID: 1300 RVA: 0x0001AEC0 File Offset: 0x000192C0
|
||||
// (set) Token: 0x06000515 RID: 1301 RVA: 0x0001AEDB File Offset: 0x000192DB
|
||||
public CanvasScaler.Unit physicalUnit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PhysicalUnit;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_PhysicalUnit = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000164 RID: 356
|
||||
// (get) Token: 0x06000516 RID: 1302 RVA: 0x0001AEE8 File Offset: 0x000192E8
|
||||
// (set) Token: 0x06000517 RID: 1303 RVA: 0x0001AF03 File Offset: 0x00019303
|
||||
public float fallbackScreenDPI
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FallbackScreenDPI;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_FallbackScreenDPI = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000165 RID: 357
|
||||
// (get) Token: 0x06000518 RID: 1304 RVA: 0x0001AF10 File Offset: 0x00019310
|
||||
// (set) Token: 0x06000519 RID: 1305 RVA: 0x0001AF2B File Offset: 0x0001932B
|
||||
public float defaultSpriteDPI
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_DefaultSpriteDPI;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_DefaultSpriteDPI = Mathf.Max(1f, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000166 RID: 358
|
||||
// (get) Token: 0x0600051A RID: 1306 RVA: 0x0001AF40 File Offset: 0x00019340
|
||||
// (set) Token: 0x0600051B RID: 1307 RVA: 0x0001AF5B File Offset: 0x0001935B
|
||||
public float dynamicPixelsPerUnit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_DynamicPixelsPerUnit;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_DynamicPixelsPerUnit = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600051C RID: 1308 RVA: 0x0001AF65 File Offset: 0x00019365
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.m_Canvas = base.GetComponent<Canvas>();
|
||||
this.Handle();
|
||||
}
|
||||
|
||||
// Token: 0x0600051D RID: 1309 RVA: 0x0001AF80 File Offset: 0x00019380
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.SetScaleFactor(1f);
|
||||
this.SetReferencePixelsPerUnit(100f);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x0600051E RID: 1310 RVA: 0x0001AF9F File Offset: 0x0001939F
|
||||
protected virtual void Update()
|
||||
{
|
||||
this.Handle();
|
||||
}
|
||||
|
||||
// Token: 0x0600051F RID: 1311 RVA: 0x0001AFA8 File Offset: 0x000193A8
|
||||
protected virtual void Handle()
|
||||
{
|
||||
if (!(this.m_Canvas == null) && this.m_Canvas.isRootCanvas)
|
||||
{
|
||||
if (this.m_Canvas.renderMode == RenderMode.WorldSpace)
|
||||
{
|
||||
this.HandleWorldCanvas();
|
||||
}
|
||||
else
|
||||
{
|
||||
CanvasScaler.ScaleMode uiScaleMode = this.m_UiScaleMode;
|
||||
if (uiScaleMode != CanvasScaler.ScaleMode.ConstantPixelSize)
|
||||
{
|
||||
if (uiScaleMode != CanvasScaler.ScaleMode.ScaleWithScreenSize)
|
||||
{
|
||||
if (uiScaleMode == CanvasScaler.ScaleMode.ConstantPhysicalSize)
|
||||
{
|
||||
this.HandleConstantPhysicalSize();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.HandleScaleWithScreenSize();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.HandleConstantPixelSize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000520 RID: 1312 RVA: 0x0001B03A File Offset: 0x0001943A
|
||||
protected virtual void HandleWorldCanvas()
|
||||
{
|
||||
this.SetScaleFactor(this.m_DynamicPixelsPerUnit);
|
||||
this.SetReferencePixelsPerUnit(this.m_ReferencePixelsPerUnit);
|
||||
}
|
||||
|
||||
// Token: 0x06000521 RID: 1313 RVA: 0x0001B055 File Offset: 0x00019455
|
||||
protected virtual void HandleConstantPixelSize()
|
||||
{
|
||||
this.SetScaleFactor(this.m_ScaleFactor);
|
||||
this.SetReferencePixelsPerUnit(this.m_ReferencePixelsPerUnit);
|
||||
}
|
||||
|
||||
// Token: 0x06000522 RID: 1314 RVA: 0x0001B070 File Offset: 0x00019470
|
||||
protected virtual void HandleScaleWithScreenSize()
|
||||
{
|
||||
Vector2 vector = new Vector2((float)Screen.width, (float)Screen.height);
|
||||
int targetDisplay = this.m_Canvas.targetDisplay;
|
||||
if (targetDisplay > 0 && targetDisplay < Display.displays.Length)
|
||||
{
|
||||
Display display = Display.displays[targetDisplay];
|
||||
vector = new Vector2((float)display.renderingWidth, (float)display.renderingHeight);
|
||||
}
|
||||
float num = 0f;
|
||||
CanvasScaler.ScreenMatchMode screenMatchMode = this.m_ScreenMatchMode;
|
||||
if (screenMatchMode != CanvasScaler.ScreenMatchMode.MatchWidthOrHeight)
|
||||
{
|
||||
if (screenMatchMode != CanvasScaler.ScreenMatchMode.Expand)
|
||||
{
|
||||
if (screenMatchMode == CanvasScaler.ScreenMatchMode.Shrink)
|
||||
{
|
||||
num = Mathf.Max(vector.x / this.m_ReferenceResolution.x, vector.y / this.m_ReferenceResolution.y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
num = Mathf.Min(vector.x / this.m_ReferenceResolution.x, vector.y / this.m_ReferenceResolution.y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
float num2 = Mathf.Log(vector.x / this.m_ReferenceResolution.x, 2f);
|
||||
float num3 = Mathf.Log(vector.y / this.m_ReferenceResolution.y, 2f);
|
||||
float num4 = Mathf.Lerp(num2, num3, this.m_MatchWidthOrHeight);
|
||||
num = Mathf.Pow(2f, num4);
|
||||
}
|
||||
this.SetScaleFactor(num);
|
||||
this.SetReferencePixelsPerUnit(this.m_ReferencePixelsPerUnit);
|
||||
}
|
||||
|
||||
// Token: 0x06000523 RID: 1315 RVA: 0x0001B1D4 File Offset: 0x000195D4
|
||||
protected virtual void HandleConstantPhysicalSize()
|
||||
{
|
||||
float dpi = Screen.dpi;
|
||||
float num = ((dpi != 0f) ? dpi : this.m_FallbackScreenDPI);
|
||||
float num2 = 1f;
|
||||
switch (this.m_PhysicalUnit)
|
||||
{
|
||||
case CanvasScaler.Unit.Centimeters:
|
||||
num2 = 2.54f;
|
||||
break;
|
||||
case CanvasScaler.Unit.Millimeters:
|
||||
num2 = 25.4f;
|
||||
break;
|
||||
case CanvasScaler.Unit.Inches:
|
||||
num2 = 1f;
|
||||
break;
|
||||
case CanvasScaler.Unit.Points:
|
||||
num2 = 72f;
|
||||
break;
|
||||
case CanvasScaler.Unit.Picas:
|
||||
num2 = 6f;
|
||||
break;
|
||||
}
|
||||
this.SetScaleFactor(num / num2);
|
||||
this.SetReferencePixelsPerUnit(this.m_ReferencePixelsPerUnit * num2 / this.m_DefaultSpriteDPI);
|
||||
}
|
||||
|
||||
// Token: 0x06000524 RID: 1316 RVA: 0x0001B281 File Offset: 0x00019681
|
||||
protected void SetScaleFactor(float scaleFactor)
|
||||
{
|
||||
if (scaleFactor != this.m_PrevScaleFactor)
|
||||
{
|
||||
this.m_Canvas.scaleFactor = scaleFactor;
|
||||
this.m_PrevScaleFactor = scaleFactor;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000525 RID: 1317 RVA: 0x0001B2A8 File Offset: 0x000196A8
|
||||
protected void SetReferencePixelsPerUnit(float referencePixelsPerUnit)
|
||||
{
|
||||
if (referencePixelsPerUnit != this.m_PrevReferencePixelsPerUnit)
|
||||
{
|
||||
this.m_Canvas.referencePixelsPerUnit = referencePixelsPerUnit;
|
||||
this.m_PrevReferencePixelsPerUnit = referencePixelsPerUnit;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000263 RID: 611
|
||||
[Tooltip("Determines how UI elements in the Canvas are scaled.")]
|
||||
[SerializeField]
|
||||
private CanvasScaler.ScaleMode m_UiScaleMode = CanvasScaler.ScaleMode.ConstantPixelSize;
|
||||
|
||||
// Token: 0x04000264 RID: 612
|
||||
[Tooltip("If a sprite has this 'Pixels Per Unit' setting, then one pixel in the sprite will cover one unit in the UI.")]
|
||||
[SerializeField]
|
||||
protected float m_ReferencePixelsPerUnit = 100f;
|
||||
|
||||
// Token: 0x04000265 RID: 613
|
||||
[Tooltip("Scales all UI elements in the Canvas by this factor.")]
|
||||
[SerializeField]
|
||||
protected float m_ScaleFactor = 1f;
|
||||
|
||||
// Token: 0x04000266 RID: 614
|
||||
[Tooltip("The resolution the UI layout is designed for. If the screen resolution is larger, the UI will be scaled up, and if it's smaller, the UI will be scaled down. This is done in accordance with the Screen Match Mode.")]
|
||||
[SerializeField]
|
||||
protected Vector2 m_ReferenceResolution = new Vector2(800f, 600f);
|
||||
|
||||
// Token: 0x04000267 RID: 615
|
||||
[Tooltip("A mode used to scale the canvas area if the aspect ratio of the current resolution doesn't fit the reference resolution.")]
|
||||
[SerializeField]
|
||||
protected CanvasScaler.ScreenMatchMode m_ScreenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight;
|
||||
|
||||
// Token: 0x04000268 RID: 616
|
||||
[Tooltip("Determines if the scaling is using the width or height as reference, or a mix in between.")]
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
protected float m_MatchWidthOrHeight = 0f;
|
||||
|
||||
// Token: 0x04000269 RID: 617
|
||||
private const float kLogBase = 2f;
|
||||
|
||||
// Token: 0x0400026A RID: 618
|
||||
[Tooltip("The physical unit to specify positions and sizes in.")]
|
||||
[SerializeField]
|
||||
protected CanvasScaler.Unit m_PhysicalUnit = CanvasScaler.Unit.Points;
|
||||
|
||||
// Token: 0x0400026B RID: 619
|
||||
[Tooltip("The DPI to assume if the screen DPI is not known.")]
|
||||
[SerializeField]
|
||||
protected float m_FallbackScreenDPI = 96f;
|
||||
|
||||
// Token: 0x0400026C RID: 620
|
||||
[Tooltip("The pixels per inch to use for sprites that have a 'Pixels Per Unit' setting that matches the 'Reference Pixels Per Unit' setting.")]
|
||||
[SerializeField]
|
||||
protected float m_DefaultSpriteDPI = 96f;
|
||||
|
||||
// Token: 0x0400026D RID: 621
|
||||
[Tooltip("The amount of pixels per unit to use for dynamically created bitmaps in the UI, such as Text.")]
|
||||
[SerializeField]
|
||||
protected float m_DynamicPixelsPerUnit = 1f;
|
||||
|
||||
// Token: 0x0400026E RID: 622
|
||||
private Canvas m_Canvas;
|
||||
|
||||
// Token: 0x0400026F RID: 623
|
||||
[NonSerialized]
|
||||
private float m_PrevScaleFactor = 1f;
|
||||
|
||||
// Token: 0x04000270 RID: 624
|
||||
[NonSerialized]
|
||||
private float m_PrevReferencePixelsPerUnit = 100f;
|
||||
|
||||
// Token: 0x0200008A RID: 138
|
||||
public enum ScaleMode
|
||||
{
|
||||
// Token: 0x04000272 RID: 626
|
||||
ConstantPixelSize,
|
||||
// Token: 0x04000273 RID: 627
|
||||
ScaleWithScreenSize,
|
||||
// Token: 0x04000274 RID: 628
|
||||
ConstantPhysicalSize
|
||||
}
|
||||
|
||||
// Token: 0x0200008B RID: 139
|
||||
public enum ScreenMatchMode
|
||||
{
|
||||
// Token: 0x04000276 RID: 630
|
||||
MatchWidthOrHeight,
|
||||
// Token: 0x04000277 RID: 631
|
||||
Expand,
|
||||
// Token: 0x04000278 RID: 632
|
||||
Shrink
|
||||
}
|
||||
|
||||
// Token: 0x0200008C RID: 140
|
||||
public enum Unit
|
||||
{
|
||||
// Token: 0x0400027A RID: 634
|
||||
Centimeters,
|
||||
// Token: 0x0400027B RID: 635
|
||||
Millimeters,
|
||||
// Token: 0x0400027C RID: 636
|
||||
Inches,
|
||||
// Token: 0x0400027D RID: 637
|
||||
Points,
|
||||
// Token: 0x0400027E RID: 638
|
||||
Picas
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200003C RID: 60
|
||||
public enum CanvasUpdate
|
||||
{
|
||||
// Token: 0x040000C0 RID: 192
|
||||
Prelayout,
|
||||
// Token: 0x040000C1 RID: 193
|
||||
Layout,
|
||||
// Token: 0x040000C2 RID: 194
|
||||
PostLayout,
|
||||
// Token: 0x040000C3 RID: 195
|
||||
PreRender,
|
||||
// Token: 0x040000C4 RID: 196
|
||||
LatePreRender,
|
||||
// Token: 0x040000C5 RID: 197
|
||||
MaxUpdateValue
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,273 @@
|
||||
using System;
|
||||
using UnityEngine.UI.Collections;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200003E RID: 62
|
||||
public class CanvasUpdateRegistry
|
||||
{
|
||||
// Token: 0x0600018E RID: 398 RVA: 0x00007D71 File Offset: 0x00006171
|
||||
protected CanvasUpdateRegistry()
|
||||
{
|
||||
Canvas.willRenderCanvases += this.PerformUpdate;
|
||||
}
|
||||
|
||||
// Token: 0x1700006A RID: 106
|
||||
// (get) Token: 0x0600018F RID: 399 RVA: 0x00007DA4 File Offset: 0x000061A4
|
||||
public static CanvasUpdateRegistry instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (CanvasUpdateRegistry.s_Instance == null)
|
||||
{
|
||||
CanvasUpdateRegistry.s_Instance = new CanvasUpdateRegistry();
|
||||
}
|
||||
return CanvasUpdateRegistry.s_Instance;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000190 RID: 400 RVA: 0x00007DD4 File Offset: 0x000061D4
|
||||
private bool ObjectValidForUpdate(ICanvasElement element)
|
||||
{
|
||||
bool flag = element != null;
|
||||
bool flag2 = element is Object;
|
||||
if (flag2)
|
||||
{
|
||||
flag = element as Object != null;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000191 RID: 401 RVA: 0x00007E10 File Offset: 0x00006210
|
||||
private void CleanInvalidItems()
|
||||
{
|
||||
for (int i = this.m_LayoutRebuildQueue.Count - 1; i >= 0; i--)
|
||||
{
|
||||
ICanvasElement canvasElement = this.m_LayoutRebuildQueue[i];
|
||||
if (canvasElement == null)
|
||||
{
|
||||
this.m_LayoutRebuildQueue.RemoveAt(i);
|
||||
}
|
||||
else if (canvasElement.IsDestroyed())
|
||||
{
|
||||
this.m_LayoutRebuildQueue.RemoveAt(i);
|
||||
canvasElement.LayoutComplete();
|
||||
}
|
||||
}
|
||||
for (int j = this.m_GraphicRebuildQueue.Count - 1; j >= 0; j--)
|
||||
{
|
||||
ICanvasElement canvasElement2 = this.m_GraphicRebuildQueue[j];
|
||||
if (canvasElement2 == null)
|
||||
{
|
||||
this.m_GraphicRebuildQueue.RemoveAt(j);
|
||||
}
|
||||
else if (canvasElement2.IsDestroyed())
|
||||
{
|
||||
this.m_GraphicRebuildQueue.RemoveAt(j);
|
||||
canvasElement2.GraphicUpdateComplete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000192 RID: 402 RVA: 0x00007EE8 File Offset: 0x000062E8
|
||||
private void PerformUpdate()
|
||||
{
|
||||
UISystemProfilerApi.BeginSample(UISystemProfilerApi.SampleType.Layout);
|
||||
this.CleanInvalidItems();
|
||||
this.m_PerformingLayoutUpdate = true;
|
||||
this.m_LayoutRebuildQueue.Sort(CanvasUpdateRegistry.s_SortLayoutFunction);
|
||||
for (int i = 0; i <= 2; i++)
|
||||
{
|
||||
for (int j = 0; j < this.m_LayoutRebuildQueue.Count; j++)
|
||||
{
|
||||
ICanvasElement canvasElement = CanvasUpdateRegistry.instance.m_LayoutRebuildQueue[j];
|
||||
try
|
||||
{
|
||||
if (this.ObjectValidForUpdate(canvasElement))
|
||||
{
|
||||
canvasElement.Rebuild((CanvasUpdate)i);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogException(ex, canvasElement.transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int k = 0; k < this.m_LayoutRebuildQueue.Count; k++)
|
||||
{
|
||||
this.m_LayoutRebuildQueue[k].LayoutComplete();
|
||||
}
|
||||
CanvasUpdateRegistry.instance.m_LayoutRebuildQueue.Clear();
|
||||
this.m_PerformingLayoutUpdate = false;
|
||||
ClipperRegistry.instance.Cull();
|
||||
this.m_PerformingGraphicUpdate = true;
|
||||
for (int l = 3; l < 5; l++)
|
||||
{
|
||||
for (int m = 0; m < CanvasUpdateRegistry.instance.m_GraphicRebuildQueue.Count; m++)
|
||||
{
|
||||
try
|
||||
{
|
||||
ICanvasElement canvasElement2 = CanvasUpdateRegistry.instance.m_GraphicRebuildQueue[m];
|
||||
if (this.ObjectValidForUpdate(canvasElement2))
|
||||
{
|
||||
canvasElement2.Rebuild((CanvasUpdate)l);
|
||||
}
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
Debug.LogException(ex2, CanvasUpdateRegistry.instance.m_GraphicRebuildQueue[m].transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int n = 0; n < this.m_GraphicRebuildQueue.Count; n++)
|
||||
{
|
||||
this.m_GraphicRebuildQueue[n].GraphicUpdateComplete();
|
||||
}
|
||||
CanvasUpdateRegistry.instance.m_GraphicRebuildQueue.Clear();
|
||||
this.m_PerformingGraphicUpdate = false;
|
||||
UISystemProfilerApi.EndSample(UISystemProfilerApi.SampleType.Layout);
|
||||
}
|
||||
|
||||
// Token: 0x06000193 RID: 403 RVA: 0x000080E4 File Offset: 0x000064E4
|
||||
private static int ParentCount(Transform child)
|
||||
{
|
||||
int num;
|
||||
if (child == null)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Transform transform = child.parent;
|
||||
int num2 = 0;
|
||||
while (transform != null)
|
||||
{
|
||||
num2++;
|
||||
transform = transform.parent;
|
||||
}
|
||||
num = num2;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000194 RID: 404 RVA: 0x00008134 File Offset: 0x00006534
|
||||
private static int SortLayoutList(ICanvasElement x, ICanvasElement y)
|
||||
{
|
||||
Transform transform = x.transform;
|
||||
Transform transform2 = y.transform;
|
||||
return CanvasUpdateRegistry.ParentCount(transform) - CanvasUpdateRegistry.ParentCount(transform2);
|
||||
}
|
||||
|
||||
// Token: 0x06000195 RID: 405 RVA: 0x00008164 File Offset: 0x00006564
|
||||
public static void RegisterCanvasElementForLayoutRebuild(ICanvasElement element)
|
||||
{
|
||||
CanvasUpdateRegistry.instance.InternalRegisterCanvasElementForLayoutRebuild(element);
|
||||
}
|
||||
|
||||
// Token: 0x06000196 RID: 406 RVA: 0x00008174 File Offset: 0x00006574
|
||||
public static bool TryRegisterCanvasElementForLayoutRebuild(ICanvasElement element)
|
||||
{
|
||||
return CanvasUpdateRegistry.instance.InternalRegisterCanvasElementForLayoutRebuild(element);
|
||||
}
|
||||
|
||||
// Token: 0x06000197 RID: 407 RVA: 0x00008194 File Offset: 0x00006594
|
||||
private bool InternalRegisterCanvasElementForLayoutRebuild(ICanvasElement element)
|
||||
{
|
||||
return !this.m_LayoutRebuildQueue.Contains(element) && this.m_LayoutRebuildQueue.AddUnique(element);
|
||||
}
|
||||
|
||||
// Token: 0x06000198 RID: 408 RVA: 0x000081CD File Offset: 0x000065CD
|
||||
public static void RegisterCanvasElementForGraphicRebuild(ICanvasElement element)
|
||||
{
|
||||
CanvasUpdateRegistry.instance.InternalRegisterCanvasElementForGraphicRebuild(element);
|
||||
}
|
||||
|
||||
// Token: 0x06000199 RID: 409 RVA: 0x000081DC File Offset: 0x000065DC
|
||||
public static bool TryRegisterCanvasElementForGraphicRebuild(ICanvasElement element)
|
||||
{
|
||||
return CanvasUpdateRegistry.instance.InternalRegisterCanvasElementForGraphicRebuild(element);
|
||||
}
|
||||
|
||||
// Token: 0x0600019A RID: 410 RVA: 0x000081FC File Offset: 0x000065FC
|
||||
private bool InternalRegisterCanvasElementForGraphicRebuild(ICanvasElement element)
|
||||
{
|
||||
bool flag;
|
||||
if (this.m_PerformingGraphicUpdate)
|
||||
{
|
||||
Debug.LogError(string.Format("Trying to add {0} for graphic rebuild while we are already inside a graphic rebuild loop. This is not supported.", element));
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
flag = this.m_GraphicRebuildQueue.AddUnique(element);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600019B RID: 411 RVA: 0x00008240 File Offset: 0x00006640
|
||||
public static void UnRegisterCanvasElementForRebuild(ICanvasElement element)
|
||||
{
|
||||
CanvasUpdateRegistry.instance.InternalUnRegisterCanvasElementForLayoutRebuild(element);
|
||||
CanvasUpdateRegistry.instance.InternalUnRegisterCanvasElementForGraphicRebuild(element);
|
||||
}
|
||||
|
||||
// Token: 0x0600019C RID: 412 RVA: 0x00008259 File Offset: 0x00006659
|
||||
private void InternalUnRegisterCanvasElementForLayoutRebuild(ICanvasElement element)
|
||||
{
|
||||
if (this.m_PerformingLayoutUpdate)
|
||||
{
|
||||
Debug.LogError(string.Format("Trying to remove {0} from rebuild list while we are already inside a rebuild loop. This is not supported.", element));
|
||||
}
|
||||
else
|
||||
{
|
||||
element.LayoutComplete();
|
||||
CanvasUpdateRegistry.instance.m_LayoutRebuildQueue.Remove(element);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600019D RID: 413 RVA: 0x00008294 File Offset: 0x00006694
|
||||
private void InternalUnRegisterCanvasElementForGraphicRebuild(ICanvasElement element)
|
||||
{
|
||||
if (this.m_PerformingGraphicUpdate)
|
||||
{
|
||||
Debug.LogError(string.Format("Trying to remove {0} from rebuild list while we are already inside a rebuild loop. This is not supported.", element));
|
||||
}
|
||||
else
|
||||
{
|
||||
element.GraphicUpdateComplete();
|
||||
CanvasUpdateRegistry.instance.m_GraphicRebuildQueue.Remove(element);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600019E RID: 414 RVA: 0x000082D0 File Offset: 0x000066D0
|
||||
public static bool IsRebuildingLayout()
|
||||
{
|
||||
return CanvasUpdateRegistry.instance.m_PerformingLayoutUpdate;
|
||||
}
|
||||
|
||||
// Token: 0x0600019F RID: 415 RVA: 0x000082F0 File Offset: 0x000066F0
|
||||
public static bool IsRebuildingGraphics()
|
||||
{
|
||||
return CanvasUpdateRegistry.instance.m_PerformingGraphicUpdate;
|
||||
}
|
||||
|
||||
// Token: 0x040000C6 RID: 198
|
||||
private static CanvasUpdateRegistry s_Instance;
|
||||
|
||||
// Token: 0x040000C7 RID: 199
|
||||
private bool m_PerformingLayoutUpdate;
|
||||
|
||||
// Token: 0x040000C8 RID: 200
|
||||
private bool m_PerformingGraphicUpdate;
|
||||
|
||||
// Token: 0x040000C9 RID: 201
|
||||
private readonly IndexedSet<ICanvasElement> m_LayoutRebuildQueue = new IndexedSet<ICanvasElement>();
|
||||
|
||||
// Token: 0x040000CA RID: 202
|
||||
private readonly IndexedSet<ICanvasElement> m_GraphicRebuildQueue = new IndexedSet<ICanvasElement>();
|
||||
|
||||
// Token: 0x040000CB RID: 203
|
||||
private static readonly Comparison<ICanvasElement> s_SortLayoutFunction = new Comparison<ICanvasElement>(CanvasUpdateRegistry.SortLayoutList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using UnityEngine.UI.Collections;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000082 RID: 130
|
||||
public class ClipperRegistry
|
||||
{
|
||||
// Token: 0x060004E9 RID: 1257 RVA: 0x0001A590 File Offset: 0x00018990
|
||||
protected ClipperRegistry()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000157 RID: 343
|
||||
// (get) Token: 0x060004EA RID: 1258 RVA: 0x0001A5B0 File Offset: 0x000189B0
|
||||
public static ClipperRegistry instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ClipperRegistry.s_Instance == null)
|
||||
{
|
||||
ClipperRegistry.s_Instance = new ClipperRegistry();
|
||||
}
|
||||
return ClipperRegistry.s_Instance;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004EB RID: 1259 RVA: 0x0001A5E0 File Offset: 0x000189E0
|
||||
public void Cull()
|
||||
{
|
||||
for (int i = 0; i < this.m_Clippers.Count; i++)
|
||||
{
|
||||
this.m_Clippers[i].PerformClipping();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004EC RID: 1260 RVA: 0x0001A61D File Offset: 0x00018A1D
|
||||
public static void Register(IClipper c)
|
||||
{
|
||||
if (c != null)
|
||||
{
|
||||
ClipperRegistry.instance.m_Clippers.AddUnique(c);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004ED RID: 1261 RVA: 0x0001A63C File Offset: 0x00018A3C
|
||||
public static void Unregister(IClipper c)
|
||||
{
|
||||
ClipperRegistry.instance.m_Clippers.Remove(c);
|
||||
}
|
||||
|
||||
// Token: 0x04000255 RID: 597
|
||||
private static ClipperRegistry s_Instance;
|
||||
|
||||
// Token: 0x04000256 RID: 598
|
||||
private readonly IndexedSet<IClipper> m_Clippers = new IndexedSet<IClipper>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000083 RID: 131
|
||||
public static class Clipping
|
||||
{
|
||||
// Token: 0x060004EE RID: 1262 RVA: 0x0001A650 File Offset: 0x00018A50
|
||||
public static Rect FindCullAndClipWorldRect(List<RectMask2D> rectMaskParents, out bool validRect)
|
||||
{
|
||||
Rect rect;
|
||||
if (rectMaskParents.Count == 0)
|
||||
{
|
||||
validRect = false;
|
||||
rect = default(Rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
Rect rect2 = rectMaskParents[0].canvasRect;
|
||||
for (int i = 0; i < rectMaskParents.Count; i++)
|
||||
{
|
||||
rect2 = Clipping.RectIntersect(rect2, rectMaskParents[i].canvasRect);
|
||||
}
|
||||
bool flag = rect2.width <= 0f || rect2.height <= 0f;
|
||||
if (flag)
|
||||
{
|
||||
validRect = false;
|
||||
rect = default(Rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 vector = new Vector3(rect2.x, rect2.y, 0f);
|
||||
Vector3 vector2 = new Vector3(rect2.x + rect2.width, rect2.y + rect2.height, 0f);
|
||||
validRect = true;
|
||||
rect = new Rect(vector.x, vector.y, vector2.x - vector.x, vector2.y - vector.y);
|
||||
}
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
|
||||
// Token: 0x060004EF RID: 1263 RVA: 0x0001A774 File Offset: 0x00018B74
|
||||
private static Rect RectIntersect(Rect a, Rect b)
|
||||
{
|
||||
float num = Mathf.Max(a.x, b.x);
|
||||
float num2 = Mathf.Min(a.x + a.width, b.x + b.width);
|
||||
float num3 = Mathf.Max(a.y, b.y);
|
||||
float num4 = Mathf.Min(a.y + a.height, b.y + b.height);
|
||||
Rect rect;
|
||||
if (num2 >= num && num4 >= num3)
|
||||
{
|
||||
rect = new Rect(num, num3, num2 - num, num4 - num3);
|
||||
}
|
||||
else
|
||||
{
|
||||
rect = new Rect(0f, 0f, 0f, 0f);
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI.Collections
|
||||
{
|
||||
// Token: 0x020000A0 RID: 160
|
||||
internal class IndexedSet<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable
|
||||
{
|
||||
// Token: 0x060005D5 RID: 1493 RVA: 0x0001D6D3 File Offset: 0x0001BAD3
|
||||
public void Add(T item)
|
||||
{
|
||||
this.m_List.Add(item);
|
||||
this.m_Dictionary.Add(item, this.m_List.Count - 1);
|
||||
}
|
||||
|
||||
// Token: 0x060005D6 RID: 1494 RVA: 0x0001D6FC File Offset: 0x0001BAFC
|
||||
public bool AddUnique(T item)
|
||||
{
|
||||
bool flag;
|
||||
if (this.m_Dictionary.ContainsKey(item))
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_List.Add(item);
|
||||
this.m_Dictionary.Add(item, this.m_List.Count - 1);
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x060005D7 RID: 1495 RVA: 0x0001D750 File Offset: 0x0001BB50
|
||||
public bool Remove(T item)
|
||||
{
|
||||
int num = -1;
|
||||
bool flag;
|
||||
if (!this.m_Dictionary.TryGetValue(item, out num))
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.RemoveAt(num);
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x060005D8 RID: 1496 RVA: 0x0001D789 File Offset: 0x0001BB89
|
||||
public IEnumerator<T> GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Token: 0x060005D9 RID: 1497 RVA: 0x0001D794 File Offset: 0x0001BB94
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return this.GetEnumerator();
|
||||
}
|
||||
|
||||
// Token: 0x060005DA RID: 1498 RVA: 0x0001D7AF File Offset: 0x0001BBAF
|
||||
public void Clear()
|
||||
{
|
||||
this.m_List.Clear();
|
||||
this.m_Dictionary.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x060005DB RID: 1499 RVA: 0x0001D7C8 File Offset: 0x0001BBC8
|
||||
public bool Contains(T item)
|
||||
{
|
||||
return this.m_Dictionary.ContainsKey(item);
|
||||
}
|
||||
|
||||
// Token: 0x060005DC RID: 1500 RVA: 0x0001D7E9 File Offset: 0x0001BBE9
|
||||
public void CopyTo(T[] array, int arrayIndex)
|
||||
{
|
||||
this.m_List.CopyTo(array, arrayIndex);
|
||||
}
|
||||
|
||||
// Token: 0x17000192 RID: 402
|
||||
// (get) Token: 0x060005DD RID: 1501 RVA: 0x0001D7FC File Offset: 0x0001BBFC
|
||||
public int Count
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_List.Count;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000193 RID: 403
|
||||
// (get) Token: 0x060005DE RID: 1502 RVA: 0x0001D81C File Offset: 0x0001BC1C
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005DF RID: 1503 RVA: 0x0001D834 File Offset: 0x0001BC34
|
||||
public int IndexOf(T item)
|
||||
{
|
||||
int num = -1;
|
||||
this.m_Dictionary.TryGetValue(item, out num);
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x060005E0 RID: 1504 RVA: 0x0001D85B File Offset: 0x0001BC5B
|
||||
public void Insert(int index, T item)
|
||||
{
|
||||
throw new NotSupportedException("Random Insertion is semantically invalid, since this structure does not guarantee ordering.");
|
||||
}
|
||||
|
||||
// Token: 0x060005E1 RID: 1505 RVA: 0x0001D868 File Offset: 0x0001BC68
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
T t = this.m_List[index];
|
||||
this.m_Dictionary.Remove(t);
|
||||
if (index == this.m_List.Count - 1)
|
||||
{
|
||||
this.m_List.RemoveAt(index);
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = this.m_List.Count - 1;
|
||||
T t2 = this.m_List[num];
|
||||
this.m_List[index] = t2;
|
||||
this.m_Dictionary[t2] = index;
|
||||
this.m_List.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000194 RID: 404
|
||||
public T this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_List[index];
|
||||
}
|
||||
set
|
||||
{
|
||||
T t = this.m_List[index];
|
||||
this.m_Dictionary.Remove(t);
|
||||
this.m_List[index] = value;
|
||||
this.m_Dictionary.Add(t, index);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005E4 RID: 1508 RVA: 0x0001D960 File Offset: 0x0001BD60
|
||||
public void RemoveAll(Predicate<T> match)
|
||||
{
|
||||
int i = 0;
|
||||
while (i < this.m_List.Count)
|
||||
{
|
||||
T t = this.m_List[i];
|
||||
if (match(t))
|
||||
{
|
||||
this.Remove(t);
|
||||
}
|
||||
else
|
||||
{
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005E5 RID: 1509 RVA: 0x0001D9B4 File Offset: 0x0001BDB4
|
||||
public void Sort(Comparison<T> sortLayoutFunction)
|
||||
{
|
||||
this.m_List.Sort(sortLayoutFunction);
|
||||
for (int i = 0; i < this.m_List.Count; i++)
|
||||
{
|
||||
T t = this.m_List[i];
|
||||
this.m_Dictionary[t] = i;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040002BF RID: 703
|
||||
private readonly List<T> m_List = new List<T>();
|
||||
|
||||
// Token: 0x040002C0 RID: 704
|
||||
private Dictionary<T, int> m_Dictionary = new Dictionary<T, int>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200003F RID: 63
|
||||
[Serializable]
|
||||
public struct ColorBlock : IEquatable<ColorBlock>
|
||||
{
|
||||
// Token: 0x1700006B RID: 107
|
||||
// (get) Token: 0x060001A1 RID: 417 RVA: 0x00008334 File Offset: 0x00006734
|
||||
// (set) Token: 0x060001A2 RID: 418 RVA: 0x0000834F File Offset: 0x0000674F
|
||||
public Color normalColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_NormalColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_NormalColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006C RID: 108
|
||||
// (get) Token: 0x060001A3 RID: 419 RVA: 0x0000835C File Offset: 0x0000675C
|
||||
// (set) Token: 0x060001A4 RID: 420 RVA: 0x00008377 File Offset: 0x00006777
|
||||
public Color highlightedColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HighlightedColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_HighlightedColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006D RID: 109
|
||||
// (get) Token: 0x060001A5 RID: 421 RVA: 0x00008384 File Offset: 0x00006784
|
||||
// (set) Token: 0x060001A6 RID: 422 RVA: 0x0000839F File Offset: 0x0000679F
|
||||
public Color pressedColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PressedColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_PressedColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006E RID: 110
|
||||
// (get) Token: 0x060001A7 RID: 423 RVA: 0x000083AC File Offset: 0x000067AC
|
||||
// (set) Token: 0x060001A8 RID: 424 RVA: 0x000083C7 File Offset: 0x000067C7
|
||||
public Color disabledColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_DisabledColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_DisabledColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006F RID: 111
|
||||
// (get) Token: 0x060001A9 RID: 425 RVA: 0x000083D4 File Offset: 0x000067D4
|
||||
// (set) Token: 0x060001AA RID: 426 RVA: 0x000083EF File Offset: 0x000067EF
|
||||
public float colorMultiplier
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ColorMultiplier;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ColorMultiplier = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000070 RID: 112
|
||||
// (get) Token: 0x060001AB RID: 427 RVA: 0x000083FC File Offset: 0x000067FC
|
||||
// (set) Token: 0x060001AC RID: 428 RVA: 0x00008417 File Offset: 0x00006817
|
||||
public float fadeDuration
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FadeDuration;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_FadeDuration = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000071 RID: 113
|
||||
// (get) Token: 0x060001AD RID: 429 RVA: 0x00008424 File Offset: 0x00006824
|
||||
public static ColorBlock defaultColorBlock
|
||||
{
|
||||
get
|
||||
{
|
||||
return new ColorBlock
|
||||
{
|
||||
m_NormalColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
|
||||
m_HighlightedColor = new Color32(245, 245, 245, byte.MaxValue),
|
||||
m_PressedColor = new Color32(200, 200, 200, byte.MaxValue),
|
||||
m_DisabledColor = new Color32(200, 200, 200, 128),
|
||||
colorMultiplier = 1f,
|
||||
fadeDuration = 0.1f
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001AE RID: 430 RVA: 0x000084F0 File Offset: 0x000068F0
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj is ColorBlock && this.Equals((ColorBlock)obj);
|
||||
}
|
||||
|
||||
// Token: 0x060001AF RID: 431 RVA: 0x00008524 File Offset: 0x00006924
|
||||
public bool Equals(ColorBlock other)
|
||||
{
|
||||
return this.normalColor == other.normalColor && this.highlightedColor == other.highlightedColor && this.pressedColor == other.pressedColor && this.disabledColor == other.disabledColor && this.colorMultiplier == other.colorMultiplier && this.fadeDuration == other.fadeDuration;
|
||||
}
|
||||
|
||||
// Token: 0x060001B0 RID: 432 RVA: 0x000085BC File Offset: 0x000069BC
|
||||
public static bool operator ==(ColorBlock point1, ColorBlock point2)
|
||||
{
|
||||
return point1.Equals(point2);
|
||||
}
|
||||
|
||||
// Token: 0x060001B1 RID: 433 RVA: 0x000085DC File Offset: 0x000069DC
|
||||
public static bool operator !=(ColorBlock point1, ColorBlock point2)
|
||||
{
|
||||
return !point1.Equals(point2);
|
||||
}
|
||||
|
||||
// Token: 0x060001B2 RID: 434 RVA: 0x000085FC File Offset: 0x000069FC
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
// Token: 0x040000CD RID: 205
|
||||
[FormerlySerializedAs("normalColor")]
|
||||
[SerializeField]
|
||||
private Color m_NormalColor;
|
||||
|
||||
// Token: 0x040000CE RID: 206
|
||||
[FormerlySerializedAs("highlightedColor")]
|
||||
[FormerlySerializedAs("m_SelectedColor")]
|
||||
[SerializeField]
|
||||
private Color m_HighlightedColor;
|
||||
|
||||
// Token: 0x040000CF RID: 207
|
||||
[FormerlySerializedAs("pressedColor")]
|
||||
[SerializeField]
|
||||
private Color m_PressedColor;
|
||||
|
||||
// Token: 0x040000D0 RID: 208
|
||||
[FormerlySerializedAs("disabledColor")]
|
||||
[SerializeField]
|
||||
private Color m_DisabledColor;
|
||||
|
||||
// Token: 0x040000D1 RID: 209
|
||||
[Range(1f, 5f)]
|
||||
[SerializeField]
|
||||
private float m_ColorMultiplier;
|
||||
|
||||
// Token: 0x040000D2 RID: 210
|
||||
[FormerlySerializedAs("fadeDuration")]
|
||||
[SerializeField]
|
||||
private float m_FadeDuration;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
using System;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200008D RID: 141
|
||||
[AddComponentMenu("Layout/Content Size Fitter", 141)]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class ContentSizeFitter : UIBehaviour, ILayoutSelfController, ILayoutController
|
||||
{
|
||||
// Token: 0x06000526 RID: 1318 RVA: 0x0001B2CF File Offset: 0x000196CF
|
||||
protected ContentSizeFitter()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000167 RID: 359
|
||||
// (get) Token: 0x06000527 RID: 1319 RVA: 0x0001B2E8 File Offset: 0x000196E8
|
||||
// (set) Token: 0x06000528 RID: 1320 RVA: 0x0001B303 File Offset: 0x00019703
|
||||
public ContentSizeFitter.FitMode horizontalFit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HorizontalFit;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<ContentSizeFitter.FitMode>(ref this.m_HorizontalFit, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000168 RID: 360
|
||||
// (get) Token: 0x06000529 RID: 1321 RVA: 0x0001B320 File Offset: 0x00019720
|
||||
// (set) Token: 0x0600052A RID: 1322 RVA: 0x0001B33B File Offset: 0x0001973B
|
||||
public ContentSizeFitter.FitMode verticalFit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_VerticalFit;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<ContentSizeFitter.FitMode>(ref this.m_VerticalFit, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000169 RID: 361
|
||||
// (get) Token: 0x0600052B RID: 1323 RVA: 0x0001B358 File Offset: 0x00019758
|
||||
private RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Rect == null)
|
||||
{
|
||||
this.m_Rect = base.GetComponent<RectTransform>();
|
||||
}
|
||||
return this.m_Rect;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600052C RID: 1324 RVA: 0x0001B390 File Offset: 0x00019790
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600052D RID: 1325 RVA: 0x0001B39F File Offset: 0x0001979F
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x0600052E RID: 1326 RVA: 0x0001B3BE File Offset: 0x000197BE
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600052F RID: 1327 RVA: 0x0001B3C8 File Offset: 0x000197C8
|
||||
private void HandleSelfFittingAlongAxis(int axis)
|
||||
{
|
||||
ContentSizeFitter.FitMode fitMode = ((axis != 0) ? this.verticalFit : this.horizontalFit);
|
||||
if (fitMode == ContentSizeFitter.FitMode.Unconstrained)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.rectTransform, DrivenTransformProperties.None);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Tracker.Add(this, this.rectTransform, (axis != 0) ? DrivenTransformProperties.SizeDeltaY : DrivenTransformProperties.SizeDeltaX);
|
||||
if (fitMode == ContentSizeFitter.FitMode.MinSize)
|
||||
{
|
||||
this.rectTransform.SetSizeWithCurrentAnchors((RectTransform.Axis)axis, LayoutUtility.GetMinSize(this.m_Rect, axis));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.rectTransform.SetSizeWithCurrentAnchors((RectTransform.Axis)axis, LayoutUtility.GetPreferredSize(this.m_Rect, axis));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000530 RID: 1328 RVA: 0x0001B470 File Offset: 0x00019870
|
||||
public virtual void SetLayoutHorizontal()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
this.HandleSelfFittingAlongAxis(0);
|
||||
}
|
||||
|
||||
// Token: 0x06000531 RID: 1329 RVA: 0x0001B485 File Offset: 0x00019885
|
||||
public virtual void SetLayoutVertical()
|
||||
{
|
||||
this.HandleSelfFittingAlongAxis(1);
|
||||
}
|
||||
|
||||
// Token: 0x06000532 RID: 1330 RVA: 0x0001B48F File Offset: 0x0001988F
|
||||
protected void SetDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0400027F RID: 639
|
||||
[SerializeField]
|
||||
protected ContentSizeFitter.FitMode m_HorizontalFit = ContentSizeFitter.FitMode.Unconstrained;
|
||||
|
||||
// Token: 0x04000280 RID: 640
|
||||
[SerializeField]
|
||||
protected ContentSizeFitter.FitMode m_VerticalFit = ContentSizeFitter.FitMode.Unconstrained;
|
||||
|
||||
// Token: 0x04000281 RID: 641
|
||||
[NonSerialized]
|
||||
private RectTransform m_Rect;
|
||||
|
||||
// Token: 0x04000282 RID: 642
|
||||
private DrivenRectTransformTracker m_Tracker;
|
||||
|
||||
// Token: 0x0200008E RID: 142
|
||||
public enum FitMode
|
||||
{
|
||||
// Token: 0x04000284 RID: 644
|
||||
Unconstrained,
|
||||
// Token: 0x04000285 RID: 645
|
||||
MinSize,
|
||||
// Token: 0x04000286 RID: 646
|
||||
PreferredSize
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
using System;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace UnityEngine.UI.CoroutineTween
|
||||
{
|
||||
// Token: 0x02000033 RID: 51
|
||||
internal struct ColorTween : ITweenValue
|
||||
{
|
||||
// Token: 0x1700005B RID: 91
|
||||
// (get) Token: 0x06000155 RID: 341 RVA: 0x00006614 File Offset: 0x00004A14
|
||||
// (set) Token: 0x06000156 RID: 342 RVA: 0x0000662F File Offset: 0x00004A2F
|
||||
public Color startColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_StartColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_StartColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700005C RID: 92
|
||||
// (get) Token: 0x06000157 RID: 343 RVA: 0x0000663C File Offset: 0x00004A3C
|
||||
// (set) Token: 0x06000158 RID: 344 RVA: 0x00006657 File Offset: 0x00004A57
|
||||
public Color targetColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_TargetColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_TargetColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700005D RID: 93
|
||||
// (get) Token: 0x06000159 RID: 345 RVA: 0x00006664 File Offset: 0x00004A64
|
||||
// (set) Token: 0x0600015A RID: 346 RVA: 0x0000667F File Offset: 0x00004A7F
|
||||
public ColorTween.ColorTweenMode tweenMode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_TweenMode;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_TweenMode = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700005E RID: 94
|
||||
// (get) Token: 0x0600015B RID: 347 RVA: 0x0000668C File Offset: 0x00004A8C
|
||||
// (set) Token: 0x0600015C RID: 348 RVA: 0x000066A7 File Offset: 0x00004AA7
|
||||
public float duration
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Duration;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Duration = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700005F RID: 95
|
||||
// (get) Token: 0x0600015D RID: 349 RVA: 0x000066B4 File Offset: 0x00004AB4
|
||||
// (set) Token: 0x0600015E RID: 350 RVA: 0x000066CF File Offset: 0x00004ACF
|
||||
public bool ignoreTimeScale
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_IgnoreTimeScale;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_IgnoreTimeScale = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600015F RID: 351 RVA: 0x000066DC File Offset: 0x00004ADC
|
||||
public void TweenValue(float floatPercentage)
|
||||
{
|
||||
if (this.ValidTarget())
|
||||
{
|
||||
Color color = Color.Lerp(this.m_StartColor, this.m_TargetColor, floatPercentage);
|
||||
if (this.m_TweenMode == ColorTween.ColorTweenMode.Alpha)
|
||||
{
|
||||
color.r = this.m_StartColor.r;
|
||||
color.g = this.m_StartColor.g;
|
||||
color.b = this.m_StartColor.b;
|
||||
}
|
||||
else if (this.m_TweenMode == ColorTween.ColorTweenMode.RGB)
|
||||
{
|
||||
color.a = this.m_StartColor.a;
|
||||
}
|
||||
this.m_Target.Invoke(color);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000160 RID: 352 RVA: 0x00006782 File Offset: 0x00004B82
|
||||
public void AddOnChangedCallback(UnityAction<Color> callback)
|
||||
{
|
||||
if (this.m_Target == null)
|
||||
{
|
||||
this.m_Target = new ColorTween.ColorTweenCallback();
|
||||
}
|
||||
this.m_Target.AddListener(callback);
|
||||
}
|
||||
|
||||
// Token: 0x06000161 RID: 353 RVA: 0x000067A8 File Offset: 0x00004BA8
|
||||
public bool GetIgnoreTimescale()
|
||||
{
|
||||
return this.m_IgnoreTimeScale;
|
||||
}
|
||||
|
||||
// Token: 0x06000162 RID: 354 RVA: 0x000067C4 File Offset: 0x00004BC4
|
||||
public float GetDuration()
|
||||
{
|
||||
return this.m_Duration;
|
||||
}
|
||||
|
||||
// Token: 0x06000163 RID: 355 RVA: 0x000067E0 File Offset: 0x00004BE0
|
||||
public bool ValidTarget()
|
||||
{
|
||||
return this.m_Target != null;
|
||||
}
|
||||
|
||||
// Token: 0x040000A5 RID: 165
|
||||
private ColorTween.ColorTweenCallback m_Target;
|
||||
|
||||
// Token: 0x040000A6 RID: 166
|
||||
private Color m_StartColor;
|
||||
|
||||
// Token: 0x040000A7 RID: 167
|
||||
private Color m_TargetColor;
|
||||
|
||||
// Token: 0x040000A8 RID: 168
|
||||
private ColorTween.ColorTweenMode m_TweenMode;
|
||||
|
||||
// Token: 0x040000A9 RID: 169
|
||||
private float m_Duration;
|
||||
|
||||
// Token: 0x040000AA RID: 170
|
||||
private bool m_IgnoreTimeScale;
|
||||
|
||||
// Token: 0x02000034 RID: 52
|
||||
public enum ColorTweenMode
|
||||
{
|
||||
// Token: 0x040000AC RID: 172
|
||||
All,
|
||||
// Token: 0x040000AD RID: 173
|
||||
RGB,
|
||||
// Token: 0x040000AE RID: 174
|
||||
Alpha
|
||||
}
|
||||
|
||||
// Token: 0x02000035 RID: 53
|
||||
public class ColorTweenCallback : UnityEvent<Color>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace UnityEngine.UI.CoroutineTween
|
||||
{
|
||||
// Token: 0x02000036 RID: 54
|
||||
internal struct FloatTween : ITweenValue
|
||||
{
|
||||
// Token: 0x17000060 RID: 96
|
||||
// (get) Token: 0x06000165 RID: 357 RVA: 0x0000680C File Offset: 0x00004C0C
|
||||
// (set) Token: 0x06000166 RID: 358 RVA: 0x00006827 File Offset: 0x00004C27
|
||||
public float startValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_StartValue;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_StartValue = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000061 RID: 97
|
||||
// (get) Token: 0x06000167 RID: 359 RVA: 0x00006834 File Offset: 0x00004C34
|
||||
// (set) Token: 0x06000168 RID: 360 RVA: 0x0000684F File Offset: 0x00004C4F
|
||||
public float targetValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_TargetValue;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_TargetValue = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000062 RID: 98
|
||||
// (get) Token: 0x06000169 RID: 361 RVA: 0x0000685C File Offset: 0x00004C5C
|
||||
// (set) Token: 0x0600016A RID: 362 RVA: 0x00006877 File Offset: 0x00004C77
|
||||
public float duration
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Duration;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Duration = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000063 RID: 99
|
||||
// (get) Token: 0x0600016B RID: 363 RVA: 0x00006884 File Offset: 0x00004C84
|
||||
// (set) Token: 0x0600016C RID: 364 RVA: 0x0000689F File Offset: 0x00004C9F
|
||||
public bool ignoreTimeScale
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_IgnoreTimeScale;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_IgnoreTimeScale = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600016D RID: 365 RVA: 0x000068AC File Offset: 0x00004CAC
|
||||
public void TweenValue(float floatPercentage)
|
||||
{
|
||||
if (this.ValidTarget())
|
||||
{
|
||||
float num = Mathf.Lerp(this.m_StartValue, this.m_TargetValue, floatPercentage);
|
||||
this.m_Target.Invoke(num);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600016E RID: 366 RVA: 0x000068E9 File Offset: 0x00004CE9
|
||||
public void AddOnChangedCallback(UnityAction<float> callback)
|
||||
{
|
||||
if (this.m_Target == null)
|
||||
{
|
||||
this.m_Target = new FloatTween.FloatTweenCallback();
|
||||
}
|
||||
this.m_Target.AddListener(callback);
|
||||
}
|
||||
|
||||
// Token: 0x0600016F RID: 367 RVA: 0x00006910 File Offset: 0x00004D10
|
||||
public bool GetIgnoreTimescale()
|
||||
{
|
||||
return this.m_IgnoreTimeScale;
|
||||
}
|
||||
|
||||
// Token: 0x06000170 RID: 368 RVA: 0x0000692C File Offset: 0x00004D2C
|
||||
public float GetDuration()
|
||||
{
|
||||
return this.m_Duration;
|
||||
}
|
||||
|
||||
// Token: 0x06000171 RID: 369 RVA: 0x00006948 File Offset: 0x00004D48
|
||||
public bool ValidTarget()
|
||||
{
|
||||
return this.m_Target != null;
|
||||
}
|
||||
|
||||
// Token: 0x040000AF RID: 175
|
||||
private FloatTween.FloatTweenCallback m_Target;
|
||||
|
||||
// Token: 0x040000B0 RID: 176
|
||||
private float m_StartValue;
|
||||
|
||||
// Token: 0x040000B1 RID: 177
|
||||
private float m_TargetValue;
|
||||
|
||||
// Token: 0x040000B2 RID: 178
|
||||
private float m_Duration;
|
||||
|
||||
// Token: 0x040000B3 RID: 179
|
||||
private bool m_IgnoreTimeScale;
|
||||
|
||||
// Token: 0x02000037 RID: 55
|
||||
public class FloatTweenCallback : UnityEvent<float>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI.CoroutineTween
|
||||
{
|
||||
// Token: 0x02000032 RID: 50
|
||||
internal interface ITweenValue
|
||||
{
|
||||
// Token: 0x06000151 RID: 337
|
||||
void TweenValue(float floatPercentage);
|
||||
|
||||
// Token: 0x17000059 RID: 89
|
||||
// (get) Token: 0x06000152 RID: 338
|
||||
bool ignoreTimeScale { get; }
|
||||
|
||||
// Token: 0x1700005A RID: 90
|
||||
// (get) Token: 0x06000153 RID: 339
|
||||
float duration { get; }
|
||||
|
||||
// Token: 0x06000154 RID: 340
|
||||
bool ValidTarget();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
namespace UnityEngine.UI.CoroutineTween
|
||||
{
|
||||
// Token: 0x02000038 RID: 56
|
||||
internal class TweenRunner<T> where T : struct, ITweenValue
|
||||
{
|
||||
// Token: 0x06000174 RID: 372 RVA: 0x0000697C File Offset: 0x00004D7C
|
||||
private static IEnumerator Start(T tweenInfo)
|
||||
{
|
||||
if (!tweenInfo.ValidTarget())
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
float elapsedTime = 0f;
|
||||
while (elapsedTime < tweenInfo.duration)
|
||||
{
|
||||
elapsedTime += ((!tweenInfo.ignoreTimeScale) ? Time.deltaTime : Time.unscaledDeltaTime);
|
||||
float percentage = Mathf.Clamp01(elapsedTime / tweenInfo.duration);
|
||||
tweenInfo.TweenValue(percentage);
|
||||
yield return null;
|
||||
}
|
||||
tweenInfo.TweenValue(1f);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x06000175 RID: 373 RVA: 0x0000699E File Offset: 0x00004D9E
|
||||
public void Init(MonoBehaviour coroutineContainer)
|
||||
{
|
||||
this.m_CoroutineContainer = coroutineContainer;
|
||||
}
|
||||
|
||||
// Token: 0x06000176 RID: 374 RVA: 0x000069A8 File Offset: 0x00004DA8
|
||||
public void StartTween(T info)
|
||||
{
|
||||
if (this.m_CoroutineContainer == null)
|
||||
{
|
||||
Debug.LogWarning("Coroutine container not configured... did you forget to call Init?");
|
||||
}
|
||||
else
|
||||
{
|
||||
this.StopTween();
|
||||
if (!this.m_CoroutineContainer.gameObject.activeInHierarchy)
|
||||
{
|
||||
info.TweenValue(1f);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Tween = TweenRunner<T>.Start(info);
|
||||
this.m_CoroutineContainer.StartCoroutine(this.m_Tween);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000177 RID: 375 RVA: 0x00006A28 File Offset: 0x00004E28
|
||||
public void StopTween()
|
||||
{
|
||||
if (this.m_Tween != null)
|
||||
{
|
||||
this.m_CoroutineContainer.StopCoroutine(this.m_Tween);
|
||||
this.m_Tween = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000B4 RID: 180
|
||||
protected MonoBehaviour m_CoroutineContainer;
|
||||
|
||||
// Token: 0x040000B5 RID: 181
|
||||
protected IEnumerator m_Tween;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,514 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000040 RID: 64
|
||||
public static class DefaultControls
|
||||
{
|
||||
// Token: 0x060001B3 RID: 435 RVA: 0x00008624 File Offset: 0x00006A24
|
||||
private static GameObject CreateUIElementRoot(string name, Vector2 size)
|
||||
{
|
||||
GameObject gameObject = new GameObject(name);
|
||||
RectTransform rectTransform = gameObject.AddComponent<RectTransform>();
|
||||
rectTransform.sizeDelta = size;
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001B4 RID: 436 RVA: 0x00008650 File Offset: 0x00006A50
|
||||
private static GameObject CreateUIObject(string name, GameObject parent)
|
||||
{
|
||||
GameObject gameObject = new GameObject(name);
|
||||
gameObject.AddComponent<RectTransform>();
|
||||
DefaultControls.SetParentAndAlign(gameObject, parent);
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001B5 RID: 437 RVA: 0x0000867B File Offset: 0x00006A7B
|
||||
private static void SetDefaultTextValues(Text lbl)
|
||||
{
|
||||
lbl.color = DefaultControls.s_TextColor;
|
||||
lbl.AssignDefaultFont();
|
||||
}
|
||||
|
||||
// Token: 0x060001B6 RID: 438 RVA: 0x00008690 File Offset: 0x00006A90
|
||||
private static void SetDefaultColorTransitionValues(Selectable slider)
|
||||
{
|
||||
ColorBlock colors = slider.colors;
|
||||
colors.highlightedColor = new Color(0.882f, 0.882f, 0.882f);
|
||||
colors.pressedColor = new Color(0.698f, 0.698f, 0.698f);
|
||||
colors.disabledColor = new Color(0.521f, 0.521f, 0.521f);
|
||||
}
|
||||
|
||||
// Token: 0x060001B7 RID: 439 RVA: 0x000086F6 File Offset: 0x00006AF6
|
||||
private static void SetParentAndAlign(GameObject child, GameObject parent)
|
||||
{
|
||||
if (!(parent == null))
|
||||
{
|
||||
child.transform.SetParent(parent.transform, false);
|
||||
DefaultControls.SetLayerRecursively(child, parent.layer);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001B8 RID: 440 RVA: 0x00008728 File Offset: 0x00006B28
|
||||
private static void SetLayerRecursively(GameObject go, int layer)
|
||||
{
|
||||
go.layer = layer;
|
||||
Transform transform = go.transform;
|
||||
for (int i = 0; i < transform.childCount; i++)
|
||||
{
|
||||
DefaultControls.SetLayerRecursively(transform.GetChild(i).gameObject, layer);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001B9 RID: 441 RVA: 0x00008770 File Offset: 0x00006B70
|
||||
public static GameObject CreatePanel(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Panel", DefaultControls.s_ThickElementSize);
|
||||
RectTransform component = gameObject.GetComponent<RectTransform>();
|
||||
component.anchorMin = Vector2.zero;
|
||||
component.anchorMax = Vector2.one;
|
||||
component.anchoredPosition = Vector2.zero;
|
||||
component.sizeDelta = Vector2.zero;
|
||||
Image image = gameObject.AddComponent<Image>();
|
||||
image.sprite = resources.background;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_PanelColor;
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001BA RID: 442 RVA: 0x000087F0 File Offset: 0x00006BF0
|
||||
public static GameObject CreateButton(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Button", DefaultControls.s_ThickElementSize);
|
||||
GameObject gameObject2 = new GameObject("Text");
|
||||
gameObject2.AddComponent<RectTransform>();
|
||||
DefaultControls.SetParentAndAlign(gameObject2, gameObject);
|
||||
Image image = gameObject.AddComponent<Image>();
|
||||
image.sprite = resources.standard;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_DefaultSelectableColor;
|
||||
Button button = gameObject.AddComponent<Button>();
|
||||
DefaultControls.SetDefaultColorTransitionValues(button);
|
||||
Text text = gameObject2.AddComponent<Text>();
|
||||
text.text = "Button";
|
||||
text.alignment = TextAnchor.MiddleCenter;
|
||||
DefaultControls.SetDefaultTextValues(text);
|
||||
RectTransform component = gameObject2.GetComponent<RectTransform>();
|
||||
component.anchorMin = Vector2.zero;
|
||||
component.anchorMax = Vector2.one;
|
||||
component.sizeDelta = Vector2.zero;
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001BB RID: 443 RVA: 0x000088B4 File Offset: 0x00006CB4
|
||||
public static GameObject CreateText(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Text", DefaultControls.s_ThickElementSize);
|
||||
Text text = gameObject.AddComponent<Text>();
|
||||
text.text = "New Text";
|
||||
DefaultControls.SetDefaultTextValues(text);
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001BC RID: 444 RVA: 0x000088F4 File Offset: 0x00006CF4
|
||||
public static GameObject CreateImage(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Image", DefaultControls.s_ImageElementSize);
|
||||
gameObject.AddComponent<Image>();
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001BD RID: 445 RVA: 0x00008924 File Offset: 0x00006D24
|
||||
public static GameObject CreateRawImage(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("RawImage", DefaultControls.s_ImageElementSize);
|
||||
gameObject.AddComponent<RawImage>();
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001BE RID: 446 RVA: 0x00008954 File Offset: 0x00006D54
|
||||
public static GameObject CreateSlider(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Slider", DefaultControls.s_ThinElementSize);
|
||||
GameObject gameObject2 = DefaultControls.CreateUIObject("Background", gameObject);
|
||||
GameObject gameObject3 = DefaultControls.CreateUIObject("Fill Area", gameObject);
|
||||
GameObject gameObject4 = DefaultControls.CreateUIObject("Fill", gameObject3);
|
||||
GameObject gameObject5 = DefaultControls.CreateUIObject("Handle Slide Area", gameObject);
|
||||
GameObject gameObject6 = DefaultControls.CreateUIObject("Handle", gameObject5);
|
||||
Image image = gameObject2.AddComponent<Image>();
|
||||
image.sprite = resources.background;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_DefaultSelectableColor;
|
||||
RectTransform component = gameObject2.GetComponent<RectTransform>();
|
||||
component.anchorMin = new Vector2(0f, 0.25f);
|
||||
component.anchorMax = new Vector2(1f, 0.75f);
|
||||
component.sizeDelta = new Vector2(0f, 0f);
|
||||
RectTransform component2 = gameObject3.GetComponent<RectTransform>();
|
||||
component2.anchorMin = new Vector2(0f, 0.25f);
|
||||
component2.anchorMax = new Vector2(1f, 0.75f);
|
||||
component2.anchoredPosition = new Vector2(-5f, 0f);
|
||||
component2.sizeDelta = new Vector2(-20f, 0f);
|
||||
Image image2 = gameObject4.AddComponent<Image>();
|
||||
image2.sprite = resources.standard;
|
||||
image2.type = Image.Type.Sliced;
|
||||
image2.color = DefaultControls.s_DefaultSelectableColor;
|
||||
RectTransform component3 = gameObject4.GetComponent<RectTransform>();
|
||||
component3.sizeDelta = new Vector2(10f, 0f);
|
||||
RectTransform component4 = gameObject5.GetComponent<RectTransform>();
|
||||
component4.sizeDelta = new Vector2(-20f, 0f);
|
||||
component4.anchorMin = new Vector2(0f, 0f);
|
||||
component4.anchorMax = new Vector2(1f, 1f);
|
||||
Image image3 = gameObject6.AddComponent<Image>();
|
||||
image3.sprite = resources.knob;
|
||||
image3.color = DefaultControls.s_DefaultSelectableColor;
|
||||
RectTransform component5 = gameObject6.GetComponent<RectTransform>();
|
||||
component5.sizeDelta = new Vector2(20f, 0f);
|
||||
Slider slider = gameObject.AddComponent<Slider>();
|
||||
slider.fillRect = gameObject4.GetComponent<RectTransform>();
|
||||
slider.handleRect = gameObject6.GetComponent<RectTransform>();
|
||||
slider.targetGraphic = image3;
|
||||
slider.direction = Slider.Direction.LeftToRight;
|
||||
DefaultControls.SetDefaultColorTransitionValues(slider);
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001BF RID: 447 RVA: 0x00008BA0 File Offset: 0x00006FA0
|
||||
public static GameObject CreateScrollbar(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Scrollbar", DefaultControls.s_ThinElementSize);
|
||||
GameObject gameObject2 = DefaultControls.CreateUIObject("Sliding Area", gameObject);
|
||||
GameObject gameObject3 = DefaultControls.CreateUIObject("Handle", gameObject2);
|
||||
Image image = gameObject.AddComponent<Image>();
|
||||
image.sprite = resources.background;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_DefaultSelectableColor;
|
||||
Image image2 = gameObject3.AddComponent<Image>();
|
||||
image2.sprite = resources.standard;
|
||||
image2.type = Image.Type.Sliced;
|
||||
image2.color = DefaultControls.s_DefaultSelectableColor;
|
||||
RectTransform component = gameObject2.GetComponent<RectTransform>();
|
||||
component.sizeDelta = new Vector2(-20f, -20f);
|
||||
component.anchorMin = Vector2.zero;
|
||||
component.anchorMax = Vector2.one;
|
||||
RectTransform component2 = gameObject3.GetComponent<RectTransform>();
|
||||
component2.sizeDelta = new Vector2(20f, 20f);
|
||||
Scrollbar scrollbar = gameObject.AddComponent<Scrollbar>();
|
||||
scrollbar.handleRect = component2;
|
||||
scrollbar.targetGraphic = image2;
|
||||
DefaultControls.SetDefaultColorTransitionValues(scrollbar);
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001C0 RID: 448 RVA: 0x00008CA8 File Offset: 0x000070A8
|
||||
public static GameObject CreateToggle(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Toggle", DefaultControls.s_ThinElementSize);
|
||||
GameObject gameObject2 = DefaultControls.CreateUIObject("Background", gameObject);
|
||||
GameObject gameObject3 = DefaultControls.CreateUIObject("Checkmark", gameObject2);
|
||||
GameObject gameObject4 = DefaultControls.CreateUIObject("Label", gameObject);
|
||||
Toggle toggle = gameObject.AddComponent<Toggle>();
|
||||
toggle.isOn = true;
|
||||
Image image = gameObject2.AddComponent<Image>();
|
||||
image.sprite = resources.standard;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_DefaultSelectableColor;
|
||||
Image image2 = gameObject3.AddComponent<Image>();
|
||||
image2.sprite = resources.checkmark;
|
||||
Text text = gameObject4.AddComponent<Text>();
|
||||
text.text = "Toggle";
|
||||
DefaultControls.SetDefaultTextValues(text);
|
||||
toggle.graphic = image2;
|
||||
toggle.targetGraphic = image;
|
||||
DefaultControls.SetDefaultColorTransitionValues(toggle);
|
||||
RectTransform component = gameObject2.GetComponent<RectTransform>();
|
||||
component.anchorMin = new Vector2(0f, 1f);
|
||||
component.anchorMax = new Vector2(0f, 1f);
|
||||
component.anchoredPosition = new Vector2(10f, -10f);
|
||||
component.sizeDelta = new Vector2(20f, 20f);
|
||||
RectTransform component2 = gameObject3.GetComponent<RectTransform>();
|
||||
component2.anchorMin = new Vector2(0.5f, 0.5f);
|
||||
component2.anchorMax = new Vector2(0.5f, 0.5f);
|
||||
component2.anchoredPosition = Vector2.zero;
|
||||
component2.sizeDelta = new Vector2(20f, 20f);
|
||||
RectTransform component3 = gameObject4.GetComponent<RectTransform>();
|
||||
component3.anchorMin = new Vector2(0f, 0f);
|
||||
component3.anchorMax = new Vector2(1f, 1f);
|
||||
component3.offsetMin = new Vector2(23f, 1f);
|
||||
component3.offsetMax = new Vector2(-5f, -2f);
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001C1 RID: 449 RVA: 0x00008E90 File Offset: 0x00007290
|
||||
public static GameObject CreateInputField(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("InputField", DefaultControls.s_ThickElementSize);
|
||||
GameObject gameObject2 = DefaultControls.CreateUIObject("Placeholder", gameObject);
|
||||
GameObject gameObject3 = DefaultControls.CreateUIObject("Text", gameObject);
|
||||
Image image = gameObject.AddComponent<Image>();
|
||||
image.sprite = resources.inputField;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_DefaultSelectableColor;
|
||||
InputField inputField = gameObject.AddComponent<InputField>();
|
||||
DefaultControls.SetDefaultColorTransitionValues(inputField);
|
||||
Text text = gameObject3.AddComponent<Text>();
|
||||
text.text = "";
|
||||
text.supportRichText = false;
|
||||
DefaultControls.SetDefaultTextValues(text);
|
||||
Text text2 = gameObject2.AddComponent<Text>();
|
||||
text2.text = "Enter text...";
|
||||
text2.fontStyle = FontStyle.Italic;
|
||||
Color color = text.color;
|
||||
color.a *= 0.5f;
|
||||
text2.color = color;
|
||||
RectTransform component = gameObject3.GetComponent<RectTransform>();
|
||||
component.anchorMin = Vector2.zero;
|
||||
component.anchorMax = Vector2.one;
|
||||
component.sizeDelta = Vector2.zero;
|
||||
component.offsetMin = new Vector2(10f, 6f);
|
||||
component.offsetMax = new Vector2(-10f, -7f);
|
||||
RectTransform component2 = gameObject2.GetComponent<RectTransform>();
|
||||
component2.anchorMin = Vector2.zero;
|
||||
component2.anchorMax = Vector2.one;
|
||||
component2.sizeDelta = Vector2.zero;
|
||||
component2.offsetMin = new Vector2(10f, 6f);
|
||||
component2.offsetMax = new Vector2(-10f, -7f);
|
||||
inputField.textComponent = text;
|
||||
inputField.placeholder = text2;
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001C2 RID: 450 RVA: 0x0000902C File Offset: 0x0000742C
|
||||
public static GameObject CreateDropdown(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Dropdown", DefaultControls.s_ThickElementSize);
|
||||
GameObject gameObject2 = DefaultControls.CreateUIObject("Label", gameObject);
|
||||
GameObject gameObject3 = DefaultControls.CreateUIObject("Arrow", gameObject);
|
||||
GameObject gameObject4 = DefaultControls.CreateUIObject("Template", gameObject);
|
||||
GameObject gameObject5 = DefaultControls.CreateUIObject("Viewport", gameObject4);
|
||||
GameObject gameObject6 = DefaultControls.CreateUIObject("Content", gameObject5);
|
||||
GameObject gameObject7 = DefaultControls.CreateUIObject("Item", gameObject6);
|
||||
GameObject gameObject8 = DefaultControls.CreateUIObject("Item Background", gameObject7);
|
||||
GameObject gameObject9 = DefaultControls.CreateUIObject("Item Checkmark", gameObject7);
|
||||
GameObject gameObject10 = DefaultControls.CreateUIObject("Item Label", gameObject7);
|
||||
GameObject gameObject11 = DefaultControls.CreateScrollbar(resources);
|
||||
gameObject11.name = "Scrollbar";
|
||||
DefaultControls.SetParentAndAlign(gameObject11, gameObject4);
|
||||
Scrollbar component = gameObject11.GetComponent<Scrollbar>();
|
||||
component.SetDirection(Scrollbar.Direction.BottomToTop, true);
|
||||
RectTransform component2 = gameObject11.GetComponent<RectTransform>();
|
||||
component2.anchorMin = Vector2.right;
|
||||
component2.anchorMax = Vector2.one;
|
||||
component2.pivot = Vector2.one;
|
||||
component2.sizeDelta = new Vector2(component2.sizeDelta.x, 0f);
|
||||
Text text = gameObject10.AddComponent<Text>();
|
||||
DefaultControls.SetDefaultTextValues(text);
|
||||
text.alignment = TextAnchor.MiddleLeft;
|
||||
Image image = gameObject8.AddComponent<Image>();
|
||||
image.color = new Color32(245, 245, 245, byte.MaxValue);
|
||||
Image image2 = gameObject9.AddComponent<Image>();
|
||||
image2.sprite = resources.checkmark;
|
||||
Toggle toggle = gameObject7.AddComponent<Toggle>();
|
||||
toggle.targetGraphic = image;
|
||||
toggle.graphic = image2;
|
||||
toggle.isOn = true;
|
||||
Image image3 = gameObject4.AddComponent<Image>();
|
||||
image3.sprite = resources.standard;
|
||||
image3.type = Image.Type.Sliced;
|
||||
ScrollRect scrollRect = gameObject4.AddComponent<ScrollRect>();
|
||||
scrollRect.content = (RectTransform)gameObject6.transform;
|
||||
scrollRect.viewport = (RectTransform)gameObject5.transform;
|
||||
scrollRect.horizontal = false;
|
||||
scrollRect.movementType = ScrollRect.MovementType.Clamped;
|
||||
scrollRect.verticalScrollbar = component;
|
||||
scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
|
||||
scrollRect.verticalScrollbarSpacing = -3f;
|
||||
Mask mask = gameObject5.AddComponent<Mask>();
|
||||
mask.showMaskGraphic = false;
|
||||
Image image4 = gameObject5.AddComponent<Image>();
|
||||
image4.sprite = resources.mask;
|
||||
image4.type = Image.Type.Sliced;
|
||||
Text text2 = gameObject2.AddComponent<Text>();
|
||||
DefaultControls.SetDefaultTextValues(text2);
|
||||
text2.alignment = TextAnchor.MiddleLeft;
|
||||
Image image5 = gameObject3.AddComponent<Image>();
|
||||
image5.sprite = resources.dropdown;
|
||||
Image image6 = gameObject.AddComponent<Image>();
|
||||
image6.sprite = resources.standard;
|
||||
image6.color = DefaultControls.s_DefaultSelectableColor;
|
||||
image6.type = Image.Type.Sliced;
|
||||
Dropdown dropdown = gameObject.AddComponent<Dropdown>();
|
||||
dropdown.targetGraphic = image6;
|
||||
DefaultControls.SetDefaultColorTransitionValues(dropdown);
|
||||
dropdown.template = gameObject4.GetComponent<RectTransform>();
|
||||
dropdown.captionText = text2;
|
||||
dropdown.itemText = text;
|
||||
text.text = "Option A";
|
||||
dropdown.options.Add(new Dropdown.OptionData
|
||||
{
|
||||
text = "Option A"
|
||||
});
|
||||
dropdown.options.Add(new Dropdown.OptionData
|
||||
{
|
||||
text = "Option B"
|
||||
});
|
||||
dropdown.options.Add(new Dropdown.OptionData
|
||||
{
|
||||
text = "Option C"
|
||||
});
|
||||
dropdown.RefreshShownValue();
|
||||
RectTransform component3 = gameObject2.GetComponent<RectTransform>();
|
||||
component3.anchorMin = Vector2.zero;
|
||||
component3.anchorMax = Vector2.one;
|
||||
component3.offsetMin = new Vector2(10f, 6f);
|
||||
component3.offsetMax = new Vector2(-25f, -7f);
|
||||
RectTransform component4 = gameObject3.GetComponent<RectTransform>();
|
||||
component4.anchorMin = new Vector2(1f, 0.5f);
|
||||
component4.anchorMax = new Vector2(1f, 0.5f);
|
||||
component4.sizeDelta = new Vector2(20f, 20f);
|
||||
component4.anchoredPosition = new Vector2(-15f, 0f);
|
||||
RectTransform component5 = gameObject4.GetComponent<RectTransform>();
|
||||
component5.anchorMin = new Vector2(0f, 0f);
|
||||
component5.anchorMax = new Vector2(1f, 0f);
|
||||
component5.pivot = new Vector2(0.5f, 1f);
|
||||
component5.anchoredPosition = new Vector2(0f, 2f);
|
||||
component5.sizeDelta = new Vector2(0f, 150f);
|
||||
RectTransform component6 = gameObject5.GetComponent<RectTransform>();
|
||||
component6.anchorMin = new Vector2(0f, 0f);
|
||||
component6.anchorMax = new Vector2(1f, 1f);
|
||||
component6.sizeDelta = new Vector2(-18f, 0f);
|
||||
component6.pivot = new Vector2(0f, 1f);
|
||||
RectTransform component7 = gameObject6.GetComponent<RectTransform>();
|
||||
component7.anchorMin = new Vector2(0f, 1f);
|
||||
component7.anchorMax = new Vector2(1f, 1f);
|
||||
component7.pivot = new Vector2(0.5f, 1f);
|
||||
component7.anchoredPosition = new Vector2(0f, 0f);
|
||||
component7.sizeDelta = new Vector2(0f, 28f);
|
||||
RectTransform component8 = gameObject7.GetComponent<RectTransform>();
|
||||
component8.anchorMin = new Vector2(0f, 0.5f);
|
||||
component8.anchorMax = new Vector2(1f, 0.5f);
|
||||
component8.sizeDelta = new Vector2(0f, 20f);
|
||||
RectTransform component9 = gameObject8.GetComponent<RectTransform>();
|
||||
component9.anchorMin = Vector2.zero;
|
||||
component9.anchorMax = Vector2.one;
|
||||
component9.sizeDelta = Vector2.zero;
|
||||
RectTransform component10 = gameObject9.GetComponent<RectTransform>();
|
||||
component10.anchorMin = new Vector2(0f, 0.5f);
|
||||
component10.anchorMax = new Vector2(0f, 0.5f);
|
||||
component10.sizeDelta = new Vector2(20f, 20f);
|
||||
component10.anchoredPosition = new Vector2(10f, 0f);
|
||||
RectTransform component11 = gameObject10.GetComponent<RectTransform>();
|
||||
component11.anchorMin = Vector2.zero;
|
||||
component11.anchorMax = Vector2.one;
|
||||
component11.offsetMin = new Vector2(20f, 1f);
|
||||
component11.offsetMax = new Vector2(-10f, -2f);
|
||||
gameObject4.SetActive(false);
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001C3 RID: 451 RVA: 0x0000969C File Offset: 0x00007A9C
|
||||
public static GameObject CreateScrollView(DefaultControls.Resources resources)
|
||||
{
|
||||
GameObject gameObject = DefaultControls.CreateUIElementRoot("Scroll View", new Vector2(200f, 200f));
|
||||
GameObject gameObject2 = DefaultControls.CreateUIObject("Viewport", gameObject);
|
||||
GameObject gameObject3 = DefaultControls.CreateUIObject("Content", gameObject2);
|
||||
GameObject gameObject4 = DefaultControls.CreateScrollbar(resources);
|
||||
gameObject4.name = "Scrollbar Horizontal";
|
||||
DefaultControls.SetParentAndAlign(gameObject4, gameObject);
|
||||
RectTransform component = gameObject4.GetComponent<RectTransform>();
|
||||
component.anchorMin = Vector2.zero;
|
||||
component.anchorMax = Vector2.right;
|
||||
component.pivot = Vector2.zero;
|
||||
component.sizeDelta = new Vector2(0f, component.sizeDelta.y);
|
||||
GameObject gameObject5 = DefaultControls.CreateScrollbar(resources);
|
||||
gameObject5.name = "Scrollbar Vertical";
|
||||
DefaultControls.SetParentAndAlign(gameObject5, gameObject);
|
||||
gameObject5.GetComponent<Scrollbar>().SetDirection(Scrollbar.Direction.BottomToTop, true);
|
||||
RectTransform component2 = gameObject5.GetComponent<RectTransform>();
|
||||
component2.anchorMin = Vector2.right;
|
||||
component2.anchorMax = Vector2.one;
|
||||
component2.pivot = Vector2.one;
|
||||
component2.sizeDelta = new Vector2(component2.sizeDelta.x, 0f);
|
||||
RectTransform component3 = gameObject2.GetComponent<RectTransform>();
|
||||
component3.anchorMin = Vector2.zero;
|
||||
component3.anchorMax = Vector2.one;
|
||||
component3.sizeDelta = Vector2.zero;
|
||||
component3.pivot = Vector2.up;
|
||||
RectTransform component4 = gameObject3.GetComponent<RectTransform>();
|
||||
component4.anchorMin = Vector2.up;
|
||||
component4.anchorMax = Vector2.one;
|
||||
component4.sizeDelta = new Vector2(0f, 300f);
|
||||
component4.pivot = Vector2.up;
|
||||
ScrollRect scrollRect = gameObject.AddComponent<ScrollRect>();
|
||||
scrollRect.content = component4;
|
||||
scrollRect.viewport = component3;
|
||||
scrollRect.horizontalScrollbar = gameObject4.GetComponent<Scrollbar>();
|
||||
scrollRect.verticalScrollbar = gameObject5.GetComponent<Scrollbar>();
|
||||
scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
|
||||
scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
|
||||
scrollRect.horizontalScrollbarSpacing = -3f;
|
||||
scrollRect.verticalScrollbarSpacing = -3f;
|
||||
Image image = gameObject.AddComponent<Image>();
|
||||
image.sprite = resources.background;
|
||||
image.type = Image.Type.Sliced;
|
||||
image.color = DefaultControls.s_PanelColor;
|
||||
Mask mask = gameObject2.AddComponent<Mask>();
|
||||
mask.showMaskGraphic = false;
|
||||
Image image2 = gameObject2.AddComponent<Image>();
|
||||
image2.sprite = resources.mask;
|
||||
image2.type = Image.Type.Sliced;
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x040000D3 RID: 211
|
||||
private const float kWidth = 160f;
|
||||
|
||||
// Token: 0x040000D4 RID: 212
|
||||
private const float kThickHeight = 30f;
|
||||
|
||||
// Token: 0x040000D5 RID: 213
|
||||
private const float kThinHeight = 20f;
|
||||
|
||||
// Token: 0x040000D6 RID: 214
|
||||
private static Vector2 s_ThickElementSize = new Vector2(160f, 30f);
|
||||
|
||||
// Token: 0x040000D7 RID: 215
|
||||
private static Vector2 s_ThinElementSize = new Vector2(160f, 20f);
|
||||
|
||||
// Token: 0x040000D8 RID: 216
|
||||
private static Vector2 s_ImageElementSize = new Vector2(100f, 100f);
|
||||
|
||||
// Token: 0x040000D9 RID: 217
|
||||
private static Color s_DefaultSelectableColor = new Color(1f, 1f, 1f, 1f);
|
||||
|
||||
// Token: 0x040000DA RID: 218
|
||||
private static Color s_PanelColor = new Color(1f, 1f, 1f, 0.392f);
|
||||
|
||||
// Token: 0x040000DB RID: 219
|
||||
private static Color s_TextColor = new Color(0.19607843f, 0.19607843f, 0.19607843f, 1f);
|
||||
|
||||
// Token: 0x02000041 RID: 65
|
||||
public struct Resources
|
||||
{
|
||||
// Token: 0x040000DC RID: 220
|
||||
public Sprite standard;
|
||||
|
||||
// Token: 0x040000DD RID: 221
|
||||
public Sprite background;
|
||||
|
||||
// Token: 0x040000DE RID: 222
|
||||
public Sprite inputField;
|
||||
|
||||
// Token: 0x040000DF RID: 223
|
||||
public Sprite knob;
|
||||
|
||||
// Token: 0x040000E0 RID: 224
|
||||
public Sprite checkmark;
|
||||
|
||||
// Token: 0x040000E1 RID: 225
|
||||
public Sprite dropdown;
|
||||
|
||||
// Token: 0x040000E2 RID: 226
|
||||
public Sprite mask;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,857 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI.CoroutineTween;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000042 RID: 66
|
||||
[AddComponentMenu("UI/Dropdown", 35)]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class Dropdown : Selectable, IPointerClickHandler, ISubmitHandler, ICancelHandler, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x060001C5 RID: 453 RVA: 0x00009997 File Offset: 0x00007D97
|
||||
protected Dropdown()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000072 RID: 114
|
||||
// (get) Token: 0x060001C6 RID: 454 RVA: 0x000099C8 File Offset: 0x00007DC8
|
||||
// (set) Token: 0x060001C7 RID: 455 RVA: 0x000099E3 File Offset: 0x00007DE3
|
||||
public RectTransform template
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Template;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Template = value;
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000073 RID: 115
|
||||
// (get) Token: 0x060001C8 RID: 456 RVA: 0x000099F4 File Offset: 0x00007DF4
|
||||
// (set) Token: 0x060001C9 RID: 457 RVA: 0x00009A0F File Offset: 0x00007E0F
|
||||
public Text captionText
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaptionText;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_CaptionText = value;
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000074 RID: 116
|
||||
// (get) Token: 0x060001CA RID: 458 RVA: 0x00009A20 File Offset: 0x00007E20
|
||||
// (set) Token: 0x060001CB RID: 459 RVA: 0x00009A3B File Offset: 0x00007E3B
|
||||
public Image captionImage
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaptionImage;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_CaptionImage = value;
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000075 RID: 117
|
||||
// (get) Token: 0x060001CC RID: 460 RVA: 0x00009A4C File Offset: 0x00007E4C
|
||||
// (set) Token: 0x060001CD RID: 461 RVA: 0x00009A67 File Offset: 0x00007E67
|
||||
public Text itemText
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ItemText;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ItemText = value;
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000076 RID: 118
|
||||
// (get) Token: 0x060001CE RID: 462 RVA: 0x00009A78 File Offset: 0x00007E78
|
||||
// (set) Token: 0x060001CF RID: 463 RVA: 0x00009A93 File Offset: 0x00007E93
|
||||
public Image itemImage
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ItemImage;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ItemImage = value;
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000077 RID: 119
|
||||
// (get) Token: 0x060001D0 RID: 464 RVA: 0x00009AA4 File Offset: 0x00007EA4
|
||||
// (set) Token: 0x060001D1 RID: 465 RVA: 0x00009AC4 File Offset: 0x00007EC4
|
||||
public List<Dropdown.OptionData> options
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Options.options;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Options.options = value;
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000078 RID: 120
|
||||
// (get) Token: 0x060001D2 RID: 466 RVA: 0x00009ADC File Offset: 0x00007EDC
|
||||
// (set) Token: 0x060001D3 RID: 467 RVA: 0x00009AF7 File Offset: 0x00007EF7
|
||||
public Dropdown.DropdownEvent onValueChanged
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnValueChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_OnValueChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000079 RID: 121
|
||||
// (get) Token: 0x060001D4 RID: 468 RVA: 0x00009B04 File Offset: 0x00007F04
|
||||
// (set) Token: 0x060001D5 RID: 469 RVA: 0x00009B20 File Offset: 0x00007F20
|
||||
public int value
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Value;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!Application.isPlaying || (value != this.m_Value && this.options.Count != 0))
|
||||
{
|
||||
this.m_Value = Mathf.Clamp(value, 0, this.options.Count - 1);
|
||||
this.RefreshShownValue();
|
||||
UISystemProfilerApi.AddMarker("Dropdown.value", this);
|
||||
this.m_OnValueChanged.Invoke(this.m_Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001D6 RID: 470 RVA: 0x00009B98 File Offset: 0x00007F98
|
||||
protected override void Awake()
|
||||
{
|
||||
this.m_AlphaTweenRunner = new TweenRunner<FloatTween>();
|
||||
this.m_AlphaTweenRunner.Init(this);
|
||||
if (this.m_CaptionImage)
|
||||
{
|
||||
this.m_CaptionImage.enabled = this.m_CaptionImage.sprite != null;
|
||||
}
|
||||
if (this.m_Template)
|
||||
{
|
||||
this.m_Template.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001D7 RID: 471 RVA: 0x00009C0C File Offset: 0x0000800C
|
||||
public void RefreshShownValue()
|
||||
{
|
||||
Dropdown.OptionData optionData = Dropdown.s_NoOptionData;
|
||||
if (this.options.Count > 0)
|
||||
{
|
||||
optionData = this.options[Mathf.Clamp(this.m_Value, 0, this.options.Count - 1)];
|
||||
}
|
||||
if (this.m_CaptionText)
|
||||
{
|
||||
if (optionData != null && optionData.text != null)
|
||||
{
|
||||
this.m_CaptionText.text = optionData.text;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_CaptionText.text = "";
|
||||
}
|
||||
}
|
||||
if (this.m_CaptionImage)
|
||||
{
|
||||
if (optionData != null)
|
||||
{
|
||||
this.m_CaptionImage.sprite = optionData.image;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_CaptionImage.sprite = null;
|
||||
}
|
||||
this.m_CaptionImage.enabled = this.m_CaptionImage.sprite != null;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001D8 RID: 472 RVA: 0x00009CF5 File Offset: 0x000080F5
|
||||
public void AddOptions(List<Dropdown.OptionData> options)
|
||||
{
|
||||
this.options.AddRange(options);
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
|
||||
// Token: 0x060001D9 RID: 473 RVA: 0x00009D0C File Offset: 0x0000810C
|
||||
public void AddOptions(List<string> options)
|
||||
{
|
||||
for (int i = 0; i < options.Count; i++)
|
||||
{
|
||||
this.options.Add(new Dropdown.OptionData(options[i]));
|
||||
}
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
|
||||
// Token: 0x060001DA RID: 474 RVA: 0x00009D50 File Offset: 0x00008150
|
||||
public void AddOptions(List<Sprite> options)
|
||||
{
|
||||
for (int i = 0; i < options.Count; i++)
|
||||
{
|
||||
this.options.Add(new Dropdown.OptionData(options[i]));
|
||||
}
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
|
||||
// Token: 0x060001DB RID: 475 RVA: 0x00009D92 File Offset: 0x00008192
|
||||
public void ClearOptions()
|
||||
{
|
||||
this.options.Clear();
|
||||
this.RefreshShownValue();
|
||||
}
|
||||
|
||||
// Token: 0x060001DC RID: 476 RVA: 0x00009DA8 File Offset: 0x000081A8
|
||||
private void SetupTemplate()
|
||||
{
|
||||
this.validTemplate = false;
|
||||
if (!this.m_Template)
|
||||
{
|
||||
Debug.LogError("The dropdown template is not assigned. The template needs to be assigned and must have a child GameObject with a Toggle component serving as the item.", this);
|
||||
}
|
||||
else
|
||||
{
|
||||
GameObject gameObject = this.m_Template.gameObject;
|
||||
gameObject.SetActive(true);
|
||||
Toggle componentInChildren = this.m_Template.GetComponentInChildren<Toggle>();
|
||||
this.validTemplate = true;
|
||||
if (!componentInChildren || componentInChildren.transform == this.template)
|
||||
{
|
||||
this.validTemplate = false;
|
||||
Debug.LogError("The dropdown template is not valid. The template must have a child GameObject with a Toggle component serving as the item.", this.template);
|
||||
}
|
||||
else if (!(componentInChildren.transform.parent is RectTransform))
|
||||
{
|
||||
this.validTemplate = false;
|
||||
Debug.LogError("The dropdown template is not valid. The child GameObject with a Toggle component (the item) must have a RectTransform on its parent.", this.template);
|
||||
}
|
||||
else if (this.itemText != null && !this.itemText.transform.IsChildOf(componentInChildren.transform))
|
||||
{
|
||||
this.validTemplate = false;
|
||||
Debug.LogError("The dropdown template is not valid. The Item Text must be on the item GameObject or children of it.", this.template);
|
||||
}
|
||||
else if (this.itemImage != null && !this.itemImage.transform.IsChildOf(componentInChildren.transform))
|
||||
{
|
||||
this.validTemplate = false;
|
||||
Debug.LogError("The dropdown template is not valid. The Item Image must be on the item GameObject or children of it.", this.template);
|
||||
}
|
||||
if (!this.validTemplate)
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Dropdown.DropdownItem dropdownItem = componentInChildren.gameObject.AddComponent<Dropdown.DropdownItem>();
|
||||
dropdownItem.text = this.m_ItemText;
|
||||
dropdownItem.image = this.m_ItemImage;
|
||||
dropdownItem.toggle = componentInChildren;
|
||||
dropdownItem.rectTransform = (RectTransform)componentInChildren.transform;
|
||||
Canvas orAddComponent = Dropdown.GetOrAddComponent<Canvas>(gameObject);
|
||||
orAddComponent.overrideSorting = true;
|
||||
orAddComponent.sortingOrder = 30000;
|
||||
Dropdown.GetOrAddComponent<GraphicRaycaster>(gameObject);
|
||||
Dropdown.GetOrAddComponent<CanvasGroup>(gameObject);
|
||||
gameObject.SetActive(false);
|
||||
this.validTemplate = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001DD RID: 477 RVA: 0x00009F90 File Offset: 0x00008390
|
||||
private static T GetOrAddComponent<T>(GameObject go) where T : Component
|
||||
{
|
||||
T t = go.GetComponent<T>();
|
||||
if (!t)
|
||||
{
|
||||
t = go.AddComponent<T>();
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
// Token: 0x060001DE RID: 478 RVA: 0x00009FC4 File Offset: 0x000083C4
|
||||
public virtual void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
this.Show();
|
||||
}
|
||||
|
||||
// Token: 0x060001DF RID: 479 RVA: 0x00009FCD File Offset: 0x000083CD
|
||||
public virtual void OnSubmit(BaseEventData eventData)
|
||||
{
|
||||
this.Show();
|
||||
}
|
||||
|
||||
// Token: 0x060001E0 RID: 480 RVA: 0x00009FD6 File Offset: 0x000083D6
|
||||
public virtual void OnCancel(BaseEventData eventData)
|
||||
{
|
||||
this.Hide();
|
||||
}
|
||||
|
||||
// Token: 0x060001E1 RID: 481 RVA: 0x00009FE0 File Offset: 0x000083E0
|
||||
public void Show()
|
||||
{
|
||||
if (this.IsActive() && this.IsInteractable() && !(this.m_Dropdown != null))
|
||||
{
|
||||
if (!this.validTemplate)
|
||||
{
|
||||
this.SetupTemplate();
|
||||
if (!this.validTemplate)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
List<Canvas> list = ListPool<Canvas>.Get();
|
||||
base.gameObject.GetComponentsInParent<Canvas>(false, list);
|
||||
if (list.Count != 0)
|
||||
{
|
||||
Canvas canvas = list[0];
|
||||
ListPool<Canvas>.Release(list);
|
||||
this.m_Template.gameObject.SetActive(true);
|
||||
this.m_Dropdown = this.CreateDropdownList(this.m_Template.gameObject);
|
||||
this.m_Dropdown.name = "Dropdown List";
|
||||
this.m_Dropdown.SetActive(true);
|
||||
RectTransform rectTransform = this.m_Dropdown.transform as RectTransform;
|
||||
rectTransform.SetParent(this.m_Template.transform.parent, false);
|
||||
Dropdown.DropdownItem componentInChildren = this.m_Dropdown.GetComponentInChildren<Dropdown.DropdownItem>();
|
||||
GameObject gameObject = componentInChildren.rectTransform.parent.gameObject;
|
||||
RectTransform rectTransform2 = gameObject.transform as RectTransform;
|
||||
componentInChildren.rectTransform.gameObject.SetActive(true);
|
||||
Rect rect = rectTransform2.rect;
|
||||
Rect rect2 = componentInChildren.rectTransform.rect;
|
||||
Vector2 vector = rect2.min - rect.min + componentInChildren.rectTransform.localPosition;
|
||||
Vector2 vector2 = rect2.max - rect.max + componentInChildren.rectTransform.localPosition;
|
||||
Vector2 size = rect2.size;
|
||||
this.m_Items.Clear();
|
||||
Toggle toggle = null;
|
||||
for (int i = 0; i < this.options.Count; i++)
|
||||
{
|
||||
Dropdown.OptionData optionData = this.options[i];
|
||||
Dropdown.DropdownItem item = this.AddItem(optionData, this.value == i, componentInChildren, this.m_Items);
|
||||
if (!(item == null))
|
||||
{
|
||||
item.toggle.isOn = this.value == i;
|
||||
item.toggle.onValueChanged.AddListener(delegate(bool x)
|
||||
{
|
||||
this.OnSelectItem(item.toggle);
|
||||
});
|
||||
if (item.toggle.isOn)
|
||||
{
|
||||
item.toggle.Select();
|
||||
}
|
||||
if (toggle != null)
|
||||
{
|
||||
Navigation navigation = toggle.navigation;
|
||||
Navigation navigation2 = item.toggle.navigation;
|
||||
navigation.mode = Navigation.Mode.Explicit;
|
||||
navigation2.mode = Navigation.Mode.Explicit;
|
||||
navigation.selectOnDown = item.toggle;
|
||||
navigation.selectOnRight = item.toggle;
|
||||
navigation2.selectOnLeft = toggle;
|
||||
navigation2.selectOnUp = toggle;
|
||||
toggle.navigation = navigation;
|
||||
item.toggle.navigation = navigation2;
|
||||
}
|
||||
toggle = item.toggle;
|
||||
}
|
||||
}
|
||||
Vector2 sizeDelta = rectTransform2.sizeDelta;
|
||||
sizeDelta.y = size.y * (float)this.m_Items.Count + vector.y - vector2.y;
|
||||
rectTransform2.sizeDelta = sizeDelta;
|
||||
float num = rectTransform.rect.height - rectTransform2.rect.height;
|
||||
if (num > 0f)
|
||||
{
|
||||
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, rectTransform.sizeDelta.y - num);
|
||||
}
|
||||
Vector3[] array = new Vector3[4];
|
||||
rectTransform.GetWorldCorners(array);
|
||||
RectTransform rectTransform3 = canvas.transform as RectTransform;
|
||||
Rect rect3 = rectTransform3.rect;
|
||||
for (int j = 0; j < 2; j++)
|
||||
{
|
||||
bool flag = false;
|
||||
for (int k = 0; k < 4; k++)
|
||||
{
|
||||
Vector3 vector3 = rectTransform3.InverseTransformPoint(array[k]);
|
||||
if (vector3[j] < rect3.min[j] || vector3[j] > rect3.max[j])
|
||||
{
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
RectTransformUtility.FlipLayoutOnAxis(rectTransform, j, false, false);
|
||||
}
|
||||
}
|
||||
for (int l = 0; l < this.m_Items.Count; l++)
|
||||
{
|
||||
RectTransform rectTransform4 = this.m_Items[l].rectTransform;
|
||||
rectTransform4.anchorMin = new Vector2(rectTransform4.anchorMin.x, 0f);
|
||||
rectTransform4.anchorMax = new Vector2(rectTransform4.anchorMax.x, 0f);
|
||||
rectTransform4.anchoredPosition = new Vector2(rectTransform4.anchoredPosition.x, vector.y + size.y * (float)(this.m_Items.Count - 1 - l) + size.y * rectTransform4.pivot.y);
|
||||
rectTransform4.sizeDelta = new Vector2(rectTransform4.sizeDelta.x, size.y);
|
||||
}
|
||||
this.AlphaFadeList(0.15f, 0f, 1f);
|
||||
this.m_Template.gameObject.SetActive(false);
|
||||
componentInChildren.gameObject.SetActive(false);
|
||||
this.m_Blocker = this.CreateBlocker(canvas);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001E2 RID: 482 RVA: 0x0000A5A4 File Offset: 0x000089A4
|
||||
protected virtual GameObject CreateBlocker(Canvas rootCanvas)
|
||||
{
|
||||
GameObject gameObject = new GameObject("Blocker");
|
||||
RectTransform rectTransform = gameObject.AddComponent<RectTransform>();
|
||||
rectTransform.SetParent(rootCanvas.transform, false);
|
||||
rectTransform.anchorMin = Vector3.zero;
|
||||
rectTransform.anchorMax = Vector3.one;
|
||||
rectTransform.sizeDelta = Vector2.zero;
|
||||
Canvas canvas = gameObject.AddComponent<Canvas>();
|
||||
canvas.overrideSorting = true;
|
||||
Canvas component = this.m_Dropdown.GetComponent<Canvas>();
|
||||
canvas.sortingLayerID = component.sortingLayerID;
|
||||
canvas.sortingOrder = component.sortingOrder - 1;
|
||||
gameObject.AddComponent<GraphicRaycaster>();
|
||||
Image image = gameObject.AddComponent<Image>();
|
||||
image.color = Color.clear;
|
||||
Button button = gameObject.AddComponent<Button>();
|
||||
button.onClick.AddListener(new UnityAction(this.Hide));
|
||||
return gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x060001E3 RID: 483 RVA: 0x0000A675 File Offset: 0x00008A75
|
||||
protected virtual void DestroyBlocker(GameObject blocker)
|
||||
{
|
||||
Object.Destroy(blocker);
|
||||
}
|
||||
|
||||
// Token: 0x060001E4 RID: 484 RVA: 0x0000A680 File Offset: 0x00008A80
|
||||
protected virtual GameObject CreateDropdownList(GameObject template)
|
||||
{
|
||||
return Object.Instantiate<GameObject>(template);
|
||||
}
|
||||
|
||||
// Token: 0x060001E5 RID: 485 RVA: 0x0000A69B File Offset: 0x00008A9B
|
||||
protected virtual void DestroyDropdownList(GameObject dropdownList)
|
||||
{
|
||||
Object.Destroy(dropdownList);
|
||||
}
|
||||
|
||||
// Token: 0x060001E6 RID: 486 RVA: 0x0000A6A4 File Offset: 0x00008AA4
|
||||
protected virtual Dropdown.DropdownItem CreateItem(Dropdown.DropdownItem itemTemplate)
|
||||
{
|
||||
return Object.Instantiate<Dropdown.DropdownItem>(itemTemplate);
|
||||
}
|
||||
|
||||
// Token: 0x060001E7 RID: 487 RVA: 0x0000A6BF File Offset: 0x00008ABF
|
||||
protected virtual void DestroyItem(Dropdown.DropdownItem item)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060001E8 RID: 488 RVA: 0x0000A6C4 File Offset: 0x00008AC4
|
||||
private Dropdown.DropdownItem AddItem(Dropdown.OptionData data, bool selected, Dropdown.DropdownItem itemTemplate, List<Dropdown.DropdownItem> items)
|
||||
{
|
||||
Dropdown.DropdownItem dropdownItem = this.CreateItem(itemTemplate);
|
||||
dropdownItem.rectTransform.SetParent(itemTemplate.rectTransform.parent, false);
|
||||
dropdownItem.gameObject.SetActive(true);
|
||||
dropdownItem.gameObject.name = "Item " + items.Count + ((data.text == null) ? "" : (": " + data.text));
|
||||
if (dropdownItem.toggle != null)
|
||||
{
|
||||
dropdownItem.toggle.isOn = false;
|
||||
}
|
||||
if (dropdownItem.text)
|
||||
{
|
||||
dropdownItem.text.text = data.text;
|
||||
}
|
||||
if (dropdownItem.image)
|
||||
{
|
||||
dropdownItem.image.sprite = data.image;
|
||||
dropdownItem.image.enabled = dropdownItem.image.sprite != null;
|
||||
}
|
||||
items.Add(dropdownItem);
|
||||
return dropdownItem;
|
||||
}
|
||||
|
||||
// Token: 0x060001E9 RID: 489 RVA: 0x0000A7D4 File Offset: 0x00008BD4
|
||||
private void AlphaFadeList(float duration, float alpha)
|
||||
{
|
||||
CanvasGroup component = this.m_Dropdown.GetComponent<CanvasGroup>();
|
||||
this.AlphaFadeList(duration, component.alpha, alpha);
|
||||
}
|
||||
|
||||
// Token: 0x060001EA RID: 490 RVA: 0x0000A7FC File Offset: 0x00008BFC
|
||||
private void AlphaFadeList(float duration, float start, float end)
|
||||
{
|
||||
if (!end.Equals(start))
|
||||
{
|
||||
FloatTween floatTween = new FloatTween
|
||||
{
|
||||
duration = duration,
|
||||
startValue = start,
|
||||
targetValue = end
|
||||
};
|
||||
floatTween.AddOnChangedCallback(new UnityAction<float>(this.SetAlpha));
|
||||
floatTween.ignoreTimeScale = true;
|
||||
this.m_AlphaTweenRunner.StartTween(floatTween);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001EB RID: 491 RVA: 0x0000A868 File Offset: 0x00008C68
|
||||
private void SetAlpha(float alpha)
|
||||
{
|
||||
if (this.m_Dropdown)
|
||||
{
|
||||
CanvasGroup component = this.m_Dropdown.GetComponent<CanvasGroup>();
|
||||
component.alpha = alpha;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001EC RID: 492 RVA: 0x0000A8A0 File Offset: 0x00008CA0
|
||||
public void Hide()
|
||||
{
|
||||
if (this.m_Dropdown != null)
|
||||
{
|
||||
this.AlphaFadeList(0.15f, 0f);
|
||||
if (this.IsActive())
|
||||
{
|
||||
base.StartCoroutine(this.DelayedDestroyDropdownList(0.15f));
|
||||
}
|
||||
}
|
||||
if (this.m_Blocker != null)
|
||||
{
|
||||
this.DestroyBlocker(this.m_Blocker);
|
||||
}
|
||||
this.m_Blocker = null;
|
||||
this.Select();
|
||||
}
|
||||
|
||||
// Token: 0x060001ED RID: 493 RVA: 0x0000A918 File Offset: 0x00008D18
|
||||
private IEnumerator DelayedDestroyDropdownList(float delay)
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(delay);
|
||||
for (int i = 0; i < this.m_Items.Count; i++)
|
||||
{
|
||||
if (this.m_Items[i] != null)
|
||||
{
|
||||
this.DestroyItem(this.m_Items[i]);
|
||||
}
|
||||
}
|
||||
this.m_Items.Clear();
|
||||
if (this.m_Dropdown != null)
|
||||
{
|
||||
this.DestroyDropdownList(this.m_Dropdown);
|
||||
}
|
||||
this.m_Dropdown = null;
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x060001EE RID: 494 RVA: 0x0000A944 File Offset: 0x00008D44
|
||||
private void OnSelectItem(Toggle toggle)
|
||||
{
|
||||
if (!toggle.isOn)
|
||||
{
|
||||
toggle.isOn = true;
|
||||
}
|
||||
int num = -1;
|
||||
Transform transform = toggle.transform;
|
||||
Transform parent = transform.parent;
|
||||
for (int i = 0; i < parent.childCount; i++)
|
||||
{
|
||||
if (parent.GetChild(i) == transform)
|
||||
{
|
||||
num = i - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (num >= 0)
|
||||
{
|
||||
this.value = num;
|
||||
this.Hide();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000E3 RID: 227
|
||||
[SerializeField]
|
||||
private RectTransform m_Template;
|
||||
|
||||
// Token: 0x040000E4 RID: 228
|
||||
[SerializeField]
|
||||
private Text m_CaptionText;
|
||||
|
||||
// Token: 0x040000E5 RID: 229
|
||||
[SerializeField]
|
||||
private Image m_CaptionImage;
|
||||
|
||||
// Token: 0x040000E6 RID: 230
|
||||
[Space]
|
||||
[SerializeField]
|
||||
private Text m_ItemText;
|
||||
|
||||
// Token: 0x040000E7 RID: 231
|
||||
[SerializeField]
|
||||
private Image m_ItemImage;
|
||||
|
||||
// Token: 0x040000E8 RID: 232
|
||||
[Space]
|
||||
[SerializeField]
|
||||
private int m_Value;
|
||||
|
||||
// Token: 0x040000E9 RID: 233
|
||||
[Space]
|
||||
[SerializeField]
|
||||
private Dropdown.OptionDataList m_Options = new Dropdown.OptionDataList();
|
||||
|
||||
// Token: 0x040000EA RID: 234
|
||||
[Space]
|
||||
[SerializeField]
|
||||
private Dropdown.DropdownEvent m_OnValueChanged = new Dropdown.DropdownEvent();
|
||||
|
||||
// Token: 0x040000EB RID: 235
|
||||
private GameObject m_Dropdown;
|
||||
|
||||
// Token: 0x040000EC RID: 236
|
||||
private GameObject m_Blocker;
|
||||
|
||||
// Token: 0x040000ED RID: 237
|
||||
private List<Dropdown.DropdownItem> m_Items = new List<Dropdown.DropdownItem>();
|
||||
|
||||
// Token: 0x040000EE RID: 238
|
||||
private TweenRunner<FloatTween> m_AlphaTweenRunner;
|
||||
|
||||
// Token: 0x040000EF RID: 239
|
||||
private bool validTemplate = false;
|
||||
|
||||
// Token: 0x040000F0 RID: 240
|
||||
private static Dropdown.OptionData s_NoOptionData = new Dropdown.OptionData();
|
||||
|
||||
// Token: 0x02000043 RID: 67
|
||||
protected internal class DropdownItem : MonoBehaviour, IPointerEnterHandler, ICancelHandler, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x1700007A RID: 122
|
||||
// (get) Token: 0x060001F1 RID: 497 RVA: 0x0000A9D8 File Offset: 0x00008DD8
|
||||
// (set) Token: 0x060001F2 RID: 498 RVA: 0x0000A9F3 File Offset: 0x00008DF3
|
||||
public Text text
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Text = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007B RID: 123
|
||||
// (get) Token: 0x060001F3 RID: 499 RVA: 0x0000AA00 File Offset: 0x00008E00
|
||||
// (set) Token: 0x060001F4 RID: 500 RVA: 0x0000AA1B File Offset: 0x00008E1B
|
||||
public Image image
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Image;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Image = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007C RID: 124
|
||||
// (get) Token: 0x060001F5 RID: 501 RVA: 0x0000AA28 File Offset: 0x00008E28
|
||||
// (set) Token: 0x060001F6 RID: 502 RVA: 0x0000AA43 File Offset: 0x00008E43
|
||||
public RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_RectTransform;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_RectTransform = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007D RID: 125
|
||||
// (get) Token: 0x060001F7 RID: 503 RVA: 0x0000AA50 File Offset: 0x00008E50
|
||||
// (set) Token: 0x060001F8 RID: 504 RVA: 0x0000AA6B File Offset: 0x00008E6B
|
||||
public Toggle toggle
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Toggle;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Toggle = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001F9 RID: 505 RVA: 0x0000AA75 File Offset: 0x00008E75
|
||||
public virtual void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
EventSystem.current.SetSelectedGameObject(base.gameObject);
|
||||
}
|
||||
|
||||
// Token: 0x060001FA RID: 506 RVA: 0x0000AA88 File Offset: 0x00008E88
|
||||
public virtual void OnCancel(BaseEventData eventData)
|
||||
{
|
||||
Dropdown componentInParent = base.GetComponentInParent<Dropdown>();
|
||||
if (componentInParent)
|
||||
{
|
||||
componentInParent.Hide();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000F1 RID: 241
|
||||
[SerializeField]
|
||||
private Text m_Text;
|
||||
|
||||
// Token: 0x040000F2 RID: 242
|
||||
[SerializeField]
|
||||
private Image m_Image;
|
||||
|
||||
// Token: 0x040000F3 RID: 243
|
||||
[SerializeField]
|
||||
private RectTransform m_RectTransform;
|
||||
|
||||
// Token: 0x040000F4 RID: 244
|
||||
[SerializeField]
|
||||
private Toggle m_Toggle;
|
||||
}
|
||||
|
||||
// Token: 0x02000044 RID: 68
|
||||
[Serializable]
|
||||
public class OptionData
|
||||
{
|
||||
// Token: 0x060001FB RID: 507 RVA: 0x0000AAAE File Offset: 0x00008EAE
|
||||
public OptionData()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060001FC RID: 508 RVA: 0x0000AAB7 File Offset: 0x00008EB7
|
||||
public OptionData(string text)
|
||||
{
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
// Token: 0x060001FD RID: 509 RVA: 0x0000AAC7 File Offset: 0x00008EC7
|
||||
public OptionData(Sprite image)
|
||||
{
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
// Token: 0x060001FE RID: 510 RVA: 0x0000AAD7 File Offset: 0x00008ED7
|
||||
public OptionData(string text, Sprite image)
|
||||
{
|
||||
this.text = text;
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
// Token: 0x1700007E RID: 126
|
||||
// (get) Token: 0x060001FF RID: 511 RVA: 0x0000AAF0 File Offset: 0x00008EF0
|
||||
// (set) Token: 0x06000200 RID: 512 RVA: 0x0000AB0B File Offset: 0x00008F0B
|
||||
public string text
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Text = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007F RID: 127
|
||||
// (get) Token: 0x06000201 RID: 513 RVA: 0x0000AB18 File Offset: 0x00008F18
|
||||
// (set) Token: 0x06000202 RID: 514 RVA: 0x0000AB33 File Offset: 0x00008F33
|
||||
public Sprite image
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Image;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Image = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000F5 RID: 245
|
||||
[SerializeField]
|
||||
private string m_Text;
|
||||
|
||||
// Token: 0x040000F6 RID: 246
|
||||
[SerializeField]
|
||||
private Sprite m_Image;
|
||||
}
|
||||
|
||||
// Token: 0x02000045 RID: 69
|
||||
[Serializable]
|
||||
public class OptionDataList
|
||||
{
|
||||
// Token: 0x06000203 RID: 515 RVA: 0x0000AB3D File Offset: 0x00008F3D
|
||||
public OptionDataList()
|
||||
{
|
||||
this.options = new List<Dropdown.OptionData>();
|
||||
}
|
||||
|
||||
// Token: 0x17000080 RID: 128
|
||||
// (get) Token: 0x06000204 RID: 516 RVA: 0x0000AB54 File Offset: 0x00008F54
|
||||
// (set) Token: 0x06000205 RID: 517 RVA: 0x0000AB6F File Offset: 0x00008F6F
|
||||
public List<Dropdown.OptionData> options
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Options;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Options = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000F7 RID: 247
|
||||
[SerializeField]
|
||||
private List<Dropdown.OptionData> m_Options;
|
||||
}
|
||||
|
||||
// Token: 0x02000046 RID: 70
|
||||
[Serializable]
|
||||
public class DropdownEvent : UnityEvent<int>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,279 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000047 RID: 71
|
||||
[Serializable]
|
||||
public class FontData : ISerializationCallbackReceiver
|
||||
{
|
||||
// Token: 0x17000081 RID: 129
|
||||
// (get) Token: 0x06000208 RID: 520 RVA: 0x0000AD08 File Offset: 0x00009108
|
||||
public static FontData defaultFontData
|
||||
{
|
||||
get
|
||||
{
|
||||
return new FontData
|
||||
{
|
||||
m_FontSize = 14,
|
||||
m_LineSpacing = 1f,
|
||||
m_FontStyle = FontStyle.Normal,
|
||||
m_BestFit = false,
|
||||
m_MinSize = 10,
|
||||
m_MaxSize = 40,
|
||||
m_Alignment = TextAnchor.UpperLeft,
|
||||
m_HorizontalOverflow = HorizontalWrapMode.Wrap,
|
||||
m_VerticalOverflow = VerticalWrapMode.Truncate,
|
||||
m_RichText = true,
|
||||
m_AlignByGeometry = false
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000082 RID: 130
|
||||
// (get) Token: 0x06000209 RID: 521 RVA: 0x0000AD7C File Offset: 0x0000917C
|
||||
// (set) Token: 0x0600020A RID: 522 RVA: 0x0000AD97 File Offset: 0x00009197
|
||||
public Font font
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Font;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Font = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000083 RID: 131
|
||||
// (get) Token: 0x0600020B RID: 523 RVA: 0x0000ADA4 File Offset: 0x000091A4
|
||||
// (set) Token: 0x0600020C RID: 524 RVA: 0x0000ADBF File Offset: 0x000091BF
|
||||
public int fontSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_FontSize = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000084 RID: 132
|
||||
// (get) Token: 0x0600020D RID: 525 RVA: 0x0000ADCC File Offset: 0x000091CC
|
||||
// (set) Token: 0x0600020E RID: 526 RVA: 0x0000ADE7 File Offset: 0x000091E7
|
||||
public FontStyle fontStyle
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontStyle;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_FontStyle = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000085 RID: 133
|
||||
// (get) Token: 0x0600020F RID: 527 RVA: 0x0000ADF4 File Offset: 0x000091F4
|
||||
// (set) Token: 0x06000210 RID: 528 RVA: 0x0000AE0F File Offset: 0x0000920F
|
||||
public bool bestFit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_BestFit;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_BestFit = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000086 RID: 134
|
||||
// (get) Token: 0x06000211 RID: 529 RVA: 0x0000AE1C File Offset: 0x0000921C
|
||||
// (set) Token: 0x06000212 RID: 530 RVA: 0x0000AE37 File Offset: 0x00009237
|
||||
public int minSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MinSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_MinSize = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000087 RID: 135
|
||||
// (get) Token: 0x06000213 RID: 531 RVA: 0x0000AE44 File Offset: 0x00009244
|
||||
// (set) Token: 0x06000214 RID: 532 RVA: 0x0000AE5F File Offset: 0x0000925F
|
||||
public int maxSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MaxSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_MaxSize = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000088 RID: 136
|
||||
// (get) Token: 0x06000215 RID: 533 RVA: 0x0000AE6C File Offset: 0x0000926C
|
||||
// (set) Token: 0x06000216 RID: 534 RVA: 0x0000AE87 File Offset: 0x00009287
|
||||
public TextAnchor alignment
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Alignment;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Alignment = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000089 RID: 137
|
||||
// (get) Token: 0x06000217 RID: 535 RVA: 0x0000AE94 File Offset: 0x00009294
|
||||
// (set) Token: 0x06000218 RID: 536 RVA: 0x0000AEAF File Offset: 0x000092AF
|
||||
public bool alignByGeometry
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AlignByGeometry;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_AlignByGeometry = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700008A RID: 138
|
||||
// (get) Token: 0x06000219 RID: 537 RVA: 0x0000AEBC File Offset: 0x000092BC
|
||||
// (set) Token: 0x0600021A RID: 538 RVA: 0x0000AED7 File Offset: 0x000092D7
|
||||
public bool richText
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_RichText;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_RichText = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700008B RID: 139
|
||||
// (get) Token: 0x0600021B RID: 539 RVA: 0x0000AEE4 File Offset: 0x000092E4
|
||||
// (set) Token: 0x0600021C RID: 540 RVA: 0x0000AEFF File Offset: 0x000092FF
|
||||
public HorizontalWrapMode horizontalOverflow
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HorizontalOverflow;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_HorizontalOverflow = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700008C RID: 140
|
||||
// (get) Token: 0x0600021D RID: 541 RVA: 0x0000AF0C File Offset: 0x0000930C
|
||||
// (set) Token: 0x0600021E RID: 542 RVA: 0x0000AF27 File Offset: 0x00009327
|
||||
public VerticalWrapMode verticalOverflow
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_VerticalOverflow;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_VerticalOverflow = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700008D RID: 141
|
||||
// (get) Token: 0x0600021F RID: 543 RVA: 0x0000AF34 File Offset: 0x00009334
|
||||
// (set) Token: 0x06000220 RID: 544 RVA: 0x0000AF4F File Offset: 0x0000934F
|
||||
public float lineSpacing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_LineSpacing;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_LineSpacing = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000221 RID: 545 RVA: 0x0000AF59 File Offset: 0x00009359
|
||||
void ISerializationCallbackReceiver.OnBeforeSerialize()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000222 RID: 546 RVA: 0x0000AF5C File Offset: 0x0000935C
|
||||
void ISerializationCallbackReceiver.OnAfterDeserialize()
|
||||
{
|
||||
this.m_FontSize = Mathf.Clamp(this.m_FontSize, 0, 300);
|
||||
this.m_MinSize = Mathf.Clamp(this.m_MinSize, 0, this.m_FontSize);
|
||||
this.m_MaxSize = Mathf.Clamp(this.m_MaxSize, this.m_FontSize, 300);
|
||||
}
|
||||
|
||||
// Token: 0x040000F8 RID: 248
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("font")]
|
||||
private Font m_Font;
|
||||
|
||||
// Token: 0x040000F9 RID: 249
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("fontSize")]
|
||||
private int m_FontSize;
|
||||
|
||||
// Token: 0x040000FA RID: 250
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("fontStyle")]
|
||||
private FontStyle m_FontStyle;
|
||||
|
||||
// Token: 0x040000FB RID: 251
|
||||
[SerializeField]
|
||||
private bool m_BestFit;
|
||||
|
||||
// Token: 0x040000FC RID: 252
|
||||
[SerializeField]
|
||||
private int m_MinSize;
|
||||
|
||||
// Token: 0x040000FD RID: 253
|
||||
[SerializeField]
|
||||
private int m_MaxSize;
|
||||
|
||||
// Token: 0x040000FE RID: 254
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("alignment")]
|
||||
private TextAnchor m_Alignment;
|
||||
|
||||
// Token: 0x040000FF RID: 255
|
||||
[SerializeField]
|
||||
private bool m_AlignByGeometry;
|
||||
|
||||
// Token: 0x04000100 RID: 256
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("richText")]
|
||||
private bool m_RichText;
|
||||
|
||||
// Token: 0x04000101 RID: 257
|
||||
[SerializeField]
|
||||
private HorizontalWrapMode m_HorizontalOverflow;
|
||||
|
||||
// Token: 0x04000102 RID: 258
|
||||
[SerializeField]
|
||||
private VerticalWrapMode m_VerticalOverflow;
|
||||
|
||||
// Token: 0x04000103 RID: 259
|
||||
[SerializeField]
|
||||
private float m_LineSpacing;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000048 RID: 72
|
||||
public static class FontUpdateTracker
|
||||
{
|
||||
// Token: 0x06000223 RID: 547 RVA: 0x0000AFB8 File Offset: 0x000093B8
|
||||
public static void TrackText(Text t)
|
||||
{
|
||||
if (!(t.font == null))
|
||||
{
|
||||
HashSet<Text> hashSet;
|
||||
FontUpdateTracker.m_Tracked.TryGetValue(t.font, out hashSet);
|
||||
if (hashSet == null)
|
||||
{
|
||||
if (FontUpdateTracker.m_Tracked.Count == 0)
|
||||
{
|
||||
Font.textureRebuilt += FontUpdateTracker.RebuildForFont;
|
||||
}
|
||||
hashSet = new HashSet<Text>();
|
||||
FontUpdateTracker.m_Tracked.Add(t.font, hashSet);
|
||||
}
|
||||
if (!hashSet.Contains(t))
|
||||
{
|
||||
hashSet.Add(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000224 RID: 548 RVA: 0x0000B054 File Offset: 0x00009454
|
||||
private static void RebuildForFont(Font f)
|
||||
{
|
||||
HashSet<Text> hashSet;
|
||||
FontUpdateTracker.m_Tracked.TryGetValue(f, out hashSet);
|
||||
if (hashSet != null)
|
||||
{
|
||||
foreach (Text text in hashSet)
|
||||
{
|
||||
text.FontTextureChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000225 RID: 549 RVA: 0x0000B0C8 File Offset: 0x000094C8
|
||||
public static void UntrackText(Text t)
|
||||
{
|
||||
if (!(t.font == null))
|
||||
{
|
||||
HashSet<Text> hashSet;
|
||||
FontUpdateTracker.m_Tracked.TryGetValue(t.font, out hashSet);
|
||||
if (hashSet != null)
|
||||
{
|
||||
hashSet.Remove(t);
|
||||
if (hashSet.Count == 0)
|
||||
{
|
||||
FontUpdateTracker.m_Tracked.Remove(t.font);
|
||||
if (FontUpdateTracker.m_Tracked.Count == 0)
|
||||
{
|
||||
Font.textureRebuilt -= FontUpdateTracker.RebuildForFont;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000104 RID: 260
|
||||
private static Dictionary<Font, HashSet<Text>> m_Tracked = new Dictionary<Font, HashSet<Text>>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,739 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI.CoroutineTween;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000049 RID: 73
|
||||
[DisallowMultipleComponent]
|
||||
[RequireComponent(typeof(CanvasRenderer))]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
[ExecuteInEditMode]
|
||||
public abstract class Graphic : UIBehaviour, ICanvasElement
|
||||
{
|
||||
// Token: 0x06000227 RID: 551 RVA: 0x0000B170 File Offset: 0x00009570
|
||||
protected Graphic()
|
||||
{
|
||||
if (this.m_ColorTweenRunner == null)
|
||||
{
|
||||
this.m_ColorTweenRunner = new TweenRunner<ColorTween>();
|
||||
}
|
||||
this.m_ColorTweenRunner.Init(this);
|
||||
this.useLegacyMeshGeneration = true;
|
||||
}
|
||||
|
||||
// Token: 0x1700008E RID: 142
|
||||
// (get) Token: 0x06000228 RID: 552 RVA: 0x0000B1C0 File Offset: 0x000095C0
|
||||
public static Material defaultGraphicMaterial
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Graphic.s_DefaultUI == null)
|
||||
{
|
||||
Graphic.s_DefaultUI = Canvas.GetDefaultCanvasMaterial();
|
||||
}
|
||||
return Graphic.s_DefaultUI;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700008F RID: 143
|
||||
// (get) Token: 0x06000229 RID: 553 RVA: 0x0000B1F4 File Offset: 0x000095F4
|
||||
// (set) Token: 0x0600022A RID: 554 RVA: 0x0000B20F File Offset: 0x0000960F
|
||||
public virtual Color color
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Color;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetColor(ref this.m_Color, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000090 RID: 144
|
||||
// (get) Token: 0x0600022B RID: 555 RVA: 0x0000B22C File Offset: 0x0000962C
|
||||
// (set) Token: 0x0600022C RID: 556 RVA: 0x0000B247 File Offset: 0x00009647
|
||||
public virtual bool raycastTarget
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_RaycastTarget;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_RaycastTarget = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000091 RID: 145
|
||||
// (get) Token: 0x0600022D RID: 557 RVA: 0x0000B254 File Offset: 0x00009654
|
||||
// (set) Token: 0x0600022E RID: 558 RVA: 0x0000B26E File Offset: 0x0000966E
|
||||
protected bool useLegacyMeshGeneration { get; set; }
|
||||
|
||||
// Token: 0x0600022F RID: 559 RVA: 0x0000B277 File Offset: 0x00009677
|
||||
public virtual void SetAllDirty()
|
||||
{
|
||||
this.SetLayoutDirty();
|
||||
this.SetVerticesDirty();
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
|
||||
// Token: 0x06000230 RID: 560 RVA: 0x0000B28C File Offset: 0x0000968C
|
||||
public virtual void SetLayoutDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
if (this.m_OnDirtyLayoutCallback != null)
|
||||
{
|
||||
this.m_OnDirtyLayoutCallback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000231 RID: 561 RVA: 0x0000B2C0 File Offset: 0x000096C0
|
||||
public virtual void SetVerticesDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.m_VertsDirty = true;
|
||||
CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this);
|
||||
if (this.m_OnDirtyVertsCallback != null)
|
||||
{
|
||||
this.m_OnDirtyVertsCallback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000232 RID: 562 RVA: 0x0000B2F6 File Offset: 0x000096F6
|
||||
public virtual void SetMaterialDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.m_MaterialDirty = true;
|
||||
CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this);
|
||||
if (this.m_OnDirtyMaterialCallback != null)
|
||||
{
|
||||
this.m_OnDirtyMaterialCallback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000233 RID: 563 RVA: 0x0000B32C File Offset: 0x0000972C
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
if (base.gameObject.activeInHierarchy)
|
||||
{
|
||||
if (CanvasUpdateRegistry.IsRebuildingLayout())
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000234 RID: 564 RVA: 0x0000B364 File Offset: 0x00009764
|
||||
protected override void OnBeforeTransformParentChanged()
|
||||
{
|
||||
GraphicRegistry.UnregisterGraphicForCanvas(this.canvas, this);
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
}
|
||||
|
||||
// Token: 0x06000235 RID: 565 RVA: 0x0000B37E File Offset: 0x0000977E
|
||||
protected override void OnTransformParentChanged()
|
||||
{
|
||||
base.OnTransformParentChanged();
|
||||
this.m_Canvas = null;
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.CacheCanvas();
|
||||
GraphicRegistry.RegisterGraphicForCanvas(this.canvas, this);
|
||||
this.SetAllDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000092 RID: 146
|
||||
// (get) Token: 0x06000236 RID: 566 RVA: 0x0000B3B8 File Offset: 0x000097B8
|
||||
public int depth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.canvasRenderer.absoluteDepth;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000093 RID: 147
|
||||
// (get) Token: 0x06000237 RID: 567 RVA: 0x0000B3D8 File Offset: 0x000097D8
|
||||
public RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
RectTransform rectTransform;
|
||||
if ((rectTransform = this.m_RectTransform) == null)
|
||||
{
|
||||
rectTransform = (this.m_RectTransform = base.GetComponent<RectTransform>());
|
||||
}
|
||||
return rectTransform;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000094 RID: 148
|
||||
// (get) Token: 0x06000238 RID: 568 RVA: 0x0000B40C File Offset: 0x0000980C
|
||||
public Canvas canvas
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Canvas == null)
|
||||
{
|
||||
this.CacheCanvas();
|
||||
}
|
||||
return this.m_Canvas;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000239 RID: 569 RVA: 0x0000B440 File Offset: 0x00009840
|
||||
private void CacheCanvas()
|
||||
{
|
||||
List<Canvas> list = ListPool<Canvas>.Get();
|
||||
base.gameObject.GetComponentsInParent<Canvas>(false, list);
|
||||
if (list.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (list[i].isActiveAndEnabled)
|
||||
{
|
||||
this.m_Canvas = list[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Canvas = null;
|
||||
}
|
||||
ListPool<Canvas>.Release(list);
|
||||
}
|
||||
|
||||
// Token: 0x17000095 RID: 149
|
||||
// (get) Token: 0x0600023A RID: 570 RVA: 0x0000B4C0 File Offset: 0x000098C0
|
||||
public CanvasRenderer canvasRenderer
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_CanvasRender == null)
|
||||
{
|
||||
this.m_CanvasRender = base.GetComponent<CanvasRenderer>();
|
||||
}
|
||||
return this.m_CanvasRender;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000096 RID: 150
|
||||
// (get) Token: 0x0600023B RID: 571 RVA: 0x0000B4F8 File Offset: 0x000098F8
|
||||
public virtual Material defaultMaterial
|
||||
{
|
||||
get
|
||||
{
|
||||
return Graphic.defaultGraphicMaterial;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000097 RID: 151
|
||||
// (get) Token: 0x0600023C RID: 572 RVA: 0x0000B514 File Offset: 0x00009914
|
||||
// (set) Token: 0x0600023D RID: 573 RVA: 0x0000B54B File Offset: 0x0000994B
|
||||
public virtual Material material
|
||||
{
|
||||
get
|
||||
{
|
||||
return (!(this.m_Material != null)) ? this.defaultMaterial : this.m_Material;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!(this.m_Material == value))
|
||||
{
|
||||
this.m_Material = value;
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000098 RID: 152
|
||||
// (get) Token: 0x0600023E RID: 574 RVA: 0x0000B574 File Offset: 0x00009974
|
||||
public virtual Material materialForRendering
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
base.GetComponents(typeof(IMaterialModifier), list);
|
||||
Material material = this.material;
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
material = (list[i] as IMaterialModifier).GetModifiedMaterial(material);
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
return material;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000099 RID: 153
|
||||
// (get) Token: 0x0600023F RID: 575 RVA: 0x0000B5D8 File Offset: 0x000099D8
|
||||
public virtual Texture mainTexture
|
||||
{
|
||||
get
|
||||
{
|
||||
return Graphic.s_WhiteTexture;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000240 RID: 576 RVA: 0x0000B5F2 File Offset: 0x000099F2
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.CacheCanvas();
|
||||
GraphicRegistry.RegisterGraphicForCanvas(this.canvas, this);
|
||||
if (Graphic.s_WhiteTexture == null)
|
||||
{
|
||||
Graphic.s_WhiteTexture = Texture2D.whiteTexture;
|
||||
}
|
||||
this.SetAllDirty();
|
||||
}
|
||||
|
||||
// Token: 0x06000241 RID: 577 RVA: 0x0000B630 File Offset: 0x00009A30
|
||||
protected override void OnDisable()
|
||||
{
|
||||
GraphicRegistry.UnregisterGraphicForCanvas(this.canvas, this);
|
||||
CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);
|
||||
if (this.canvasRenderer != null)
|
||||
{
|
||||
this.canvasRenderer.Clear();
|
||||
}
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x06000242 RID: 578 RVA: 0x0000B680 File Offset: 0x00009A80
|
||||
protected override void OnCanvasHierarchyChanged()
|
||||
{
|
||||
Canvas canvas = this.m_Canvas;
|
||||
this.m_Canvas = null;
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.CacheCanvas();
|
||||
if (canvas != this.m_Canvas)
|
||||
{
|
||||
GraphicRegistry.UnregisterGraphicForCanvas(canvas, this);
|
||||
if (this.IsActive())
|
||||
{
|
||||
GraphicRegistry.RegisterGraphicForCanvas(this.canvas, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000243 RID: 579 RVA: 0x0000B6E4 File Offset: 0x00009AE4
|
||||
public virtual void Rebuild(CanvasUpdate update)
|
||||
{
|
||||
if (!this.canvasRenderer.cull)
|
||||
{
|
||||
if (update == CanvasUpdate.PreRender)
|
||||
{
|
||||
if (this.m_VertsDirty)
|
||||
{
|
||||
this.UpdateGeometry();
|
||||
this.m_VertsDirty = false;
|
||||
}
|
||||
if (this.m_MaterialDirty)
|
||||
{
|
||||
this.UpdateMaterial();
|
||||
this.m_MaterialDirty = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000244 RID: 580 RVA: 0x0000B74C File Offset: 0x00009B4C
|
||||
public virtual void LayoutComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000245 RID: 581 RVA: 0x0000B74F File Offset: 0x00009B4F
|
||||
public virtual void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000246 RID: 582 RVA: 0x0000B754 File Offset: 0x00009B54
|
||||
protected virtual void UpdateMaterial()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.canvasRenderer.materialCount = 1;
|
||||
this.canvasRenderer.SetMaterial(this.materialForRendering, 0);
|
||||
this.canvasRenderer.SetTexture(this.mainTexture);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000247 RID: 583 RVA: 0x0000B7A1 File Offset: 0x00009BA1
|
||||
protected virtual void UpdateGeometry()
|
||||
{
|
||||
if (this.useLegacyMeshGeneration)
|
||||
{
|
||||
this.DoLegacyMeshGeneration();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DoMeshGeneration();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000248 RID: 584 RVA: 0x0000B7C0 File Offset: 0x00009BC0
|
||||
private void DoMeshGeneration()
|
||||
{
|
||||
if (this.rectTransform != null && this.rectTransform.rect.width >= 0f && this.rectTransform.rect.height >= 0f)
|
||||
{
|
||||
this.OnPopulateMesh(Graphic.s_VertexHelper);
|
||||
}
|
||||
else
|
||||
{
|
||||
Graphic.s_VertexHelper.Clear();
|
||||
}
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
base.GetComponents(typeof(IMeshModifier), list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
((IMeshModifier)list[i]).ModifyMesh(Graphic.s_VertexHelper);
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
Graphic.s_VertexHelper.FillMesh(Graphic.workerMesh);
|
||||
this.canvasRenderer.SetMesh(Graphic.workerMesh);
|
||||
}
|
||||
|
||||
// Token: 0x06000249 RID: 585 RVA: 0x0000B89C File Offset: 0x00009C9C
|
||||
private void DoLegacyMeshGeneration()
|
||||
{
|
||||
if (this.rectTransform != null && this.rectTransform.rect.width >= 0f && this.rectTransform.rect.height >= 0f)
|
||||
{
|
||||
this.OnPopulateMesh(Graphic.workerMesh);
|
||||
}
|
||||
else
|
||||
{
|
||||
Graphic.workerMesh.Clear();
|
||||
}
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
base.GetComponents(typeof(IMeshModifier), list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
((IMeshModifier)list[i]).ModifyMesh(Graphic.workerMesh);
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
this.canvasRenderer.SetMesh(Graphic.workerMesh);
|
||||
}
|
||||
|
||||
// Token: 0x1700009A RID: 154
|
||||
// (get) Token: 0x0600024A RID: 586 RVA: 0x0000B970 File Offset: 0x00009D70
|
||||
protected static Mesh workerMesh
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Graphic.s_Mesh == null)
|
||||
{
|
||||
Graphic.s_Mesh = new Mesh();
|
||||
Graphic.s_Mesh.name = "Shared UI Mesh";
|
||||
Graphic.s_Mesh.hideFlags = HideFlags.HideAndDontSave;
|
||||
}
|
||||
return Graphic.s_Mesh;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600024B RID: 587 RVA: 0x0000B9C1 File Offset: 0x00009DC1
|
||||
[Obsolete("Use OnPopulateMesh instead.", true)]
|
||||
protected virtual void OnFillVBO(List<UIVertex> vbo)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600024C RID: 588 RVA: 0x0000B9C4 File Offset: 0x00009DC4
|
||||
[Obsolete("Use OnPopulateMesh(VertexHelper vh) instead.", false)]
|
||||
protected virtual void OnPopulateMesh(Mesh m)
|
||||
{
|
||||
this.OnPopulateMesh(Graphic.s_VertexHelper);
|
||||
Graphic.s_VertexHelper.FillMesh(m);
|
||||
}
|
||||
|
||||
// Token: 0x0600024D RID: 589 RVA: 0x0000B9E0 File Offset: 0x00009DE0
|
||||
protected virtual void OnPopulateMesh(VertexHelper vh)
|
||||
{
|
||||
Rect pixelAdjustedRect = this.GetPixelAdjustedRect();
|
||||
Vector4 vector = new Vector4(pixelAdjustedRect.x, pixelAdjustedRect.y, pixelAdjustedRect.x + pixelAdjustedRect.width, pixelAdjustedRect.y + pixelAdjustedRect.height);
|
||||
Color32 color = this.color;
|
||||
vh.Clear();
|
||||
vh.AddVert(new Vector3(vector.x, vector.y), color, new Vector2(0f, 0f));
|
||||
vh.AddVert(new Vector3(vector.x, vector.w), color, new Vector2(0f, 1f));
|
||||
vh.AddVert(new Vector3(vector.z, vector.w), color, new Vector2(1f, 1f));
|
||||
vh.AddVert(new Vector3(vector.z, vector.y), color, new Vector2(1f, 0f));
|
||||
vh.AddTriangle(0, 1, 2);
|
||||
vh.AddTriangle(2, 3, 0);
|
||||
}
|
||||
|
||||
// Token: 0x0600024E RID: 590 RVA: 0x0000BAF0 File Offset: 0x00009EF0
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
this.SetAllDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600024F RID: 591 RVA: 0x0000BAF9 File Offset: 0x00009EF9
|
||||
public virtual void SetNativeSize()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000250 RID: 592 RVA: 0x0000BAFC File Offset: 0x00009EFC
|
||||
public virtual bool Raycast(Vector2 sp, Camera eventCamera)
|
||||
{
|
||||
bool flag;
|
||||
if (!base.isActiveAndEnabled)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Transform transform = base.transform;
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
bool flag2 = false;
|
||||
bool flag3 = true;
|
||||
while (transform != null)
|
||||
{
|
||||
transform.GetComponents<Component>(list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
Canvas canvas = list[i] as Canvas;
|
||||
if (canvas != null && canvas.overrideSorting)
|
||||
{
|
||||
flag3 = false;
|
||||
}
|
||||
ICanvasRaycastFilter canvasRaycastFilter = list[i] as ICanvasRaycastFilter;
|
||||
if (canvasRaycastFilter != null)
|
||||
{
|
||||
bool flag4 = true;
|
||||
CanvasGroup canvasGroup = list[i] as CanvasGroup;
|
||||
if (canvasGroup != null)
|
||||
{
|
||||
if (!flag2 && canvasGroup.ignoreParentGroups)
|
||||
{
|
||||
flag2 = true;
|
||||
flag4 = canvasRaycastFilter.IsRaycastLocationValid(sp, eventCamera);
|
||||
}
|
||||
else if (!flag2)
|
||||
{
|
||||
flag4 = canvasRaycastFilter.IsRaycastLocationValid(sp, eventCamera);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
flag4 = canvasRaycastFilter.IsRaycastLocationValid(sp, eventCamera);
|
||||
}
|
||||
if (!flag4)
|
||||
{
|
||||
ListPool<Component>.Release(list);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
transform = ((!flag3) ? null : transform.parent);
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000251 RID: 593 RVA: 0x0000BC4C File Offset: 0x0000A04C
|
||||
public Vector2 PixelAdjustPoint(Vector2 point)
|
||||
{
|
||||
Vector2 vector;
|
||||
if (!this.canvas || this.canvas.renderMode == RenderMode.WorldSpace || this.canvas.scaleFactor == 0f || !this.canvas.pixelPerfect)
|
||||
{
|
||||
vector = point;
|
||||
}
|
||||
else
|
||||
{
|
||||
vector = RectTransformUtility.PixelAdjustPoint(point, base.transform, this.canvas);
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x06000252 RID: 594 RVA: 0x0000BCC4 File Offset: 0x0000A0C4
|
||||
public Rect GetPixelAdjustedRect()
|
||||
{
|
||||
Rect rect;
|
||||
if (!this.canvas || this.canvas.renderMode == RenderMode.WorldSpace || this.canvas.scaleFactor == 0f || !this.canvas.pixelPerfect)
|
||||
{
|
||||
rect = this.rectTransform.rect;
|
||||
}
|
||||
else
|
||||
{
|
||||
rect = RectTransformUtility.PixelAdjustRect(this.rectTransform, this.canvas);
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
|
||||
// Token: 0x06000253 RID: 595 RVA: 0x0000BD41 File Offset: 0x0000A141
|
||||
public virtual void CrossFadeColor(Color targetColor, float duration, bool ignoreTimeScale, bool useAlpha)
|
||||
{
|
||||
this.CrossFadeColor(targetColor, duration, ignoreTimeScale, useAlpha, true);
|
||||
}
|
||||
|
||||
// Token: 0x06000254 RID: 596 RVA: 0x0000BD50 File Offset: 0x0000A150
|
||||
public virtual void CrossFadeColor(Color targetColor, float duration, bool ignoreTimeScale, bool useAlpha, bool useRGB)
|
||||
{
|
||||
if (!(this.canvasRenderer == null) && (useRGB || useAlpha))
|
||||
{
|
||||
if (this.canvasRenderer.GetColor().Equals(targetColor))
|
||||
{
|
||||
this.m_ColorTweenRunner.StopTween();
|
||||
}
|
||||
else
|
||||
{
|
||||
ColorTween.ColorTweenMode colorTweenMode = ((!useRGB || !useAlpha) ? ((!useRGB) ? ColorTween.ColorTweenMode.Alpha : ColorTween.ColorTweenMode.RGB) : ColorTween.ColorTweenMode.All);
|
||||
ColorTween colorTween = new ColorTween
|
||||
{
|
||||
duration = duration,
|
||||
startColor = this.canvasRenderer.GetColor(),
|
||||
targetColor = targetColor
|
||||
};
|
||||
colorTween.AddOnChangedCallback(new UnityAction<Color>(this.canvasRenderer.SetColor));
|
||||
colorTween.ignoreTimeScale = ignoreTimeScale;
|
||||
colorTween.tweenMode = colorTweenMode;
|
||||
this.m_ColorTweenRunner.StartTween(colorTween);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000255 RID: 597 RVA: 0x0000BE3C File Offset: 0x0000A23C
|
||||
private static Color CreateColorFromAlpha(float alpha)
|
||||
{
|
||||
Color black = Color.black;
|
||||
black.a = alpha;
|
||||
return black;
|
||||
}
|
||||
|
||||
// Token: 0x06000256 RID: 598 RVA: 0x0000BE60 File Offset: 0x0000A260
|
||||
public virtual void CrossFadeAlpha(float alpha, float duration, bool ignoreTimeScale)
|
||||
{
|
||||
this.CrossFadeColor(Graphic.CreateColorFromAlpha(alpha), duration, ignoreTimeScale, true, false);
|
||||
}
|
||||
|
||||
// Token: 0x06000257 RID: 599 RVA: 0x0000BE73 File Offset: 0x0000A273
|
||||
public void RegisterDirtyLayoutCallback(UnityAction action)
|
||||
{
|
||||
this.m_OnDirtyLayoutCallback = (UnityAction)Delegate.Combine(this.m_OnDirtyLayoutCallback, action);
|
||||
}
|
||||
|
||||
// Token: 0x06000258 RID: 600 RVA: 0x0000BE8D File Offset: 0x0000A28D
|
||||
public void UnregisterDirtyLayoutCallback(UnityAction action)
|
||||
{
|
||||
this.m_OnDirtyLayoutCallback = (UnityAction)Delegate.Remove(this.m_OnDirtyLayoutCallback, action);
|
||||
}
|
||||
|
||||
// Token: 0x06000259 RID: 601 RVA: 0x0000BEA7 File Offset: 0x0000A2A7
|
||||
public void RegisterDirtyVerticesCallback(UnityAction action)
|
||||
{
|
||||
this.m_OnDirtyVertsCallback = (UnityAction)Delegate.Combine(this.m_OnDirtyVertsCallback, action);
|
||||
}
|
||||
|
||||
// Token: 0x0600025A RID: 602 RVA: 0x0000BEC1 File Offset: 0x0000A2C1
|
||||
public void UnregisterDirtyVerticesCallback(UnityAction action)
|
||||
{
|
||||
this.m_OnDirtyVertsCallback = (UnityAction)Delegate.Remove(this.m_OnDirtyVertsCallback, action);
|
||||
}
|
||||
|
||||
// Token: 0x0600025B RID: 603 RVA: 0x0000BEDB File Offset: 0x0000A2DB
|
||||
public void RegisterDirtyMaterialCallback(UnityAction action)
|
||||
{
|
||||
this.m_OnDirtyMaterialCallback = (UnityAction)Delegate.Combine(this.m_OnDirtyMaterialCallback, action);
|
||||
}
|
||||
|
||||
// Token: 0x0600025C RID: 604 RVA: 0x0000BEF5 File Offset: 0x0000A2F5
|
||||
public void UnregisterDirtyMaterialCallback(UnityAction action)
|
||||
{
|
||||
this.m_OnDirtyMaterialCallback = (UnityAction)Delegate.Remove(this.m_OnDirtyMaterialCallback, action);
|
||||
}
|
||||
|
||||
// Token: 0x0600025E RID: 606 RVA: 0x0000BF27 File Offset: 0x0000A327
|
||||
Transform ICanvasElement.get_transform()
|
||||
{
|
||||
return base.transform;
|
||||
}
|
||||
|
||||
// Token: 0x04000107 RID: 263
|
||||
protected static Material s_DefaultUI = null;
|
||||
|
||||
// Token: 0x04000108 RID: 264
|
||||
protected static Texture2D s_WhiteTexture = null;
|
||||
|
||||
// Token: 0x04000109 RID: 265
|
||||
[FormerlySerializedAs("m_Mat")]
|
||||
[SerializeField]
|
||||
protected Material m_Material;
|
||||
|
||||
// Token: 0x0400010A RID: 266
|
||||
[SerializeField]
|
||||
private Color m_Color = Color.white;
|
||||
|
||||
// Token: 0x0400010B RID: 267
|
||||
[SerializeField]
|
||||
private bool m_RaycastTarget = true;
|
||||
|
||||
// Token: 0x0400010C RID: 268
|
||||
[NonSerialized]
|
||||
private RectTransform m_RectTransform;
|
||||
|
||||
// Token: 0x0400010D RID: 269
|
||||
[NonSerialized]
|
||||
private CanvasRenderer m_CanvasRender;
|
||||
|
||||
// Token: 0x0400010E RID: 270
|
||||
[NonSerialized]
|
||||
private Canvas m_Canvas;
|
||||
|
||||
// Token: 0x0400010F RID: 271
|
||||
[NonSerialized]
|
||||
private bool m_VertsDirty;
|
||||
|
||||
// Token: 0x04000110 RID: 272
|
||||
[NonSerialized]
|
||||
private bool m_MaterialDirty;
|
||||
|
||||
// Token: 0x04000111 RID: 273
|
||||
[NonSerialized]
|
||||
protected UnityAction m_OnDirtyLayoutCallback;
|
||||
|
||||
// Token: 0x04000112 RID: 274
|
||||
[NonSerialized]
|
||||
protected UnityAction m_OnDirtyVertsCallback;
|
||||
|
||||
// Token: 0x04000113 RID: 275
|
||||
[NonSerialized]
|
||||
protected UnityAction m_OnDirtyMaterialCallback;
|
||||
|
||||
// Token: 0x04000114 RID: 276
|
||||
[NonSerialized]
|
||||
protected static Mesh s_Mesh;
|
||||
|
||||
// Token: 0x04000115 RID: 277
|
||||
[NonSerialized]
|
||||
private static readonly VertexHelper s_VertexHelper = new VertexHelper();
|
||||
|
||||
// Token: 0x04000116 RID: 278
|
||||
[NonSerialized]
|
||||
private readonly TweenRunner<ColorTween> m_ColorTweenRunner;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,340 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200004A RID: 74
|
||||
[AddComponentMenu("Event/Graphic Raycaster")]
|
||||
[RequireComponent(typeof(Canvas))]
|
||||
public class GraphicRaycaster : BaseRaycaster
|
||||
{
|
||||
// Token: 0x0600025F RID: 607 RVA: 0x0000BF2F File Offset: 0x0000A32F
|
||||
protected GraphicRaycaster()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700009B RID: 155
|
||||
// (get) Token: 0x06000260 RID: 608 RVA: 0x0000BF60 File Offset: 0x0000A360
|
||||
public override int sortOrderPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
int num;
|
||||
if (this.canvas.renderMode == RenderMode.ScreenSpaceOverlay)
|
||||
{
|
||||
num = this.canvas.sortingOrder;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = base.sortOrderPriority;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700009C RID: 156
|
||||
// (get) Token: 0x06000261 RID: 609 RVA: 0x0000BF9C File Offset: 0x0000A39C
|
||||
public override int renderOrderPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
int num;
|
||||
if (this.canvas.renderMode == RenderMode.ScreenSpaceOverlay)
|
||||
{
|
||||
num = this.canvas.rootCanvas.renderOrder;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = base.renderOrderPriority;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700009D RID: 157
|
||||
// (get) Token: 0x06000262 RID: 610 RVA: 0x0000BFE0 File Offset: 0x0000A3E0
|
||||
// (set) Token: 0x06000263 RID: 611 RVA: 0x0000BFFB File Offset: 0x0000A3FB
|
||||
public bool ignoreReversedGraphics
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_IgnoreReversedGraphics;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_IgnoreReversedGraphics = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700009E RID: 158
|
||||
// (get) Token: 0x06000264 RID: 612 RVA: 0x0000C008 File Offset: 0x0000A408
|
||||
// (set) Token: 0x06000265 RID: 613 RVA: 0x0000C023 File Offset: 0x0000A423
|
||||
public GraphicRaycaster.BlockingObjects blockingObjects
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_BlockingObjects;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_BlockingObjects = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700009F RID: 159
|
||||
// (get) Token: 0x06000266 RID: 614 RVA: 0x0000C030 File Offset: 0x0000A430
|
||||
private Canvas canvas
|
||||
{
|
||||
get
|
||||
{
|
||||
Canvas canvas;
|
||||
if (this.m_Canvas != null)
|
||||
{
|
||||
canvas = this.m_Canvas;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Canvas = base.GetComponent<Canvas>();
|
||||
canvas = this.m_Canvas;
|
||||
}
|
||||
return canvas;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000267 RID: 615 RVA: 0x0000C074 File Offset: 0x0000A474
|
||||
public override void Raycast(PointerEventData eventData, List<RaycastResult> resultAppendList)
|
||||
{
|
||||
if (!(this.canvas == null))
|
||||
{
|
||||
int num;
|
||||
if (this.canvas.renderMode == RenderMode.ScreenSpaceOverlay || !this.eventCamera)
|
||||
{
|
||||
num = this.canvas.targetDisplay;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = this.eventCamera.targetDisplay;
|
||||
}
|
||||
Vector3 vector = Display.RelativeMouseAt(eventData.position);
|
||||
if (vector != Vector3.zero)
|
||||
{
|
||||
int num2 = (int)vector.z;
|
||||
if (num2 != num)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
vector = eventData.position;
|
||||
}
|
||||
Vector2 vector2;
|
||||
if (this.eventCamera == null)
|
||||
{
|
||||
float num3 = (float)Screen.width;
|
||||
float num4 = (float)Screen.height;
|
||||
if (num > 0 && num < Display.displays.Length)
|
||||
{
|
||||
num3 = (float)Display.displays[num].systemWidth;
|
||||
num4 = (float)Display.displays[num].systemHeight;
|
||||
}
|
||||
vector2 = new Vector2(vector.x / num3, vector.y / num4);
|
||||
}
|
||||
else
|
||||
{
|
||||
vector2 = this.eventCamera.ScreenToViewportPoint(vector);
|
||||
}
|
||||
if (vector2.x >= 0f && vector2.x <= 1f && vector2.y >= 0f && vector2.y <= 1f)
|
||||
{
|
||||
float num5 = float.MaxValue;
|
||||
Ray ray = default(Ray);
|
||||
if (this.eventCamera != null)
|
||||
{
|
||||
ray = this.eventCamera.ScreenPointToRay(vector);
|
||||
}
|
||||
if (this.canvas.renderMode != RenderMode.ScreenSpaceOverlay && this.blockingObjects != GraphicRaycaster.BlockingObjects.None)
|
||||
{
|
||||
float num6 = 100f;
|
||||
if (this.eventCamera != null)
|
||||
{
|
||||
float z = ray.direction.z;
|
||||
num6 = ((!Mathf.Approximately(0f, z)) ? Mathf.Abs((this.eventCamera.farClipPlane - this.eventCamera.nearClipPlane) / z) : float.PositiveInfinity);
|
||||
}
|
||||
if (this.blockingObjects == GraphicRaycaster.BlockingObjects.ThreeD || this.blockingObjects == GraphicRaycaster.BlockingObjects.All)
|
||||
{
|
||||
if (ReflectionMethodsCache.Singleton.raycast3D != null)
|
||||
{
|
||||
RaycastHit[] array = ReflectionMethodsCache.Singleton.raycast3DAll(ray, num6, this.m_BlockingMask);
|
||||
if (array.Length > 0)
|
||||
{
|
||||
num5 = array[0].distance;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.blockingObjects == GraphicRaycaster.BlockingObjects.TwoD || this.blockingObjects == GraphicRaycaster.BlockingObjects.All)
|
||||
{
|
||||
if (ReflectionMethodsCache.Singleton.raycast2D != null)
|
||||
{
|
||||
RaycastHit2D[] array2 = ReflectionMethodsCache.Singleton.getRayIntersectionAll(ray, num6, this.m_BlockingMask);
|
||||
if (array2.Length > 0)
|
||||
{
|
||||
num5 = array2[0].distance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.m_RaycastResults.Clear();
|
||||
GraphicRaycaster.Raycast(this.canvas, this.eventCamera, vector, this.m_RaycastResults);
|
||||
int i = 0;
|
||||
while (i < this.m_RaycastResults.Count)
|
||||
{
|
||||
GameObject gameObject = this.m_RaycastResults[i].gameObject;
|
||||
bool flag = true;
|
||||
if (this.ignoreReversedGraphics)
|
||||
{
|
||||
if (this.eventCamera == null)
|
||||
{
|
||||
Vector3 vector3 = gameObject.transform.rotation * Vector3.forward;
|
||||
flag = Vector3.Dot(Vector3.forward, vector3) > 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 vector4 = this.eventCamera.transform.rotation * Vector3.forward;
|
||||
Vector3 vector5 = gameObject.transform.rotation * Vector3.forward;
|
||||
flag = Vector3.Dot(vector4, vector5) > 0f;
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
float num7;
|
||||
if (this.eventCamera == null || this.canvas.renderMode == RenderMode.ScreenSpaceOverlay)
|
||||
{
|
||||
num7 = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
Transform transform = gameObject.transform;
|
||||
Vector3 forward = transform.forward;
|
||||
num7 = Vector3.Dot(forward, transform.position - this.eventCamera.transform.position) / Vector3.Dot(forward, ray.direction);
|
||||
if (num7 < 0f)
|
||||
{
|
||||
goto IL_4F9;
|
||||
}
|
||||
}
|
||||
if (num7 < num5)
|
||||
{
|
||||
RaycastResult raycastResult = new RaycastResult
|
||||
{
|
||||
gameObject = gameObject,
|
||||
module = this,
|
||||
distance = num7,
|
||||
screenPosition = vector,
|
||||
index = (float)resultAppendList.Count,
|
||||
depth = this.m_RaycastResults[i].depth,
|
||||
sortingLayer = this.canvas.sortingLayerID,
|
||||
sortingOrder = this.canvas.sortingOrder
|
||||
};
|
||||
resultAppendList.Add(raycastResult);
|
||||
}
|
||||
}
|
||||
IL_4F9:
|
||||
i++;
|
||||
continue;
|
||||
goto IL_4F9;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A0 RID: 160
|
||||
// (get) Token: 0x06000268 RID: 616 RVA: 0x0000C594 File Offset: 0x0000A994
|
||||
public override Camera eventCamera
|
||||
{
|
||||
get
|
||||
{
|
||||
Camera camera;
|
||||
if (this.canvas.renderMode == RenderMode.ScreenSpaceOverlay || (this.canvas.renderMode == RenderMode.ScreenSpaceCamera && this.canvas.worldCamera == null))
|
||||
{
|
||||
camera = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
camera = ((!(this.canvas.worldCamera != null)) ? Camera.main : this.canvas.worldCamera);
|
||||
}
|
||||
return camera;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000269 RID: 617 RVA: 0x0000C614 File Offset: 0x0000AA14
|
||||
private static void Raycast(Canvas canvas, Camera eventCamera, Vector2 pointerPosition, List<Graphic> results)
|
||||
{
|
||||
IList<Graphic> graphicsForCanvas = GraphicRegistry.GetGraphicsForCanvas(canvas);
|
||||
for (int i = 0; i < graphicsForCanvas.Count; i++)
|
||||
{
|
||||
Graphic graphic = graphicsForCanvas[i];
|
||||
if (!graphic.canvasRenderer.cull)
|
||||
{
|
||||
if (graphic.depth != -1 && graphic.raycastTarget)
|
||||
{
|
||||
if (RectTransformUtility.RectangleContainsScreenPoint(graphic.rectTransform, pointerPosition, eventCamera))
|
||||
{
|
||||
if (graphic.Raycast(pointerPosition, eventCamera))
|
||||
{
|
||||
GraphicRaycaster.s_SortedGraphics.Add(graphic);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
GraphicRaycaster.s_SortedGraphics.Sort((Graphic g1, Graphic g2) => g2.depth.CompareTo(g1.depth));
|
||||
for (int j = 0; j < GraphicRaycaster.s_SortedGraphics.Count; j++)
|
||||
{
|
||||
results.Add(GraphicRaycaster.s_SortedGraphics[j]);
|
||||
}
|
||||
GraphicRaycaster.s_SortedGraphics.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x04000118 RID: 280
|
||||
protected const int kNoEventMaskSet = -1;
|
||||
|
||||
// Token: 0x04000119 RID: 281
|
||||
[FormerlySerializedAs("ignoreReversedGraphics")]
|
||||
[SerializeField]
|
||||
private bool m_IgnoreReversedGraphics = true;
|
||||
|
||||
// Token: 0x0400011A RID: 282
|
||||
[FormerlySerializedAs("blockingObjects")]
|
||||
[SerializeField]
|
||||
private GraphicRaycaster.BlockingObjects m_BlockingObjects = GraphicRaycaster.BlockingObjects.None;
|
||||
|
||||
// Token: 0x0400011B RID: 283
|
||||
[SerializeField]
|
||||
protected LayerMask m_BlockingMask = -1;
|
||||
|
||||
// Token: 0x0400011C RID: 284
|
||||
private Canvas m_Canvas;
|
||||
|
||||
// Token: 0x0400011D RID: 285
|
||||
[NonSerialized]
|
||||
private List<Graphic> m_RaycastResults = new List<Graphic>();
|
||||
|
||||
// Token: 0x0400011E RID: 286
|
||||
[NonSerialized]
|
||||
private static readonly List<Graphic> s_SortedGraphics = new List<Graphic>();
|
||||
|
||||
// Token: 0x0200004B RID: 75
|
||||
public enum BlockingObjects
|
||||
{
|
||||
// Token: 0x04000121 RID: 289
|
||||
None,
|
||||
// Token: 0x04000122 RID: 290
|
||||
TwoD,
|
||||
// Token: 0x04000123 RID: 291
|
||||
ThreeD,
|
||||
// Token: 0x04000124 RID: 292
|
||||
All
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.UI.Collections;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200004C RID: 76
|
||||
public class GraphicRegistry
|
||||
{
|
||||
// Token: 0x0600026C RID: 620 RVA: 0x0000C740 File Offset: 0x0000AB40
|
||||
protected GraphicRegistry()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170000A1 RID: 161
|
||||
// (get) Token: 0x0600026D RID: 621 RVA: 0x0000C760 File Offset: 0x0000AB60
|
||||
public static GraphicRegistry instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (GraphicRegistry.s_Instance == null)
|
||||
{
|
||||
GraphicRegistry.s_Instance = new GraphicRegistry();
|
||||
}
|
||||
return GraphicRegistry.s_Instance;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600026E RID: 622 RVA: 0x0000C790 File Offset: 0x0000AB90
|
||||
public static void RegisterGraphicForCanvas(Canvas c, Graphic graphic)
|
||||
{
|
||||
if (!(c == null))
|
||||
{
|
||||
IndexedSet<Graphic> indexedSet;
|
||||
GraphicRegistry.instance.m_Graphics.TryGetValue(c, out indexedSet);
|
||||
if (indexedSet != null)
|
||||
{
|
||||
indexedSet.AddUnique(graphic);
|
||||
}
|
||||
else
|
||||
{
|
||||
indexedSet = new IndexedSet<Graphic>();
|
||||
indexedSet.Add(graphic);
|
||||
GraphicRegistry.instance.m_Graphics.Add(c, indexedSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600026F RID: 623 RVA: 0x0000C7F4 File Offset: 0x0000ABF4
|
||||
public static void UnregisterGraphicForCanvas(Canvas c, Graphic graphic)
|
||||
{
|
||||
if (!(c == null))
|
||||
{
|
||||
IndexedSet<Graphic> indexedSet;
|
||||
if (GraphicRegistry.instance.m_Graphics.TryGetValue(c, out indexedSet))
|
||||
{
|
||||
indexedSet.Remove(graphic);
|
||||
if (indexedSet.Count == 0)
|
||||
{
|
||||
GraphicRegistry.instance.m_Graphics.Remove(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000270 RID: 624 RVA: 0x0000C850 File Offset: 0x0000AC50
|
||||
public static IList<Graphic> GetGraphicsForCanvas(Canvas canvas)
|
||||
{
|
||||
IndexedSet<Graphic> indexedSet;
|
||||
IList<Graphic> list;
|
||||
if (GraphicRegistry.instance.m_Graphics.TryGetValue(canvas, out indexedSet))
|
||||
{
|
||||
list = indexedSet;
|
||||
}
|
||||
else
|
||||
{
|
||||
list = GraphicRegistry.s_EmptyList;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x04000125 RID: 293
|
||||
private static GraphicRegistry s_Instance;
|
||||
|
||||
// Token: 0x04000126 RID: 294
|
||||
private readonly Dictionary<Canvas, IndexedSet<Graphic>> m_Graphics = new Dictionary<Canvas, IndexedSet<Graphic>>();
|
||||
|
||||
// Token: 0x04000127 RID: 295
|
||||
private static readonly List<Graphic> s_EmptyList = new List<Graphic>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,313 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200008F RID: 143
|
||||
[AddComponentMenu("Layout/Grid Layout Group", 152)]
|
||||
public class GridLayoutGroup : LayoutGroup
|
||||
{
|
||||
// Token: 0x06000533 RID: 1331 RVA: 0x0001BBD4 File Offset: 0x00019FD4
|
||||
protected GridLayoutGroup()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700016A RID: 362
|
||||
// (get) Token: 0x06000534 RID: 1332 RVA: 0x0001BC24 File Offset: 0x0001A024
|
||||
// (set) Token: 0x06000535 RID: 1333 RVA: 0x0001BC3F File Offset: 0x0001A03F
|
||||
public GridLayoutGroup.Corner startCorner
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_StartCorner;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<GridLayoutGroup.Corner>(ref this.m_StartCorner, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700016B RID: 363
|
||||
// (get) Token: 0x06000536 RID: 1334 RVA: 0x0001BC50 File Offset: 0x0001A050
|
||||
// (set) Token: 0x06000537 RID: 1335 RVA: 0x0001BC6B File Offset: 0x0001A06B
|
||||
public GridLayoutGroup.Axis startAxis
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_StartAxis;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<GridLayoutGroup.Axis>(ref this.m_StartAxis, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700016C RID: 364
|
||||
// (get) Token: 0x06000538 RID: 1336 RVA: 0x0001BC7C File Offset: 0x0001A07C
|
||||
// (set) Token: 0x06000539 RID: 1337 RVA: 0x0001BC97 File Offset: 0x0001A097
|
||||
public Vector2 cellSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CellSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<Vector2>(ref this.m_CellSize, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700016D RID: 365
|
||||
// (get) Token: 0x0600053A RID: 1338 RVA: 0x0001BCA8 File Offset: 0x0001A0A8
|
||||
// (set) Token: 0x0600053B RID: 1339 RVA: 0x0001BCC3 File Offset: 0x0001A0C3
|
||||
public Vector2 spacing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Spacing;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<Vector2>(ref this.m_Spacing, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700016E RID: 366
|
||||
// (get) Token: 0x0600053C RID: 1340 RVA: 0x0001BCD4 File Offset: 0x0001A0D4
|
||||
// (set) Token: 0x0600053D RID: 1341 RVA: 0x0001BCEF File Offset: 0x0001A0EF
|
||||
public GridLayoutGroup.Constraint constraint
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Constraint;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<GridLayoutGroup.Constraint>(ref this.m_Constraint, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700016F RID: 367
|
||||
// (get) Token: 0x0600053E RID: 1342 RVA: 0x0001BD00 File Offset: 0x0001A100
|
||||
// (set) Token: 0x0600053F RID: 1343 RVA: 0x0001BD1B File Offset: 0x0001A11B
|
||||
public int constraintCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ConstraintCount;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<int>(ref this.m_ConstraintCount, Mathf.Max(1, value));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000540 RID: 1344 RVA: 0x0001BD34 File Offset: 0x0001A134
|
||||
public override void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
base.CalculateLayoutInputHorizontal();
|
||||
int num2;
|
||||
int num;
|
||||
if (this.m_Constraint == GridLayoutGroup.Constraint.FixedColumnCount)
|
||||
{
|
||||
num = (num2 = this.m_ConstraintCount);
|
||||
}
|
||||
else if (this.m_Constraint == GridLayoutGroup.Constraint.FixedRowCount)
|
||||
{
|
||||
num = (num2 = Mathf.CeilToInt((float)base.rectChildren.Count / (float)this.m_ConstraintCount - 0.001f));
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = 1;
|
||||
num = Mathf.CeilToInt(Mathf.Sqrt((float)base.rectChildren.Count));
|
||||
}
|
||||
base.SetLayoutInputForAxis((float)base.padding.horizontal + (this.cellSize.x + this.spacing.x) * (float)num2 - this.spacing.x, (float)base.padding.horizontal + (this.cellSize.x + this.spacing.x) * (float)num - this.spacing.x, -1f, 0);
|
||||
}
|
||||
|
||||
// Token: 0x06000541 RID: 1345 RVA: 0x0001BE40 File Offset: 0x0001A240
|
||||
public override void CalculateLayoutInputVertical()
|
||||
{
|
||||
int num;
|
||||
if (this.m_Constraint == GridLayoutGroup.Constraint.FixedColumnCount)
|
||||
{
|
||||
num = Mathf.CeilToInt((float)base.rectChildren.Count / (float)this.m_ConstraintCount - 0.001f);
|
||||
}
|
||||
else if (this.m_Constraint == GridLayoutGroup.Constraint.FixedRowCount)
|
||||
{
|
||||
num = this.m_ConstraintCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
float x = base.rectTransform.rect.size.x;
|
||||
int num2 = Mathf.Max(1, Mathf.FloorToInt((x - (float)base.padding.horizontal + this.spacing.x + 0.001f) / (this.cellSize.x + this.spacing.x)));
|
||||
num = Mathf.CeilToInt((float)base.rectChildren.Count / (float)num2);
|
||||
}
|
||||
float num3 = (float)base.padding.vertical + (this.cellSize.y + this.spacing.y) * (float)num - this.spacing.y;
|
||||
base.SetLayoutInputForAxis(num3, num3, -1f, 1);
|
||||
}
|
||||
|
||||
// Token: 0x06000542 RID: 1346 RVA: 0x0001BF73 File Offset: 0x0001A373
|
||||
public override void SetLayoutHorizontal()
|
||||
{
|
||||
this.SetCellsAlongAxis(0);
|
||||
}
|
||||
|
||||
// Token: 0x06000543 RID: 1347 RVA: 0x0001BF7D File Offset: 0x0001A37D
|
||||
public override void SetLayoutVertical()
|
||||
{
|
||||
this.SetCellsAlongAxis(1);
|
||||
}
|
||||
|
||||
// Token: 0x06000544 RID: 1348 RVA: 0x0001BF88 File Offset: 0x0001A388
|
||||
private void SetCellsAlongAxis(int axis)
|
||||
{
|
||||
if (axis == 0)
|
||||
{
|
||||
for (int i = 0; i < base.rectChildren.Count; i++)
|
||||
{
|
||||
RectTransform rectTransform = base.rectChildren[i];
|
||||
this.m_Tracker.Add(this, rectTransform, DrivenTransformProperties.AnchoredPositionX | DrivenTransformProperties.AnchoredPositionY | DrivenTransformProperties.AnchorMinX | DrivenTransformProperties.AnchorMinY | DrivenTransformProperties.AnchorMaxX | DrivenTransformProperties.AnchorMaxY | DrivenTransformProperties.SizeDeltaX | DrivenTransformProperties.SizeDeltaY);
|
||||
rectTransform.anchorMin = Vector2.up;
|
||||
rectTransform.anchorMax = Vector2.up;
|
||||
rectTransform.sizeDelta = this.cellSize;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
float x = base.rectTransform.rect.size.x;
|
||||
float y = base.rectTransform.rect.size.y;
|
||||
int num;
|
||||
int num2;
|
||||
if (this.m_Constraint == GridLayoutGroup.Constraint.FixedColumnCount)
|
||||
{
|
||||
num = this.m_ConstraintCount;
|
||||
num2 = Mathf.CeilToInt((float)base.rectChildren.Count / (float)num - 0.001f);
|
||||
}
|
||||
else if (this.m_Constraint == GridLayoutGroup.Constraint.FixedRowCount)
|
||||
{
|
||||
num2 = this.m_ConstraintCount;
|
||||
num = Mathf.CeilToInt((float)base.rectChildren.Count / (float)num2 - 0.001f);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.cellSize.x + this.spacing.x <= 0f)
|
||||
{
|
||||
num = int.MaxValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = Mathf.Max(1, Mathf.FloorToInt((x - (float)base.padding.horizontal + this.spacing.x + 0.001f) / (this.cellSize.x + this.spacing.x)));
|
||||
}
|
||||
if (this.cellSize.y + this.spacing.y <= 0f)
|
||||
{
|
||||
num2 = int.MaxValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = Mathf.Max(1, Mathf.FloorToInt((y - (float)base.padding.vertical + this.spacing.y + 0.001f) / (this.cellSize.y + this.spacing.y)));
|
||||
}
|
||||
}
|
||||
int num3 = (int)(this.startCorner % GridLayoutGroup.Corner.LowerLeft);
|
||||
int num4 = (int)(this.startCorner / GridLayoutGroup.Corner.LowerLeft);
|
||||
int num5;
|
||||
int num6;
|
||||
int num7;
|
||||
if (this.startAxis == GridLayoutGroup.Axis.Horizontal)
|
||||
{
|
||||
num5 = num;
|
||||
num6 = Mathf.Clamp(num, 1, base.rectChildren.Count);
|
||||
num7 = Mathf.Clamp(num2, 1, Mathf.CeilToInt((float)base.rectChildren.Count / (float)num5));
|
||||
}
|
||||
else
|
||||
{
|
||||
num5 = num2;
|
||||
num7 = Mathf.Clamp(num2, 1, base.rectChildren.Count);
|
||||
num6 = Mathf.Clamp(num, 1, Mathf.CeilToInt((float)base.rectChildren.Count / (float)num5));
|
||||
}
|
||||
Vector2 vector = new Vector2((float)num6 * this.cellSize.x + (float)(num6 - 1) * this.spacing.x, (float)num7 * this.cellSize.y + (float)(num7 - 1) * this.spacing.y);
|
||||
Vector2 vector2 = new Vector2(base.GetStartOffset(0, vector.x), base.GetStartOffset(1, vector.y));
|
||||
for (int j = 0; j < base.rectChildren.Count; j++)
|
||||
{
|
||||
int num8;
|
||||
int num9;
|
||||
if (this.startAxis == GridLayoutGroup.Axis.Horizontal)
|
||||
{
|
||||
num8 = j % num5;
|
||||
num9 = j / num5;
|
||||
}
|
||||
else
|
||||
{
|
||||
num8 = j / num5;
|
||||
num9 = j % num5;
|
||||
}
|
||||
if (num3 == 1)
|
||||
{
|
||||
num8 = num6 - 1 - num8;
|
||||
}
|
||||
if (num4 == 1)
|
||||
{
|
||||
num9 = num7 - 1 - num9;
|
||||
}
|
||||
base.SetChildAlongAxis(base.rectChildren[j], 0, vector2.x + (this.cellSize[0] + this.spacing[0]) * (float)num8, this.cellSize[0]);
|
||||
base.SetChildAlongAxis(base.rectChildren[j], 1, vector2.y + (this.cellSize[1] + this.spacing[1]) * (float)num9, this.cellSize[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000287 RID: 647
|
||||
[SerializeField]
|
||||
protected GridLayoutGroup.Corner m_StartCorner = GridLayoutGroup.Corner.UpperLeft;
|
||||
|
||||
// Token: 0x04000288 RID: 648
|
||||
[SerializeField]
|
||||
protected GridLayoutGroup.Axis m_StartAxis = GridLayoutGroup.Axis.Horizontal;
|
||||
|
||||
// Token: 0x04000289 RID: 649
|
||||
[SerializeField]
|
||||
protected Vector2 m_CellSize = new Vector2(100f, 100f);
|
||||
|
||||
// Token: 0x0400028A RID: 650
|
||||
[SerializeField]
|
||||
protected Vector2 m_Spacing = Vector2.zero;
|
||||
|
||||
// Token: 0x0400028B RID: 651
|
||||
[SerializeField]
|
||||
protected GridLayoutGroup.Constraint m_Constraint = GridLayoutGroup.Constraint.Flexible;
|
||||
|
||||
// Token: 0x0400028C RID: 652
|
||||
[SerializeField]
|
||||
protected int m_ConstraintCount = 2;
|
||||
|
||||
// Token: 0x02000090 RID: 144
|
||||
public enum Corner
|
||||
{
|
||||
// Token: 0x0400028E RID: 654
|
||||
UpperLeft,
|
||||
// Token: 0x0400028F RID: 655
|
||||
UpperRight,
|
||||
// Token: 0x04000290 RID: 656
|
||||
LowerLeft,
|
||||
// Token: 0x04000291 RID: 657
|
||||
LowerRight
|
||||
}
|
||||
|
||||
// Token: 0x02000091 RID: 145
|
||||
public enum Axis
|
||||
{
|
||||
// Token: 0x04000293 RID: 659
|
||||
Horizontal,
|
||||
// Token: 0x04000294 RID: 660
|
||||
Vertical
|
||||
}
|
||||
|
||||
// Token: 0x02000092 RID: 146
|
||||
public enum Constraint
|
||||
{
|
||||
// Token: 0x04000296 RID: 662
|
||||
Flexible,
|
||||
// Token: 0x04000297 RID: 663
|
||||
FixedColumnCount,
|
||||
// Token: 0x04000298 RID: 664
|
||||
FixedRowCount
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000093 RID: 147
|
||||
[AddComponentMenu("Layout/Horizontal Layout Group", 150)]
|
||||
public class HorizontalLayoutGroup : HorizontalOrVerticalLayoutGroup
|
||||
{
|
||||
// Token: 0x06000545 RID: 1349 RVA: 0x0001C9A2 File Offset: 0x0001ADA2
|
||||
protected HorizontalLayoutGroup()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000546 RID: 1350 RVA: 0x0001C9AB File Offset: 0x0001ADAB
|
||||
public override void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
base.CalculateLayoutInputHorizontal();
|
||||
base.CalcAlongAxis(0, false);
|
||||
}
|
||||
|
||||
// Token: 0x06000547 RID: 1351 RVA: 0x0001C9BC File Offset: 0x0001ADBC
|
||||
public override void CalculateLayoutInputVertical()
|
||||
{
|
||||
base.CalcAlongAxis(1, false);
|
||||
}
|
||||
|
||||
// Token: 0x06000548 RID: 1352 RVA: 0x0001C9C7 File Offset: 0x0001ADC7
|
||||
public override void SetLayoutHorizontal()
|
||||
{
|
||||
base.SetChildrenAlongAxis(0, false);
|
||||
}
|
||||
|
||||
// Token: 0x06000549 RID: 1353 RVA: 0x0001C9D2 File Offset: 0x0001ADD2
|
||||
public override void SetLayoutVertical()
|
||||
{
|
||||
base.SetChildrenAlongAxis(1, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000094 RID: 148
|
||||
public abstract class HorizontalOrVerticalLayoutGroup : LayoutGroup
|
||||
{
|
||||
// Token: 0x17000170 RID: 368
|
||||
// (get) Token: 0x0600054B RID: 1355 RVA: 0x0001C41C File Offset: 0x0001A81C
|
||||
// (set) Token: 0x0600054C RID: 1356 RVA: 0x0001C437 File Offset: 0x0001A837
|
||||
public float spacing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Spacing;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<float>(ref this.m_Spacing, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000171 RID: 369
|
||||
// (get) Token: 0x0600054D RID: 1357 RVA: 0x0001C448 File Offset: 0x0001A848
|
||||
// (set) Token: 0x0600054E RID: 1358 RVA: 0x0001C463 File Offset: 0x0001A863
|
||||
public bool childForceExpandWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ChildForceExpandWidth;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<bool>(ref this.m_ChildForceExpandWidth, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000172 RID: 370
|
||||
// (get) Token: 0x0600054F RID: 1359 RVA: 0x0001C474 File Offset: 0x0001A874
|
||||
// (set) Token: 0x06000550 RID: 1360 RVA: 0x0001C48F File Offset: 0x0001A88F
|
||||
public bool childForceExpandHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ChildForceExpandHeight;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<bool>(ref this.m_ChildForceExpandHeight, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000173 RID: 371
|
||||
// (get) Token: 0x06000551 RID: 1361 RVA: 0x0001C4A0 File Offset: 0x0001A8A0
|
||||
// (set) Token: 0x06000552 RID: 1362 RVA: 0x0001C4BB File Offset: 0x0001A8BB
|
||||
public bool childControlWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ChildControlWidth;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<bool>(ref this.m_ChildControlWidth, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000174 RID: 372
|
||||
// (get) Token: 0x06000553 RID: 1363 RVA: 0x0001C4CC File Offset: 0x0001A8CC
|
||||
// (set) Token: 0x06000554 RID: 1364 RVA: 0x0001C4E7 File Offset: 0x0001A8E7
|
||||
public bool childControlHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ChildControlHeight;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetProperty<bool>(ref this.m_ChildControlHeight, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000555 RID: 1365 RVA: 0x0001C4F8 File Offset: 0x0001A8F8
|
||||
protected void CalcAlongAxis(int axis, bool isVertical)
|
||||
{
|
||||
float num = (float)((axis != 0) ? base.padding.vertical : base.padding.horizontal);
|
||||
bool flag = ((axis != 0) ? this.m_ChildControlHeight : this.m_ChildControlWidth);
|
||||
bool flag2 = ((axis != 0) ? this.childForceExpandHeight : this.childForceExpandWidth);
|
||||
float num2 = num;
|
||||
float num3 = num;
|
||||
float num4 = 0f;
|
||||
bool flag3 = isVertical ^ (axis == 1);
|
||||
for (int i = 0; i < base.rectChildren.Count; i++)
|
||||
{
|
||||
RectTransform rectTransform = base.rectChildren[i];
|
||||
float num5;
|
||||
float num6;
|
||||
float num7;
|
||||
this.GetChildSizes(rectTransform, axis, flag, flag2, out num5, out num6, out num7);
|
||||
if (flag3)
|
||||
{
|
||||
num2 = Mathf.Max(num5 + num, num2);
|
||||
num3 = Mathf.Max(num6 + num, num3);
|
||||
num4 = Mathf.Max(num7, num4);
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 += num5 + this.spacing;
|
||||
num3 += num6 + this.spacing;
|
||||
num4 += num7;
|
||||
}
|
||||
}
|
||||
if (!flag3 && base.rectChildren.Count > 0)
|
||||
{
|
||||
num2 -= this.spacing;
|
||||
num3 -= this.spacing;
|
||||
}
|
||||
num3 = Mathf.Max(num2, num3);
|
||||
base.SetLayoutInputForAxis(num2, num3, num4, axis);
|
||||
}
|
||||
|
||||
// Token: 0x06000556 RID: 1366 RVA: 0x0001C648 File Offset: 0x0001AA48
|
||||
protected void SetChildrenAlongAxis(int axis, bool isVertical)
|
||||
{
|
||||
float num = base.rectTransform.rect.size[axis];
|
||||
bool flag = ((axis != 0) ? this.m_ChildControlHeight : this.m_ChildControlWidth);
|
||||
bool flag2 = ((axis != 0) ? this.childForceExpandHeight : this.childForceExpandWidth);
|
||||
float alignmentOnAxis = base.GetAlignmentOnAxis(axis);
|
||||
bool flag3 = isVertical ^ (axis == 1);
|
||||
if (flag3)
|
||||
{
|
||||
float num2 = num - (float)((axis != 0) ? base.padding.vertical : base.padding.horizontal);
|
||||
for (int i = 0; i < base.rectChildren.Count; i++)
|
||||
{
|
||||
RectTransform rectTransform = base.rectChildren[i];
|
||||
float num3;
|
||||
float num4;
|
||||
float num5;
|
||||
this.GetChildSizes(rectTransform, axis, flag, flag2, out num3, out num4, out num5);
|
||||
float num6 = Mathf.Clamp(num2, num3, (num5 <= 0f) ? num4 : num);
|
||||
float startOffset = base.GetStartOffset(axis, num6);
|
||||
if (flag)
|
||||
{
|
||||
base.SetChildAlongAxis(rectTransform, axis, startOffset, num6);
|
||||
}
|
||||
else
|
||||
{
|
||||
float num7 = (num6 - rectTransform.sizeDelta[axis]) * alignmentOnAxis;
|
||||
base.SetChildAlongAxis(rectTransform, axis, startOffset + num7);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
float num8 = (float)((axis != 0) ? base.padding.top : base.padding.left);
|
||||
if (base.GetTotalFlexibleSize(axis) == 0f && base.GetTotalPreferredSize(axis) < num)
|
||||
{
|
||||
num8 = base.GetStartOffset(axis, base.GetTotalPreferredSize(axis) - (float)((axis != 0) ? base.padding.vertical : base.padding.horizontal));
|
||||
}
|
||||
float num9 = 0f;
|
||||
if (base.GetTotalMinSize(axis) != base.GetTotalPreferredSize(axis))
|
||||
{
|
||||
num9 = Mathf.Clamp01((num - base.GetTotalMinSize(axis)) / (base.GetTotalPreferredSize(axis) - base.GetTotalMinSize(axis)));
|
||||
}
|
||||
float num10 = 0f;
|
||||
if (num > base.GetTotalPreferredSize(axis))
|
||||
{
|
||||
if (base.GetTotalFlexibleSize(axis) > 0f)
|
||||
{
|
||||
num10 = (num - base.GetTotalPreferredSize(axis)) / base.GetTotalFlexibleSize(axis);
|
||||
}
|
||||
}
|
||||
for (int j = 0; j < base.rectChildren.Count; j++)
|
||||
{
|
||||
RectTransform rectTransform2 = base.rectChildren[j];
|
||||
float num11;
|
||||
float num12;
|
||||
float num13;
|
||||
this.GetChildSizes(rectTransform2, axis, flag, flag2, out num11, out num12, out num13);
|
||||
float num14 = Mathf.Lerp(num11, num12, num9);
|
||||
num14 += num13 * num10;
|
||||
if (flag)
|
||||
{
|
||||
base.SetChildAlongAxis(rectTransform2, axis, num8, num14);
|
||||
}
|
||||
else
|
||||
{
|
||||
float num15 = (num14 - rectTransform2.sizeDelta[axis]) * alignmentOnAxis;
|
||||
base.SetChildAlongAxis(rectTransform2, axis, num8 + num15);
|
||||
}
|
||||
num8 += num14 + this.spacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000557 RID: 1367 RVA: 0x0001C930 File Offset: 0x0001AD30
|
||||
private void GetChildSizes(RectTransform child, int axis, bool controlSize, bool childForceExpand, out float min, out float preferred, out float flexible)
|
||||
{
|
||||
if (!controlSize)
|
||||
{
|
||||
min = child.sizeDelta[axis];
|
||||
preferred = min;
|
||||
flexible = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
min = LayoutUtility.GetMinSize(child, axis);
|
||||
preferred = LayoutUtility.GetPreferredSize(child, axis);
|
||||
flexible = LayoutUtility.GetFlexibleSize(child, axis);
|
||||
}
|
||||
if (childForceExpand)
|
||||
{
|
||||
flexible = Mathf.Max(flexible, 1f);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000299 RID: 665
|
||||
[SerializeField]
|
||||
protected float m_Spacing = 0f;
|
||||
|
||||
// Token: 0x0400029A RID: 666
|
||||
[SerializeField]
|
||||
protected bool m_ChildForceExpandWidth = true;
|
||||
|
||||
// Token: 0x0400029B RID: 667
|
||||
[SerializeField]
|
||||
protected bool m_ChildForceExpandHeight = true;
|
||||
|
||||
// Token: 0x0400029C RID: 668
|
||||
[SerializeField]
|
||||
protected bool m_ChildControlWidth = true;
|
||||
|
||||
// Token: 0x0400029D RID: 669
|
||||
[SerializeField]
|
||||
protected bool m_ChildControlHeight = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200003D RID: 61
|
||||
public interface ICanvasElement
|
||||
{
|
||||
// Token: 0x06000189 RID: 393
|
||||
void Rebuild(CanvasUpdate executing);
|
||||
|
||||
// Token: 0x17000069 RID: 105
|
||||
// (get) Token: 0x0600018A RID: 394
|
||||
Transform transform { get; }
|
||||
|
||||
// Token: 0x0600018B RID: 395
|
||||
void LayoutComplete();
|
||||
|
||||
// Token: 0x0600018C RID: 396
|
||||
void GraphicUpdateComplete();
|
||||
|
||||
// Token: 0x0600018D RID: 397
|
||||
bool IsDestroyed();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000085 RID: 133
|
||||
public interface IClippable
|
||||
{
|
||||
// Token: 0x17000158 RID: 344
|
||||
// (get) Token: 0x060004F1 RID: 1265
|
||||
GameObject gameObject { get; }
|
||||
|
||||
// Token: 0x060004F2 RID: 1266
|
||||
void RecalculateClipping();
|
||||
|
||||
// Token: 0x17000159 RID: 345
|
||||
// (get) Token: 0x060004F3 RID: 1267
|
||||
RectTransform rectTransform { get; }
|
||||
|
||||
// Token: 0x060004F4 RID: 1268
|
||||
void Cull(Rect clipRect, bool validRect);
|
||||
|
||||
// Token: 0x060004F5 RID: 1269
|
||||
void SetClipRect(Rect value, bool validRect);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000084 RID: 132
|
||||
public interface IClipper
|
||||
{
|
||||
// Token: 0x060004F0 RID: 1264
|
||||
void PerformClipping();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200004D RID: 77
|
||||
[Obsolete("Not supported anymore")]
|
||||
internal interface IGraphicEnabledDisabled
|
||||
{
|
||||
// Token: 0x06000272 RID: 626
|
||||
void OnSiblingGraphicEnabledDisabled();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000096 RID: 150
|
||||
public interface ILayoutController
|
||||
{
|
||||
// Token: 0x06000561 RID: 1377
|
||||
void SetLayoutHorizontal();
|
||||
|
||||
// Token: 0x06000562 RID: 1378
|
||||
void SetLayoutVertical();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000095 RID: 149
|
||||
public interface ILayoutElement
|
||||
{
|
||||
// Token: 0x06000558 RID: 1368
|
||||
void CalculateLayoutInputHorizontal();
|
||||
|
||||
// Token: 0x06000559 RID: 1369
|
||||
void CalculateLayoutInputVertical();
|
||||
|
||||
// Token: 0x17000175 RID: 373
|
||||
// (get) Token: 0x0600055A RID: 1370
|
||||
float minWidth { get; }
|
||||
|
||||
// Token: 0x17000176 RID: 374
|
||||
// (get) Token: 0x0600055B RID: 1371
|
||||
float preferredWidth { get; }
|
||||
|
||||
// Token: 0x17000177 RID: 375
|
||||
// (get) Token: 0x0600055C RID: 1372
|
||||
float flexibleWidth { get; }
|
||||
|
||||
// Token: 0x17000178 RID: 376
|
||||
// (get) Token: 0x0600055D RID: 1373
|
||||
float minHeight { get; }
|
||||
|
||||
// Token: 0x17000179 RID: 377
|
||||
// (get) Token: 0x0600055E RID: 1374
|
||||
float preferredHeight { get; }
|
||||
|
||||
// Token: 0x1700017A RID: 378
|
||||
// (get) Token: 0x0600055F RID: 1375
|
||||
float flexibleHeight { get; }
|
||||
|
||||
// Token: 0x1700017B RID: 379
|
||||
// (get) Token: 0x06000560 RID: 1376
|
||||
int layoutPriority { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000097 RID: 151
|
||||
public interface ILayoutGroup : ILayoutController
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000099 RID: 153
|
||||
public interface ILayoutIgnorer
|
||||
{
|
||||
// Token: 0x1700017C RID: 380
|
||||
// (get) Token: 0x06000563 RID: 1379
|
||||
bool ignoreLayout { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000098 RID: 152
|
||||
public interface ILayoutSelfController : ILayoutController
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000056 RID: 86
|
||||
[Obsolete("Not supported anymore.", true)]
|
||||
public interface IMask
|
||||
{
|
||||
// Token: 0x060002AC RID: 684
|
||||
bool Enabled();
|
||||
|
||||
// Token: 0x170000BA RID: 186
|
||||
// (get) Token: 0x060002AD RID: 685
|
||||
RectTransform rectTransform { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000057 RID: 87
|
||||
public interface IMaskable
|
||||
{
|
||||
// Token: 0x060002AE RID: 686
|
||||
void RecalculateMasking();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200009F RID: 159
|
||||
public interface IMaterialModifier
|
||||
{
|
||||
// Token: 0x060005D3 RID: 1491
|
||||
Material GetModifiedMaterial(Material baseMaterial);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000AC RID: 172
|
||||
public interface IMeshModifier
|
||||
{
|
||||
// Token: 0x06000620 RID: 1568
|
||||
[Obsolete("use IMeshModifier.ModifyMesh (VertexHelper verts) instead", false)]
|
||||
void ModifyMesh(Mesh mesh);
|
||||
|
||||
// Token: 0x06000621 RID: 1569
|
||||
void ModifyMesh(VertexHelper verts);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000AB RID: 171
|
||||
[Obsolete("Use IMeshModifier instead", true)]
|
||||
public interface IVertexModifier
|
||||
{
|
||||
// Token: 0x0600061F RID: 1567
|
||||
[Obsolete("use IMeshModifier.ModifyMesh (VertexHelper verts) instead", true)]
|
||||
void ModifyVertices(List<UIVertex> verts);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,1379 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.Sprites;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200004E RID: 78
|
||||
[AddComponentMenu("UI/Image", 11)]
|
||||
public class Image : MaskableGraphic, ISerializationCallbackReceiver, ILayoutElement, ICanvasRaycastFilter
|
||||
{
|
||||
// Token: 0x06000273 RID: 627 RVA: 0x0000CD44 File Offset: 0x0000B144
|
||||
protected Image()
|
||||
{
|
||||
base.useLegacyMeshGeneration = false;
|
||||
}
|
||||
|
||||
// Token: 0x170000A2 RID: 162
|
||||
// (get) Token: 0x06000274 RID: 628 RVA: 0x0000CD98 File Offset: 0x0000B198
|
||||
// (set) Token: 0x06000275 RID: 629 RVA: 0x0000CDB3 File Offset: 0x0000B1B3
|
||||
public Sprite sprite
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Sprite;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<Sprite>(ref this.m_Sprite, value))
|
||||
{
|
||||
this.SetAllDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A3 RID: 163
|
||||
// (get) Token: 0x06000276 RID: 630 RVA: 0x0000CDD0 File Offset: 0x0000B1D0
|
||||
// (set) Token: 0x06000277 RID: 631 RVA: 0x0000CDEB File Offset: 0x0000B1EB
|
||||
public Sprite overrideSprite
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.activeSprite;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<Sprite>(ref this.m_OverrideSprite, value))
|
||||
{
|
||||
this.SetAllDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A4 RID: 164
|
||||
// (get) Token: 0x06000278 RID: 632 RVA: 0x0000CE08 File Offset: 0x0000B208
|
||||
private Sprite activeSprite
|
||||
{
|
||||
get
|
||||
{
|
||||
return (!(this.m_OverrideSprite != null)) ? this.sprite : this.m_OverrideSprite;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A5 RID: 165
|
||||
// (get) Token: 0x06000279 RID: 633 RVA: 0x0000CE40 File Offset: 0x0000B240
|
||||
// (set) Token: 0x0600027A RID: 634 RVA: 0x0000CE5B File Offset: 0x0000B25B
|
||||
public Image.Type type
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Type;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<Image.Type>(ref this.m_Type, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A6 RID: 166
|
||||
// (get) Token: 0x0600027B RID: 635 RVA: 0x0000CE78 File Offset: 0x0000B278
|
||||
// (set) Token: 0x0600027C RID: 636 RVA: 0x0000CE93 File Offset: 0x0000B293
|
||||
public bool preserveAspect
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PreserveAspect;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<bool>(ref this.m_PreserveAspect, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A7 RID: 167
|
||||
// (get) Token: 0x0600027D RID: 637 RVA: 0x0000CEB0 File Offset: 0x0000B2B0
|
||||
// (set) Token: 0x0600027E RID: 638 RVA: 0x0000CECB File Offset: 0x0000B2CB
|
||||
public bool fillCenter
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FillCenter;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<bool>(ref this.m_FillCenter, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A8 RID: 168
|
||||
// (get) Token: 0x0600027F RID: 639 RVA: 0x0000CEE8 File Offset: 0x0000B2E8
|
||||
// (set) Token: 0x06000280 RID: 640 RVA: 0x0000CF03 File Offset: 0x0000B303
|
||||
public Image.FillMethod fillMethod
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FillMethod;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<Image.FillMethod>(ref this.m_FillMethod, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
this.m_FillOrigin = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000A9 RID: 169
|
||||
// (get) Token: 0x06000281 RID: 641 RVA: 0x0000CF28 File Offset: 0x0000B328
|
||||
// (set) Token: 0x06000282 RID: 642 RVA: 0x0000CF43 File Offset: 0x0000B343
|
||||
public float fillAmount
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FillAmount;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_FillAmount, Mathf.Clamp01(value)))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000AA RID: 170
|
||||
// (get) Token: 0x06000283 RID: 643 RVA: 0x0000CF64 File Offset: 0x0000B364
|
||||
// (set) Token: 0x06000284 RID: 644 RVA: 0x0000CF7F File Offset: 0x0000B37F
|
||||
public bool fillClockwise
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FillClockwise;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<bool>(ref this.m_FillClockwise, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000AB RID: 171
|
||||
// (get) Token: 0x06000285 RID: 645 RVA: 0x0000CF9C File Offset: 0x0000B39C
|
||||
// (set) Token: 0x06000286 RID: 646 RVA: 0x0000CFB7 File Offset: 0x0000B3B7
|
||||
public int fillOrigin
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FillOrigin;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<int>(ref this.m_FillOrigin, value))
|
||||
{
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000AC RID: 172
|
||||
// (get) Token: 0x06000287 RID: 647 RVA: 0x0000CFD4 File Offset: 0x0000B3D4
|
||||
// (set) Token: 0x06000288 RID: 648 RVA: 0x0000CFF5 File Offset: 0x0000B3F5
|
||||
[Obsolete("eventAlphaThreshold has been deprecated. Use eventMinimumAlphaThreshold instead (UnityUpgradable) -> alphaHitTestMinimumThreshold")]
|
||||
public float eventAlphaThreshold
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1f - this.alphaHitTestMinimumThreshold;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.alphaHitTestMinimumThreshold = 1f - value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000AD RID: 173
|
||||
// (get) Token: 0x06000289 RID: 649 RVA: 0x0000D008 File Offset: 0x0000B408
|
||||
// (set) Token: 0x0600028A RID: 650 RVA: 0x0000D023 File Offset: 0x0000B423
|
||||
public float alphaHitTestMinimumThreshold
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AlphaHitTestMinimumThreshold;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_AlphaHitTestMinimumThreshold = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000AE RID: 174
|
||||
// (get) Token: 0x0600028B RID: 651 RVA: 0x0000D030 File Offset: 0x0000B430
|
||||
public static Material defaultETC1GraphicMaterial
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Image.s_ETC1DefaultUI == null)
|
||||
{
|
||||
Image.s_ETC1DefaultUI = Canvas.GetETC1SupportedCanvasMaterial();
|
||||
}
|
||||
return Image.s_ETC1DefaultUI;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000AF RID: 175
|
||||
// (get) Token: 0x0600028C RID: 652 RVA: 0x0000D064 File Offset: 0x0000B464
|
||||
public override Texture mainTexture
|
||||
{
|
||||
get
|
||||
{
|
||||
Texture texture;
|
||||
if (this.activeSprite == null)
|
||||
{
|
||||
if (this.material != null && this.material.mainTexture != null)
|
||||
{
|
||||
texture = this.material.mainTexture;
|
||||
}
|
||||
else
|
||||
{
|
||||
texture = Graphic.s_WhiteTexture;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
texture = this.activeSprite.texture;
|
||||
}
|
||||
return texture;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B0 RID: 176
|
||||
// (get) Token: 0x0600028D RID: 653 RVA: 0x0000D0DC File Offset: 0x0000B4DC
|
||||
public bool hasBorder
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.activeSprite != null && this.activeSprite.border.sqrMagnitude > 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B1 RID: 177
|
||||
// (get) Token: 0x0600028E RID: 654 RVA: 0x0000D124 File Offset: 0x0000B524
|
||||
public float pixelsPerUnit
|
||||
{
|
||||
get
|
||||
{
|
||||
float num = 100f;
|
||||
if (this.activeSprite)
|
||||
{
|
||||
num = this.activeSprite.pixelsPerUnit;
|
||||
}
|
||||
float num2 = 100f;
|
||||
if (base.canvas)
|
||||
{
|
||||
num2 = base.canvas.referencePixelsPerUnit;
|
||||
}
|
||||
return num / num2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B2 RID: 178
|
||||
// (get) Token: 0x0600028F RID: 655 RVA: 0x0000D180 File Offset: 0x0000B580
|
||||
// (set) Token: 0x06000290 RID: 656 RVA: 0x0000D1E9 File Offset: 0x0000B5E9
|
||||
public override Material material
|
||||
{
|
||||
get
|
||||
{
|
||||
Material material;
|
||||
if (this.m_Material != null)
|
||||
{
|
||||
material = this.m_Material;
|
||||
}
|
||||
else if (this.activeSprite && this.activeSprite.associatedAlphaSplitTexture != null)
|
||||
{
|
||||
material = Image.defaultETC1GraphicMaterial;
|
||||
}
|
||||
else
|
||||
{
|
||||
material = this.defaultMaterial;
|
||||
}
|
||||
return material;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.material = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000291 RID: 657 RVA: 0x0000D1F3 File Offset: 0x0000B5F3
|
||||
public virtual void OnBeforeSerialize()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000292 RID: 658 RVA: 0x0000D1F8 File Offset: 0x0000B5F8
|
||||
public virtual void OnAfterDeserialize()
|
||||
{
|
||||
if (this.m_FillOrigin < 0)
|
||||
{
|
||||
this.m_FillOrigin = 0;
|
||||
}
|
||||
else if (this.m_FillMethod == Image.FillMethod.Horizontal && this.m_FillOrigin > 1)
|
||||
{
|
||||
this.m_FillOrigin = 0;
|
||||
}
|
||||
else if (this.m_FillMethod == Image.FillMethod.Vertical && this.m_FillOrigin > 1)
|
||||
{
|
||||
this.m_FillOrigin = 0;
|
||||
}
|
||||
else if (this.m_FillOrigin > 3)
|
||||
{
|
||||
this.m_FillOrigin = 0;
|
||||
}
|
||||
this.m_FillAmount = Mathf.Clamp(this.m_FillAmount, 0f, 1f);
|
||||
}
|
||||
|
||||
// Token: 0x06000293 RID: 659 RVA: 0x0000D294 File Offset: 0x0000B694
|
||||
private Vector4 GetDrawingDimensions(bool shouldPreserveAspect)
|
||||
{
|
||||
Vector4 vector = ((!(this.activeSprite == null)) ? DataUtility.GetPadding(this.activeSprite) : Vector4.zero);
|
||||
Vector2 vector2 = ((!(this.activeSprite == null)) ? new Vector2(this.activeSprite.rect.width, this.activeSprite.rect.height) : Vector2.zero);
|
||||
Rect pixelAdjustedRect = base.GetPixelAdjustedRect();
|
||||
int num = Mathf.RoundToInt(vector2.x);
|
||||
int num2 = Mathf.RoundToInt(vector2.y);
|
||||
Vector4 vector3 = new Vector4(vector.x / (float)num, vector.y / (float)num2, ((float)num - vector.z) / (float)num, ((float)num2 - vector.w) / (float)num2);
|
||||
if (shouldPreserveAspect && vector2.sqrMagnitude > 0f)
|
||||
{
|
||||
float num3 = vector2.x / vector2.y;
|
||||
float num4 = pixelAdjustedRect.width / pixelAdjustedRect.height;
|
||||
if (num3 > num4)
|
||||
{
|
||||
float height = pixelAdjustedRect.height;
|
||||
pixelAdjustedRect.height = pixelAdjustedRect.width * (1f / num3);
|
||||
pixelAdjustedRect.y += (height - pixelAdjustedRect.height) * base.rectTransform.pivot.y;
|
||||
}
|
||||
else
|
||||
{
|
||||
float width = pixelAdjustedRect.width;
|
||||
pixelAdjustedRect.width = pixelAdjustedRect.height * num3;
|
||||
pixelAdjustedRect.x += (width - pixelAdjustedRect.width) * base.rectTransform.pivot.x;
|
||||
}
|
||||
}
|
||||
vector3 = new Vector4(pixelAdjustedRect.x + pixelAdjustedRect.width * vector3.x, pixelAdjustedRect.y + pixelAdjustedRect.height * vector3.y, pixelAdjustedRect.x + pixelAdjustedRect.width * vector3.z, pixelAdjustedRect.y + pixelAdjustedRect.height * vector3.w);
|
||||
return vector3;
|
||||
}
|
||||
|
||||
// Token: 0x06000294 RID: 660 RVA: 0x0000D4C0 File Offset: 0x0000B8C0
|
||||
public override void SetNativeSize()
|
||||
{
|
||||
if (this.activeSprite != null)
|
||||
{
|
||||
float num = this.activeSprite.rect.width / this.pixelsPerUnit;
|
||||
float num2 = this.activeSprite.rect.height / this.pixelsPerUnit;
|
||||
base.rectTransform.anchorMax = base.rectTransform.anchorMin;
|
||||
base.rectTransform.sizeDelta = new Vector2(num, num2);
|
||||
this.SetAllDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000295 RID: 661 RVA: 0x0000D548 File Offset: 0x0000B948
|
||||
protected override void OnPopulateMesh(VertexHelper toFill)
|
||||
{
|
||||
if (this.activeSprite == null)
|
||||
{
|
||||
base.OnPopulateMesh(toFill);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (this.type)
|
||||
{
|
||||
case Image.Type.Simple:
|
||||
this.GenerateSimpleSprite(toFill, this.m_PreserveAspect);
|
||||
break;
|
||||
case Image.Type.Sliced:
|
||||
this.GenerateSlicedSprite(toFill);
|
||||
break;
|
||||
case Image.Type.Tiled:
|
||||
this.GenerateTiledSprite(toFill);
|
||||
break;
|
||||
case Image.Type.Filled:
|
||||
this.GenerateFilledSprite(toFill, this.m_PreserveAspect);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000296 RID: 662 RVA: 0x0000D5D4 File Offset: 0x0000B9D4
|
||||
protected override void UpdateMaterial()
|
||||
{
|
||||
base.UpdateMaterial();
|
||||
if (this.activeSprite == null)
|
||||
{
|
||||
base.canvasRenderer.SetAlphaTexture(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
Texture2D associatedAlphaSplitTexture = this.activeSprite.associatedAlphaSplitTexture;
|
||||
if (associatedAlphaSplitTexture != null)
|
||||
{
|
||||
base.canvasRenderer.SetAlphaTexture(associatedAlphaSplitTexture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000297 RID: 663 RVA: 0x0000D634 File Offset: 0x0000BA34
|
||||
private void GenerateSimpleSprite(VertexHelper vh, bool lPreserveAspect)
|
||||
{
|
||||
Vector4 drawingDimensions = this.GetDrawingDimensions(lPreserveAspect);
|
||||
Vector4 vector = ((!(this.activeSprite != null)) ? Vector4.zero : DataUtility.GetOuterUV(this.activeSprite));
|
||||
Color color = this.color;
|
||||
vh.Clear();
|
||||
vh.AddVert(new Vector3(drawingDimensions.x, drawingDimensions.y), color, new Vector2(vector.x, vector.y));
|
||||
vh.AddVert(new Vector3(drawingDimensions.x, drawingDimensions.w), color, new Vector2(vector.x, vector.w));
|
||||
vh.AddVert(new Vector3(drawingDimensions.z, drawingDimensions.w), color, new Vector2(vector.z, vector.w));
|
||||
vh.AddVert(new Vector3(drawingDimensions.z, drawingDimensions.y), color, new Vector2(vector.z, vector.y));
|
||||
vh.AddTriangle(0, 1, 2);
|
||||
vh.AddTriangle(2, 3, 0);
|
||||
}
|
||||
|
||||
// Token: 0x06000298 RID: 664 RVA: 0x0000D758 File Offset: 0x0000BB58
|
||||
private void GenerateSlicedSprite(VertexHelper toFill)
|
||||
{
|
||||
if (!this.hasBorder)
|
||||
{
|
||||
this.GenerateSimpleSprite(toFill, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector4 vector;
|
||||
Vector4 vector2;
|
||||
Vector4 vector3;
|
||||
Vector4 vector4;
|
||||
if (this.activeSprite != null)
|
||||
{
|
||||
vector = DataUtility.GetOuterUV(this.activeSprite);
|
||||
vector2 = DataUtility.GetInnerUV(this.activeSprite);
|
||||
vector3 = DataUtility.GetPadding(this.activeSprite);
|
||||
vector4 = this.activeSprite.border;
|
||||
}
|
||||
else
|
||||
{
|
||||
vector = Vector4.zero;
|
||||
vector2 = Vector4.zero;
|
||||
vector3 = Vector4.zero;
|
||||
vector4 = Vector4.zero;
|
||||
}
|
||||
Rect pixelAdjustedRect = base.GetPixelAdjustedRect();
|
||||
Vector4 adjustedBorders = this.GetAdjustedBorders(vector4 / this.pixelsPerUnit, pixelAdjustedRect);
|
||||
vector3 /= this.pixelsPerUnit;
|
||||
Image.s_VertScratch[0] = new Vector2(vector3.x, vector3.y);
|
||||
Image.s_VertScratch[3] = new Vector2(pixelAdjustedRect.width - vector3.z, pixelAdjustedRect.height - vector3.w);
|
||||
Image.s_VertScratch[1].x = adjustedBorders.x;
|
||||
Image.s_VertScratch[1].y = adjustedBorders.y;
|
||||
Image.s_VertScratch[2].x = pixelAdjustedRect.width - adjustedBorders.z;
|
||||
Image.s_VertScratch[2].y = pixelAdjustedRect.height - adjustedBorders.w;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
Vector2[] array = Image.s_VertScratch;
|
||||
int num = i;
|
||||
array[num].x = array[num].x + pixelAdjustedRect.x;
|
||||
Vector2[] array2 = Image.s_VertScratch;
|
||||
int num2 = i;
|
||||
array2[num2].y = array2[num2].y + pixelAdjustedRect.y;
|
||||
}
|
||||
Image.s_UVScratch[0] = new Vector2(vector.x, vector.y);
|
||||
Image.s_UVScratch[1] = new Vector2(vector2.x, vector2.y);
|
||||
Image.s_UVScratch[2] = new Vector2(vector2.z, vector2.w);
|
||||
Image.s_UVScratch[3] = new Vector2(vector.z, vector.w);
|
||||
toFill.Clear();
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
int num3 = j + 1;
|
||||
for (int k = 0; k < 3; k++)
|
||||
{
|
||||
if (this.m_FillCenter || j != 1 || k != 1)
|
||||
{
|
||||
int num4 = k + 1;
|
||||
Image.AddQuad(toFill, new Vector2(Image.s_VertScratch[j].x, Image.s_VertScratch[k].y), new Vector2(Image.s_VertScratch[num3].x, Image.s_VertScratch[num4].y), this.color, new Vector2(Image.s_UVScratch[j].x, Image.s_UVScratch[k].y), new Vector2(Image.s_UVScratch[num3].x, Image.s_UVScratch[num4].y));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000299 RID: 665 RVA: 0x0000DAC0 File Offset: 0x0000BEC0
|
||||
private void GenerateTiledSprite(VertexHelper toFill)
|
||||
{
|
||||
Vector4 vector;
|
||||
Vector4 vector2;
|
||||
Vector4 vector3;
|
||||
Vector2 vector4;
|
||||
if (this.activeSprite != null)
|
||||
{
|
||||
vector = DataUtility.GetOuterUV(this.activeSprite);
|
||||
vector2 = DataUtility.GetInnerUV(this.activeSprite);
|
||||
vector3 = this.activeSprite.border;
|
||||
vector4 = this.activeSprite.rect.size;
|
||||
}
|
||||
else
|
||||
{
|
||||
vector = Vector4.zero;
|
||||
vector2 = Vector4.zero;
|
||||
vector3 = Vector4.zero;
|
||||
vector4 = Vector2.one * 100f;
|
||||
}
|
||||
Rect pixelAdjustedRect = base.GetPixelAdjustedRect();
|
||||
float num = (vector4.x - vector3.x - vector3.z) / this.pixelsPerUnit;
|
||||
float num2 = (vector4.y - vector3.y - vector3.w) / this.pixelsPerUnit;
|
||||
vector3 = this.GetAdjustedBorders(vector3 / this.pixelsPerUnit, pixelAdjustedRect);
|
||||
Vector2 vector5 = new Vector2(vector2.x, vector2.y);
|
||||
Vector2 vector6 = new Vector2(vector2.z, vector2.w);
|
||||
float x = vector3.x;
|
||||
float num3 = pixelAdjustedRect.width - vector3.z;
|
||||
float y = vector3.y;
|
||||
float num4 = pixelAdjustedRect.height - vector3.w;
|
||||
toFill.Clear();
|
||||
Vector2 vector7 = vector6;
|
||||
if (num <= 0f)
|
||||
{
|
||||
num = num3 - x;
|
||||
}
|
||||
if (num2 <= 0f)
|
||||
{
|
||||
num2 = num4 - y;
|
||||
}
|
||||
if (this.activeSprite != null && (this.hasBorder || this.activeSprite.packed || this.activeSprite.texture.wrapMode != TextureWrapMode.Repeat))
|
||||
{
|
||||
long num5;
|
||||
long num6;
|
||||
if (this.m_FillCenter)
|
||||
{
|
||||
num5 = (long)Math.Ceiling((double)((num3 - x) / num));
|
||||
num6 = (long)Math.Ceiling((double)((num4 - y) / num2));
|
||||
double num7;
|
||||
if (this.hasBorder)
|
||||
{
|
||||
num7 = ((double)num5 + 2.0) * ((double)num6 + 2.0) * 4.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
num7 = (double)(num5 * num6) * 4.0;
|
||||
}
|
||||
if (num7 > 65000.0)
|
||||
{
|
||||
Debug.LogError("Too many sprite tiles on Image \"" + base.name + "\". The tile size will be increased. To remove the limit on the number of tiles, convert the Sprite to an Advanced texture, remove the borders, clear the Packing tag and set the Wrap mode to Repeat.", this);
|
||||
double num8 = 16250.0;
|
||||
double num9;
|
||||
if (this.hasBorder)
|
||||
{
|
||||
num9 = ((double)num5 + 2.0) / ((double)num6 + 2.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
num9 = (double)num5 / (double)num6;
|
||||
}
|
||||
double num10 = Math.Sqrt(num8 / num9);
|
||||
double num11 = num10 * num9;
|
||||
if (this.hasBorder)
|
||||
{
|
||||
num10 -= 2.0;
|
||||
num11 -= 2.0;
|
||||
}
|
||||
num5 = (long)Math.Floor(num10);
|
||||
num6 = (long)Math.Floor(num11);
|
||||
num = (num3 - x) / (float)num5;
|
||||
num2 = (num4 - y) / (float)num6;
|
||||
}
|
||||
}
|
||||
else if (this.hasBorder)
|
||||
{
|
||||
num5 = (long)Math.Ceiling((double)((num3 - x) / num));
|
||||
num6 = (long)Math.Ceiling((double)((num4 - y) / num2));
|
||||
double num12 = ((double)(num6 + num5) + 2.0) * 2.0 * 4.0;
|
||||
if (num12 > 65000.0)
|
||||
{
|
||||
Debug.LogError("Too many sprite tiles on Image \"" + base.name + "\". The tile size will be increased. To remove the limit on the number of tiles, convert the Sprite to an Advanced texture, remove the borders, clear the Packing tag and set the Wrap mode to Repeat.", this);
|
||||
double num13 = 16250.0;
|
||||
double num14 = (double)num5 / (double)num6;
|
||||
double num15 = (num13 - 4.0) / (2.0 * (1.0 + num14));
|
||||
double num16 = num15 * num14;
|
||||
num5 = (long)Math.Floor(num15);
|
||||
num6 = (long)Math.Floor(num16);
|
||||
num = (num3 - x) / (float)num5;
|
||||
num2 = (num4 - y) / (float)num6;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
num5 = (num6 = 0L);
|
||||
}
|
||||
if (this.m_FillCenter)
|
||||
{
|
||||
for (long num17 = 0L; num17 < num6; num17 += 1L)
|
||||
{
|
||||
float num18 = y + (float)num17 * num2;
|
||||
float num19 = y + (float)(num17 + 1L) * num2;
|
||||
if (num19 > num4)
|
||||
{
|
||||
vector7.y = vector5.y + (vector6.y - vector5.y) * (num4 - num18) / (num19 - num18);
|
||||
num19 = num4;
|
||||
}
|
||||
vector7.x = vector6.x;
|
||||
for (long num20 = 0L; num20 < num5; num20 += 1L)
|
||||
{
|
||||
float num21 = x + (float)num20 * num;
|
||||
float num22 = x + (float)(num20 + 1L) * num;
|
||||
if (num22 > num3)
|
||||
{
|
||||
vector7.x = vector5.x + (vector6.x - vector5.x) * (num3 - num21) / (num22 - num21);
|
||||
num22 = num3;
|
||||
}
|
||||
Image.AddQuad(toFill, new Vector2(num21, num18) + pixelAdjustedRect.position, new Vector2(num22, num19) + pixelAdjustedRect.position, this.color, vector5, vector7);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.hasBorder)
|
||||
{
|
||||
vector7 = vector6;
|
||||
for (long num23 = 0L; num23 < num6; num23 += 1L)
|
||||
{
|
||||
float num24 = y + (float)num23 * num2;
|
||||
float num25 = y + (float)(num23 + 1L) * num2;
|
||||
if (num25 > num4)
|
||||
{
|
||||
vector7.y = vector5.y + (vector6.y - vector5.y) * (num4 - num24) / (num25 - num24);
|
||||
num25 = num4;
|
||||
}
|
||||
Image.AddQuad(toFill, new Vector2(0f, num24) + pixelAdjustedRect.position, new Vector2(x, num25) + pixelAdjustedRect.position, this.color, new Vector2(vector.x, vector5.y), new Vector2(vector5.x, vector7.y));
|
||||
Image.AddQuad(toFill, new Vector2(num3, num24) + pixelAdjustedRect.position, new Vector2(pixelAdjustedRect.width, num25) + pixelAdjustedRect.position, this.color, new Vector2(vector6.x, vector5.y), new Vector2(vector.z, vector7.y));
|
||||
}
|
||||
vector7 = vector6;
|
||||
for (long num26 = 0L; num26 < num5; num26 += 1L)
|
||||
{
|
||||
float num27 = x + (float)num26 * num;
|
||||
float num28 = x + (float)(num26 + 1L) * num;
|
||||
if (num28 > num3)
|
||||
{
|
||||
vector7.x = vector5.x + (vector6.x - vector5.x) * (num3 - num27) / (num28 - num27);
|
||||
num28 = num3;
|
||||
}
|
||||
Image.AddQuad(toFill, new Vector2(num27, 0f) + pixelAdjustedRect.position, new Vector2(num28, y) + pixelAdjustedRect.position, this.color, new Vector2(vector5.x, vector.y), new Vector2(vector7.x, vector5.y));
|
||||
Image.AddQuad(toFill, new Vector2(num27, num4) + pixelAdjustedRect.position, new Vector2(num28, pixelAdjustedRect.height) + pixelAdjustedRect.position, this.color, new Vector2(vector5.x, vector6.y), new Vector2(vector7.x, vector.w));
|
||||
}
|
||||
Image.AddQuad(toFill, new Vector2(0f, 0f) + pixelAdjustedRect.position, new Vector2(x, y) + pixelAdjustedRect.position, this.color, new Vector2(vector.x, vector.y), new Vector2(vector5.x, vector5.y));
|
||||
Image.AddQuad(toFill, new Vector2(num3, 0f) + pixelAdjustedRect.position, new Vector2(pixelAdjustedRect.width, y) + pixelAdjustedRect.position, this.color, new Vector2(vector6.x, vector.y), new Vector2(vector.z, vector5.y));
|
||||
Image.AddQuad(toFill, new Vector2(0f, num4) + pixelAdjustedRect.position, new Vector2(x, pixelAdjustedRect.height) + pixelAdjustedRect.position, this.color, new Vector2(vector.x, vector6.y), new Vector2(vector5.x, vector.w));
|
||||
Image.AddQuad(toFill, new Vector2(num3, num4) + pixelAdjustedRect.position, new Vector2(pixelAdjustedRect.width, pixelAdjustedRect.height) + pixelAdjustedRect.position, this.color, new Vector2(vector6.x, vector6.y), new Vector2(vector.z, vector.w));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector2 vector8 = new Vector2((num3 - x) / num, (num4 - y) / num2);
|
||||
if (this.m_FillCenter)
|
||||
{
|
||||
Image.AddQuad(toFill, new Vector2(x, y) + pixelAdjustedRect.position, new Vector2(num3, num4) + pixelAdjustedRect.position, this.color, Vector2.Scale(vector5, vector8), Vector2.Scale(vector6, vector8));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600029A RID: 666 RVA: 0x0000E4AC File Offset: 0x0000C8AC
|
||||
private static void AddQuad(VertexHelper vertexHelper, Vector3[] quadPositions, Color32 color, Vector3[] quadUVs)
|
||||
{
|
||||
int currentVertCount = vertexHelper.currentVertCount;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
vertexHelper.AddVert(quadPositions[i], color, quadUVs[i]);
|
||||
}
|
||||
vertexHelper.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2);
|
||||
vertexHelper.AddTriangle(currentVertCount + 2, currentVertCount + 3, currentVertCount);
|
||||
}
|
||||
|
||||
// Token: 0x0600029B RID: 667 RVA: 0x0000E514 File Offset: 0x0000C914
|
||||
private static void AddQuad(VertexHelper vertexHelper, Vector2 posMin, Vector2 posMax, Color32 color, Vector2 uvMin, Vector2 uvMax)
|
||||
{
|
||||
int currentVertCount = vertexHelper.currentVertCount;
|
||||
vertexHelper.AddVert(new Vector3(posMin.x, posMin.y, 0f), color, new Vector2(uvMin.x, uvMin.y));
|
||||
vertexHelper.AddVert(new Vector3(posMin.x, posMax.y, 0f), color, new Vector2(uvMin.x, uvMax.y));
|
||||
vertexHelper.AddVert(new Vector3(posMax.x, posMax.y, 0f), color, new Vector2(uvMax.x, uvMax.y));
|
||||
vertexHelper.AddVert(new Vector3(posMax.x, posMin.y, 0f), color, new Vector2(uvMax.x, uvMin.y));
|
||||
vertexHelper.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2);
|
||||
vertexHelper.AddTriangle(currentVertCount + 2, currentVertCount + 3, currentVertCount);
|
||||
}
|
||||
|
||||
// Token: 0x0600029C RID: 668 RVA: 0x0000E60C File Offset: 0x0000CA0C
|
||||
private Vector4 GetAdjustedBorders(Vector4 border, Rect adjustedRect)
|
||||
{
|
||||
Rect rect = base.rectTransform.rect;
|
||||
for (int i = 0; i <= 1; i++)
|
||||
{
|
||||
if (rect.size[i] != 0f)
|
||||
{
|
||||
float num = adjustedRect.size[i] / rect.size[i];
|
||||
ref Vector4 ptr = ref border;
|
||||
int num2;
|
||||
border[num2 = i] = ptr[num2] * num;
|
||||
ptr = ref border;
|
||||
int num3;
|
||||
border[num3 = i + 2] = ptr[num3] * num;
|
||||
}
|
||||
float num4 = border[i] + border[i + 2];
|
||||
if (adjustedRect.size[i] < num4 && num4 != 0f)
|
||||
{
|
||||
float num = adjustedRect.size[i] / num4;
|
||||
ref Vector4 ptr = ref border;
|
||||
int num5;
|
||||
border[num5 = i] = ptr[num5] * num;
|
||||
ptr = ref border;
|
||||
int num6;
|
||||
border[num6 = i + 2] = ptr[num6] * num;
|
||||
}
|
||||
}
|
||||
return border;
|
||||
}
|
||||
|
||||
// Token: 0x0600029D RID: 669 RVA: 0x0000E73C File Offset: 0x0000CB3C
|
||||
private void GenerateFilledSprite(VertexHelper toFill, bool preserveAspect)
|
||||
{
|
||||
toFill.Clear();
|
||||
if (this.m_FillAmount >= 0.001f)
|
||||
{
|
||||
Vector4 drawingDimensions = this.GetDrawingDimensions(preserveAspect);
|
||||
Vector4 vector = ((!(this.activeSprite != null)) ? Vector4.zero : DataUtility.GetOuterUV(this.activeSprite));
|
||||
UIVertex simpleVert = UIVertex.simpleVert;
|
||||
simpleVert.color = this.color;
|
||||
float num = vector.x;
|
||||
float num2 = vector.y;
|
||||
float num3 = vector.z;
|
||||
float num4 = vector.w;
|
||||
if (this.m_FillMethod == Image.FillMethod.Horizontal || this.m_FillMethod == Image.FillMethod.Vertical)
|
||||
{
|
||||
if (this.fillMethod == Image.FillMethod.Horizontal)
|
||||
{
|
||||
float num5 = (num3 - num) * this.m_FillAmount;
|
||||
if (this.m_FillOrigin == 1)
|
||||
{
|
||||
drawingDimensions.x = drawingDimensions.z - (drawingDimensions.z - drawingDimensions.x) * this.m_FillAmount;
|
||||
num = num3 - num5;
|
||||
}
|
||||
else
|
||||
{
|
||||
drawingDimensions.z = drawingDimensions.x + (drawingDimensions.z - drawingDimensions.x) * this.m_FillAmount;
|
||||
num3 = num + num5;
|
||||
}
|
||||
}
|
||||
else if (this.fillMethod == Image.FillMethod.Vertical)
|
||||
{
|
||||
float num6 = (num4 - num2) * this.m_FillAmount;
|
||||
if (this.m_FillOrigin == 1)
|
||||
{
|
||||
drawingDimensions.y = drawingDimensions.w - (drawingDimensions.w - drawingDimensions.y) * this.m_FillAmount;
|
||||
num2 = num4 - num6;
|
||||
}
|
||||
else
|
||||
{
|
||||
drawingDimensions.w = drawingDimensions.y + (drawingDimensions.w - drawingDimensions.y) * this.m_FillAmount;
|
||||
num4 = num2 + num6;
|
||||
}
|
||||
}
|
||||
}
|
||||
Image.s_Xy[0] = new Vector2(drawingDimensions.x, drawingDimensions.y);
|
||||
Image.s_Xy[1] = new Vector2(drawingDimensions.x, drawingDimensions.w);
|
||||
Image.s_Xy[2] = new Vector2(drawingDimensions.z, drawingDimensions.w);
|
||||
Image.s_Xy[3] = new Vector2(drawingDimensions.z, drawingDimensions.y);
|
||||
Image.s_Uv[0] = new Vector2(num, num2);
|
||||
Image.s_Uv[1] = new Vector2(num, num4);
|
||||
Image.s_Uv[2] = new Vector2(num3, num4);
|
||||
Image.s_Uv[3] = new Vector2(num3, num2);
|
||||
if (this.m_FillAmount < 1f && this.m_FillMethod != Image.FillMethod.Horizontal && this.m_FillMethod != Image.FillMethod.Vertical)
|
||||
{
|
||||
if (this.fillMethod == Image.FillMethod.Radial90)
|
||||
{
|
||||
if (Image.RadialCut(Image.s_Xy, Image.s_Uv, this.m_FillAmount, this.m_FillClockwise, this.m_FillOrigin))
|
||||
{
|
||||
Image.AddQuad(toFill, Image.s_Xy, this.color, Image.s_Uv);
|
||||
}
|
||||
}
|
||||
else if (this.fillMethod == Image.FillMethod.Radial180)
|
||||
{
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
int num7 = ((this.m_FillOrigin <= 1) ? 0 : 1);
|
||||
float num8;
|
||||
float num9;
|
||||
float num10;
|
||||
float num11;
|
||||
if (this.m_FillOrigin == 0 || this.m_FillOrigin == 2)
|
||||
{
|
||||
num8 = 0f;
|
||||
num9 = 1f;
|
||||
if (i == num7)
|
||||
{
|
||||
num10 = 0f;
|
||||
num11 = 0.5f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num10 = 0.5f;
|
||||
num11 = 1f;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
num10 = 0f;
|
||||
num11 = 1f;
|
||||
if (i == num7)
|
||||
{
|
||||
num8 = 0.5f;
|
||||
num9 = 1f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num8 = 0f;
|
||||
num9 = 0.5f;
|
||||
}
|
||||
}
|
||||
Image.s_Xy[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num10);
|
||||
Image.s_Xy[1].x = Image.s_Xy[0].x;
|
||||
Image.s_Xy[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num11);
|
||||
Image.s_Xy[3].x = Image.s_Xy[2].x;
|
||||
Image.s_Xy[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num8);
|
||||
Image.s_Xy[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num9);
|
||||
Image.s_Xy[2].y = Image.s_Xy[1].y;
|
||||
Image.s_Xy[3].y = Image.s_Xy[0].y;
|
||||
Image.s_Uv[0].x = Mathf.Lerp(num, num3, num10);
|
||||
Image.s_Uv[1].x = Image.s_Uv[0].x;
|
||||
Image.s_Uv[2].x = Mathf.Lerp(num, num3, num11);
|
||||
Image.s_Uv[3].x = Image.s_Uv[2].x;
|
||||
Image.s_Uv[0].y = Mathf.Lerp(num2, num4, num8);
|
||||
Image.s_Uv[1].y = Mathf.Lerp(num2, num4, num9);
|
||||
Image.s_Uv[2].y = Image.s_Uv[1].y;
|
||||
Image.s_Uv[3].y = Image.s_Uv[0].y;
|
||||
float num12 = ((!this.m_FillClockwise) ? (this.m_FillAmount * 2f - (float)(1 - i)) : (this.fillAmount * 2f - (float)i));
|
||||
if (Image.RadialCut(Image.s_Xy, Image.s_Uv, Mathf.Clamp01(num12), this.m_FillClockwise, (i + this.m_FillOrigin + 3) % 4))
|
||||
{
|
||||
Image.AddQuad(toFill, Image.s_Xy, this.color, Image.s_Uv);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this.fillMethod == Image.FillMethod.Radial360)
|
||||
{
|
||||
for (int j = 0; j < 4; j++)
|
||||
{
|
||||
float num13;
|
||||
float num14;
|
||||
if (j < 2)
|
||||
{
|
||||
num13 = 0f;
|
||||
num14 = 0.5f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num13 = 0.5f;
|
||||
num14 = 1f;
|
||||
}
|
||||
float num15;
|
||||
float num16;
|
||||
if (j == 0 || j == 3)
|
||||
{
|
||||
num15 = 0f;
|
||||
num16 = 0.5f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num15 = 0.5f;
|
||||
num16 = 1f;
|
||||
}
|
||||
Image.s_Xy[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num13);
|
||||
Image.s_Xy[1].x = Image.s_Xy[0].x;
|
||||
Image.s_Xy[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num14);
|
||||
Image.s_Xy[3].x = Image.s_Xy[2].x;
|
||||
Image.s_Xy[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num15);
|
||||
Image.s_Xy[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num16);
|
||||
Image.s_Xy[2].y = Image.s_Xy[1].y;
|
||||
Image.s_Xy[3].y = Image.s_Xy[0].y;
|
||||
Image.s_Uv[0].x = Mathf.Lerp(num, num3, num13);
|
||||
Image.s_Uv[1].x = Image.s_Uv[0].x;
|
||||
Image.s_Uv[2].x = Mathf.Lerp(num, num3, num14);
|
||||
Image.s_Uv[3].x = Image.s_Uv[2].x;
|
||||
Image.s_Uv[0].y = Mathf.Lerp(num2, num4, num15);
|
||||
Image.s_Uv[1].y = Mathf.Lerp(num2, num4, num16);
|
||||
Image.s_Uv[2].y = Image.s_Uv[1].y;
|
||||
Image.s_Uv[3].y = Image.s_Uv[0].y;
|
||||
float num17 = ((!this.m_FillClockwise) ? (this.m_FillAmount * 4f - (float)(3 - (j + this.m_FillOrigin) % 4)) : (this.m_FillAmount * 4f - (float)((j + this.m_FillOrigin) % 4)));
|
||||
if (Image.RadialCut(Image.s_Xy, Image.s_Uv, Mathf.Clamp01(num17), this.m_FillClockwise, (j + 2) % 4))
|
||||
{
|
||||
Image.AddQuad(toFill, Image.s_Xy, this.color, Image.s_Uv);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Image.AddQuad(toFill, Image.s_Xy, this.color, Image.s_Uv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600029E RID: 670 RVA: 0x0000F114 File Offset: 0x0000D514
|
||||
private static bool RadialCut(Vector3[] xy, Vector3[] uv, float fill, bool invert, int corner)
|
||||
{
|
||||
bool flag;
|
||||
if (fill < 0.001f)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((corner & 1) == 1)
|
||||
{
|
||||
invert = !invert;
|
||||
}
|
||||
if (!invert && fill > 0.999f)
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
float num = Mathf.Clamp01(fill);
|
||||
if (invert)
|
||||
{
|
||||
num = 1f - num;
|
||||
}
|
||||
num *= 1.5707964f;
|
||||
float num2 = Mathf.Cos(num);
|
||||
float num3 = Mathf.Sin(num);
|
||||
Image.RadialCut(xy, num2, num3, invert, corner);
|
||||
Image.RadialCut(uv, num2, num3, invert, corner);
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600029F RID: 671 RVA: 0x0000F1A8 File Offset: 0x0000D5A8
|
||||
private static void RadialCut(Vector3[] xy, float cos, float sin, bool invert, int corner)
|
||||
{
|
||||
int num = (corner + 1) % 4;
|
||||
int num2 = (corner + 2) % 4;
|
||||
int num3 = (corner + 3) % 4;
|
||||
if ((corner & 1) == 1)
|
||||
{
|
||||
if (sin > cos)
|
||||
{
|
||||
cos /= sin;
|
||||
sin = 1f;
|
||||
if (invert)
|
||||
{
|
||||
xy[num].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos);
|
||||
xy[num2].x = xy[num].x;
|
||||
}
|
||||
}
|
||||
else if (cos > sin)
|
||||
{
|
||||
sin /= cos;
|
||||
cos = 1f;
|
||||
if (!invert)
|
||||
{
|
||||
xy[num2].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin);
|
||||
xy[num3].y = xy[num2].y;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cos = 1f;
|
||||
sin = 1f;
|
||||
}
|
||||
if (!invert)
|
||||
{
|
||||
xy[num3].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos);
|
||||
}
|
||||
else
|
||||
{
|
||||
xy[num].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cos > sin)
|
||||
{
|
||||
sin /= cos;
|
||||
cos = 1f;
|
||||
if (!invert)
|
||||
{
|
||||
xy[num].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin);
|
||||
xy[num2].y = xy[num].y;
|
||||
}
|
||||
}
|
||||
else if (sin > cos)
|
||||
{
|
||||
cos /= sin;
|
||||
sin = 1f;
|
||||
if (invert)
|
||||
{
|
||||
xy[num2].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos);
|
||||
xy[num3].x = xy[num2].x;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cos = 1f;
|
||||
sin = 1f;
|
||||
}
|
||||
if (invert)
|
||||
{
|
||||
xy[num3].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin);
|
||||
}
|
||||
else
|
||||
{
|
||||
xy[num].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002A0 RID: 672 RVA: 0x0000F44F File Offset: 0x0000D84F
|
||||
public virtual void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060002A1 RID: 673 RVA: 0x0000F452 File Offset: 0x0000D852
|
||||
public virtual void CalculateLayoutInputVertical()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170000B3 RID: 179
|
||||
// (get) Token: 0x060002A2 RID: 674 RVA: 0x0000F458 File Offset: 0x0000D858
|
||||
public virtual float minWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B4 RID: 180
|
||||
// (get) Token: 0x060002A3 RID: 675 RVA: 0x0000F474 File Offset: 0x0000D874
|
||||
public virtual float preferredWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
float num;
|
||||
if (this.activeSprite == null)
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
else if (this.type == Image.Type.Sliced || this.type == Image.Type.Tiled)
|
||||
{
|
||||
num = DataUtility.GetMinSize(this.activeSprite).x / this.pixelsPerUnit;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = this.activeSprite.rect.size.x / this.pixelsPerUnit;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B5 RID: 181
|
||||
// (get) Token: 0x060002A4 RID: 676 RVA: 0x0000F500 File Offset: 0x0000D900
|
||||
public virtual float flexibleWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B6 RID: 182
|
||||
// (get) Token: 0x060002A5 RID: 677 RVA: 0x0000F51C File Offset: 0x0000D91C
|
||||
public virtual float minHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B7 RID: 183
|
||||
// (get) Token: 0x060002A6 RID: 678 RVA: 0x0000F538 File Offset: 0x0000D938
|
||||
public virtual float preferredHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
float num;
|
||||
if (this.activeSprite == null)
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
else if (this.type == Image.Type.Sliced || this.type == Image.Type.Tiled)
|
||||
{
|
||||
num = DataUtility.GetMinSize(this.activeSprite).y / this.pixelsPerUnit;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = this.activeSprite.rect.size.y / this.pixelsPerUnit;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B8 RID: 184
|
||||
// (get) Token: 0x060002A7 RID: 679 RVA: 0x0000F5C4 File Offset: 0x0000D9C4
|
||||
public virtual float flexibleHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000B9 RID: 185
|
||||
// (get) Token: 0x060002A8 RID: 680 RVA: 0x0000F5E0 File Offset: 0x0000D9E0
|
||||
public virtual int layoutPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002A9 RID: 681 RVA: 0x0000F5F8 File Offset: 0x0000D9F8
|
||||
public virtual bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
|
||||
{
|
||||
bool flag;
|
||||
Vector2 vector;
|
||||
if (this.alphaHitTestMinimumThreshold <= 0f)
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
else if (this.alphaHitTestMinimumThreshold > 1f)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else if (this.activeSprite == null)
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
else if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(base.rectTransform, screenPoint, eventCamera, out vector))
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Rect pixelAdjustedRect = base.GetPixelAdjustedRect();
|
||||
vector.x += base.rectTransform.pivot.x * pixelAdjustedRect.width;
|
||||
vector.y += base.rectTransform.pivot.y * pixelAdjustedRect.height;
|
||||
vector = this.MapCoordinate(vector, pixelAdjustedRect);
|
||||
Rect textureRect = this.activeSprite.textureRect;
|
||||
Vector2 vector2 = new Vector2(vector.x / textureRect.width, vector.y / textureRect.height);
|
||||
float num = Mathf.Lerp(textureRect.x, textureRect.xMax, vector2.x) / (float)this.activeSprite.texture.width;
|
||||
float num2 = Mathf.Lerp(textureRect.y, textureRect.yMax, vector2.y) / (float)this.activeSprite.texture.height;
|
||||
try
|
||||
{
|
||||
flag = this.activeSprite.texture.GetPixelBilinear(num, num2).a >= this.alphaHitTestMinimumThreshold;
|
||||
}
|
||||
catch (UnityException ex)
|
||||
{
|
||||
Debug.LogError("Using alphaHitTestMinimumThreshold greater than 0 on Image whose sprite texture cannot be read. " + ex.Message + " Also make sure to disable sprite packing for this sprite.", this);
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x060002AA RID: 682 RVA: 0x0000F7C0 File Offset: 0x0000DBC0
|
||||
private Vector2 MapCoordinate(Vector2 local, Rect rect)
|
||||
{
|
||||
Rect rect2 = this.activeSprite.rect;
|
||||
Vector2 vector;
|
||||
if (this.type == Image.Type.Simple || this.type == Image.Type.Filled)
|
||||
{
|
||||
vector = new Vector2(local.x * rect2.width / rect.width, local.y * rect2.height / rect.height);
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector4 border = this.activeSprite.border;
|
||||
Vector4 adjustedBorders = this.GetAdjustedBorders(border / this.pixelsPerUnit, rect);
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (local[i] > adjustedBorders[i])
|
||||
{
|
||||
if (rect.size[i] - local[i] <= adjustedBorders[i + 2])
|
||||
{
|
||||
ref Vector2 ptr = ref local;
|
||||
int num;
|
||||
local[num = i] = ptr[num] - (rect.size[i] - rect2.size[i]);
|
||||
}
|
||||
else if (this.type == Image.Type.Sliced)
|
||||
{
|
||||
float num2 = Mathf.InverseLerp(adjustedBorders[i], rect.size[i] - adjustedBorders[i + 2], local[i]);
|
||||
local[i] = Mathf.Lerp(border[i], rect2.size[i] - border[i + 2], num2);
|
||||
}
|
||||
else
|
||||
{
|
||||
ref Vector2 ptr = ref local;
|
||||
int num3;
|
||||
local[num3 = i] = ptr[num3] - adjustedBorders[i];
|
||||
local[i] = Mathf.Repeat(local[i], rect2.size[i] - border[i] - border[i + 2]);
|
||||
ptr = ref local;
|
||||
int num4;
|
||||
local[num4 = i] = ptr[num4] + border[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
vector = local;
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x04000128 RID: 296
|
||||
protected static Material s_ETC1DefaultUI = null;
|
||||
|
||||
// Token: 0x04000129 RID: 297
|
||||
[FormerlySerializedAs("m_Frame")]
|
||||
[SerializeField]
|
||||
private Sprite m_Sprite;
|
||||
|
||||
// Token: 0x0400012A RID: 298
|
||||
[NonSerialized]
|
||||
private Sprite m_OverrideSprite;
|
||||
|
||||
// Token: 0x0400012B RID: 299
|
||||
[SerializeField]
|
||||
private Image.Type m_Type = Image.Type.Simple;
|
||||
|
||||
// Token: 0x0400012C RID: 300
|
||||
[SerializeField]
|
||||
private bool m_PreserveAspect = false;
|
||||
|
||||
// Token: 0x0400012D RID: 301
|
||||
[SerializeField]
|
||||
private bool m_FillCenter = true;
|
||||
|
||||
// Token: 0x0400012E RID: 302
|
||||
[SerializeField]
|
||||
private Image.FillMethod m_FillMethod = Image.FillMethod.Radial360;
|
||||
|
||||
// Token: 0x0400012F RID: 303
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
private float m_FillAmount = 1f;
|
||||
|
||||
// Token: 0x04000130 RID: 304
|
||||
[SerializeField]
|
||||
private bool m_FillClockwise = true;
|
||||
|
||||
// Token: 0x04000131 RID: 305
|
||||
[SerializeField]
|
||||
private int m_FillOrigin;
|
||||
|
||||
// Token: 0x04000132 RID: 306
|
||||
private float m_AlphaHitTestMinimumThreshold = 0f;
|
||||
|
||||
// Token: 0x04000133 RID: 307
|
||||
private static readonly Vector2[] s_VertScratch = new Vector2[4];
|
||||
|
||||
// Token: 0x04000134 RID: 308
|
||||
private static readonly Vector2[] s_UVScratch = new Vector2[4];
|
||||
|
||||
// Token: 0x04000135 RID: 309
|
||||
private static readonly Vector3[] s_Xy = new Vector3[4];
|
||||
|
||||
// Token: 0x04000136 RID: 310
|
||||
private static readonly Vector3[] s_Uv = new Vector3[4];
|
||||
|
||||
// Token: 0x0200004F RID: 79
|
||||
public enum Type
|
||||
{
|
||||
// Token: 0x04000138 RID: 312
|
||||
Simple,
|
||||
// Token: 0x04000139 RID: 313
|
||||
Sliced,
|
||||
// Token: 0x0400013A RID: 314
|
||||
Tiled,
|
||||
// Token: 0x0400013B RID: 315
|
||||
Filled
|
||||
}
|
||||
|
||||
// Token: 0x02000050 RID: 80
|
||||
public enum FillMethod
|
||||
{
|
||||
// Token: 0x0400013D RID: 317
|
||||
Horizontal,
|
||||
// Token: 0x0400013E RID: 318
|
||||
Vertical,
|
||||
// Token: 0x0400013F RID: 319
|
||||
Radial90,
|
||||
// Token: 0x04000140 RID: 320
|
||||
Radial180,
|
||||
// Token: 0x04000141 RID: 321
|
||||
Radial360
|
||||
}
|
||||
|
||||
// Token: 0x02000051 RID: 81
|
||||
public enum OriginHorizontal
|
||||
{
|
||||
// Token: 0x04000143 RID: 323
|
||||
Left,
|
||||
// Token: 0x04000144 RID: 324
|
||||
Right
|
||||
}
|
||||
|
||||
// Token: 0x02000052 RID: 82
|
||||
public enum OriginVertical
|
||||
{
|
||||
// Token: 0x04000146 RID: 326
|
||||
Bottom,
|
||||
// Token: 0x04000147 RID: 327
|
||||
Top
|
||||
}
|
||||
|
||||
// Token: 0x02000053 RID: 83
|
||||
public enum Origin90
|
||||
{
|
||||
// Token: 0x04000149 RID: 329
|
||||
BottomLeft,
|
||||
// Token: 0x0400014A RID: 330
|
||||
TopLeft,
|
||||
// Token: 0x0400014B RID: 331
|
||||
TopRight,
|
||||
// Token: 0x0400014C RID: 332
|
||||
BottomRight
|
||||
}
|
||||
|
||||
// Token: 0x02000054 RID: 84
|
||||
public enum Origin180
|
||||
{
|
||||
// Token: 0x0400014E RID: 334
|
||||
Bottom,
|
||||
// Token: 0x0400014F RID: 335
|
||||
Left,
|
||||
// Token: 0x04000150 RID: 336
|
||||
Top,
|
||||
// Token: 0x04000151 RID: 337
|
||||
Right
|
||||
}
|
||||
|
||||
// Token: 0x02000055 RID: 85
|
||||
public enum Origin360
|
||||
{
|
||||
// Token: 0x04000153 RID: 339
|
||||
Bottom,
|
||||
// Token: 0x04000154 RID: 340
|
||||
Right,
|
||||
// Token: 0x04000155 RID: 341
|
||||
Top,
|
||||
// Token: 0x04000156 RID: 342
|
||||
Left
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2938 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000058 RID: 88
|
||||
[AddComponentMenu("UI/Input Field", 31)]
|
||||
public class InputField : Selectable, IUpdateSelectedHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClickHandler, ISubmitHandler, ICanvasElement, ILayoutElement, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x060002AF RID: 687 RVA: 0x0000FA34 File Offset: 0x0000DE34
|
||||
protected InputField()
|
||||
{
|
||||
this.EnforceTextHOverflow();
|
||||
}
|
||||
|
||||
// Token: 0x170000BB RID: 187
|
||||
// (get) Token: 0x060002B0 RID: 688 RVA: 0x0000FB90 File Offset: 0x0000DF90
|
||||
private BaseInput input
|
||||
{
|
||||
get
|
||||
{
|
||||
BaseInput baseInput;
|
||||
if (EventSystem.current && EventSystem.current.currentInputModule)
|
||||
{
|
||||
baseInput = EventSystem.current.currentInputModule.input;
|
||||
}
|
||||
else
|
||||
{
|
||||
baseInput = null;
|
||||
}
|
||||
return baseInput;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000BC RID: 188
|
||||
// (get) Token: 0x060002B1 RID: 689 RVA: 0x0000FBE0 File Offset: 0x0000DFE0
|
||||
private string compositionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return (!(this.input != null)) ? Input.compositionString : this.input.compositionString;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000BD RID: 189
|
||||
// (get) Token: 0x060002B2 RID: 690 RVA: 0x0000FC1C File Offset: 0x0000E01C
|
||||
protected Mesh mesh
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Mesh == null)
|
||||
{
|
||||
this.m_Mesh = new Mesh();
|
||||
}
|
||||
return this.m_Mesh;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000BE RID: 190
|
||||
// (get) Token: 0x060002B3 RID: 691 RVA: 0x0000FC54 File Offset: 0x0000E054
|
||||
protected TextGenerator cachedInputTextGenerator
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_InputTextCache == null)
|
||||
{
|
||||
this.m_InputTextCache = new TextGenerator();
|
||||
}
|
||||
return this.m_InputTextCache;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000BF RID: 191
|
||||
// (get) Token: 0x060002B5 RID: 693 RVA: 0x0000FC98 File Offset: 0x0000E098
|
||||
// (set) Token: 0x060002B4 RID: 692 RVA: 0x0000FC85 File Offset: 0x0000E085
|
||||
public bool shouldHideMobileInput
|
||||
{
|
||||
get
|
||||
{
|
||||
RuntimePlatform platform = Application.platform;
|
||||
switch (platform)
|
||||
{
|
||||
case RuntimePlatform.IPhonePlayer:
|
||||
case RuntimePlatform.Android:
|
||||
break;
|
||||
default:
|
||||
if (platform != RuntimePlatform.TizenPlayer && platform != RuntimePlatform.tvOS)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return this.m_HideMobileInput;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetPropertyUtility.SetStruct<bool>(ref this.m_HideMobileInput, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C0 RID: 192
|
||||
// (get) Token: 0x060002B6 RID: 694 RVA: 0x0000FCF0 File Offset: 0x0000E0F0
|
||||
private bool shouldActivateOnSelect
|
||||
{
|
||||
get
|
||||
{
|
||||
return Application.platform != RuntimePlatform.tvOS;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C1 RID: 193
|
||||
// (get) Token: 0x060002B7 RID: 695 RVA: 0x0000FD14 File Offset: 0x0000E114
|
||||
// (set) Token: 0x060002B8 RID: 696 RVA: 0x0000FD30 File Offset: 0x0000E130
|
||||
public string text
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!(this.text == value))
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
value = "";
|
||||
}
|
||||
value = value.Replace("\0", string.Empty);
|
||||
if (this.m_LineType == InputField.LineType.SingleLine)
|
||||
{
|
||||
value = value.Replace("\n", "").Replace("\t", "");
|
||||
}
|
||||
if (this.onValidateInput != null || this.characterValidation != InputField.CharacterValidation.None)
|
||||
{
|
||||
this.m_Text = "";
|
||||
InputField.OnValidateInput onValidateInput = this.onValidateInput ?? new InputField.OnValidateInput(this.Validate);
|
||||
this.m_CaretPosition = (this.m_CaretSelectPosition = value.Length);
|
||||
int num = ((this.characterLimit <= 0) ? value.Length : Math.Min(this.characterLimit, value.Length));
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
char c = onValidateInput(this.m_Text, this.m_Text.Length, value[i]);
|
||||
if (c != '\0')
|
||||
{
|
||||
this.m_Text += c;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Text = ((this.characterLimit <= 0 || value.Length <= this.characterLimit) ? value : value.Substring(0, this.characterLimit));
|
||||
}
|
||||
if (this.m_Keyboard != null)
|
||||
{
|
||||
this.m_Keyboard.text = this.m_Text;
|
||||
}
|
||||
if (this.m_CaretPosition > this.m_Text.Length)
|
||||
{
|
||||
this.m_CaretPosition = (this.m_CaretSelectPosition = this.m_Text.Length);
|
||||
}
|
||||
else if (this.m_CaretSelectPosition > this.m_Text.Length)
|
||||
{
|
||||
this.m_CaretSelectPosition = this.m_Text.Length;
|
||||
}
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C2 RID: 194
|
||||
// (get) Token: 0x060002B9 RID: 697 RVA: 0x0000FF28 File Offset: 0x0000E328
|
||||
public bool isFocused
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AllowInput;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C3 RID: 195
|
||||
// (get) Token: 0x060002BA RID: 698 RVA: 0x0000FF44 File Offset: 0x0000E344
|
||||
// (set) Token: 0x060002BB RID: 699 RVA: 0x0000FF5F File Offset: 0x0000E35F
|
||||
public float caretBlinkRate
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretBlinkRate;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_CaretBlinkRate, value))
|
||||
{
|
||||
if (this.m_AllowInput)
|
||||
{
|
||||
this.SetCaretActive();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C4 RID: 196
|
||||
// (get) Token: 0x060002BC RID: 700 RVA: 0x0000FF88 File Offset: 0x0000E388
|
||||
// (set) Token: 0x060002BD RID: 701 RVA: 0x0000FFA3 File Offset: 0x0000E3A3
|
||||
public int caretWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretWidth;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<int>(ref this.m_CaretWidth, value))
|
||||
{
|
||||
this.MarkGeometryAsDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C5 RID: 197
|
||||
// (get) Token: 0x060002BE RID: 702 RVA: 0x0000FFC0 File Offset: 0x0000E3C0
|
||||
// (set) Token: 0x060002BF RID: 703 RVA: 0x0000FFDC File Offset: 0x0000E3DC
|
||||
public Text textComponent
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_TextComponent;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_TextComponent != null)
|
||||
{
|
||||
this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty));
|
||||
this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel));
|
||||
this.m_TextComponent.UnregisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial));
|
||||
}
|
||||
if (SetPropertyUtility.SetClass<Text>(ref this.m_TextComponent, value))
|
||||
{
|
||||
this.EnforceTextHOverflow();
|
||||
if (this.m_TextComponent != null)
|
||||
{
|
||||
this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty));
|
||||
this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel));
|
||||
this.m_TextComponent.RegisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C6 RID: 198
|
||||
// (get) Token: 0x060002C0 RID: 704 RVA: 0x000100B4 File Offset: 0x0000E4B4
|
||||
// (set) Token: 0x060002C1 RID: 705 RVA: 0x000100CF File Offset: 0x0000E4CF
|
||||
public Graphic placeholder
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Placeholder;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetPropertyUtility.SetClass<Graphic>(ref this.m_Placeholder, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C7 RID: 199
|
||||
// (get) Token: 0x060002C2 RID: 706 RVA: 0x000100E0 File Offset: 0x0000E4E0
|
||||
// (set) Token: 0x060002C3 RID: 707 RVA: 0x00010116 File Offset: 0x0000E516
|
||||
public Color caretColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return (!this.customCaretColor) ? this.textComponent.color : this.m_CaretColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetColor(ref this.m_CaretColor, value))
|
||||
{
|
||||
this.MarkGeometryAsDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C8 RID: 200
|
||||
// (get) Token: 0x060002C4 RID: 708 RVA: 0x00010130 File Offset: 0x0000E530
|
||||
// (set) Token: 0x060002C5 RID: 709 RVA: 0x0001014B File Offset: 0x0000E54B
|
||||
public bool customCaretColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CustomCaretColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_CustomCaretColor != value)
|
||||
{
|
||||
this.m_CustomCaretColor = value;
|
||||
this.MarkGeometryAsDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000C9 RID: 201
|
||||
// (get) Token: 0x060002C6 RID: 710 RVA: 0x0001016C File Offset: 0x0000E56C
|
||||
// (set) Token: 0x060002C7 RID: 711 RVA: 0x00010187 File Offset: 0x0000E587
|
||||
public Color selectionColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_SelectionColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetColor(ref this.m_SelectionColor, value))
|
||||
{
|
||||
this.MarkGeometryAsDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000CA RID: 202
|
||||
// (get) Token: 0x060002C8 RID: 712 RVA: 0x000101A4 File Offset: 0x0000E5A4
|
||||
// (set) Token: 0x060002C9 RID: 713 RVA: 0x000101BF File Offset: 0x0000E5BF
|
||||
public InputField.SubmitEvent onEndEdit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnEndEdit;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetPropertyUtility.SetClass<InputField.SubmitEvent>(ref this.m_OnEndEdit, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000CB RID: 203
|
||||
// (get) Token: 0x060002CA RID: 714 RVA: 0x000101D0 File Offset: 0x0000E5D0
|
||||
// (set) Token: 0x060002CB RID: 715 RVA: 0x000101EB File Offset: 0x0000E5EB
|
||||
[Obsolete("onValueChange has been renamed to onValueChanged")]
|
||||
public InputField.OnChangeEvent onValueChange
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.onValueChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.onValueChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000CC RID: 204
|
||||
// (get) Token: 0x060002CC RID: 716 RVA: 0x000101F8 File Offset: 0x0000E5F8
|
||||
// (set) Token: 0x060002CD RID: 717 RVA: 0x00010213 File Offset: 0x0000E613
|
||||
public InputField.OnChangeEvent onValueChanged
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnValueChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetPropertyUtility.SetClass<InputField.OnChangeEvent>(ref this.m_OnValueChanged, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000CD RID: 205
|
||||
// (get) Token: 0x060002CE RID: 718 RVA: 0x00010224 File Offset: 0x0000E624
|
||||
// (set) Token: 0x060002CF RID: 719 RVA: 0x0001023F File Offset: 0x0000E63F
|
||||
public InputField.OnValidateInput onValidateInput
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnValidateInput;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetPropertyUtility.SetClass<InputField.OnValidateInput>(ref this.m_OnValidateInput, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000CE RID: 206
|
||||
// (get) Token: 0x060002D0 RID: 720 RVA: 0x00010250 File Offset: 0x0000E650
|
||||
// (set) Token: 0x060002D1 RID: 721 RVA: 0x0001026B File Offset: 0x0000E66B
|
||||
public int characterLimit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CharacterLimit;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<int>(ref this.m_CharacterLimit, Math.Max(0, value)))
|
||||
{
|
||||
this.UpdateLabel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000CF RID: 207
|
||||
// (get) Token: 0x060002D2 RID: 722 RVA: 0x0001028C File Offset: 0x0000E68C
|
||||
// (set) Token: 0x060002D3 RID: 723 RVA: 0x000102A7 File Offset: 0x0000E6A7
|
||||
public InputField.ContentType contentType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ContentType;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<InputField.ContentType>(ref this.m_ContentType, value))
|
||||
{
|
||||
this.EnforceContentType();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D0 RID: 208
|
||||
// (get) Token: 0x060002D4 RID: 724 RVA: 0x000102C4 File Offset: 0x0000E6C4
|
||||
// (set) Token: 0x060002D5 RID: 725 RVA: 0x000102DF File Offset: 0x0000E6DF
|
||||
public InputField.LineType lineType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_LineType;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<InputField.LineType>(ref this.m_LineType, value))
|
||||
{
|
||||
this.SetToCustomIfContentTypeIsNot(new InputField.ContentType[]
|
||||
{
|
||||
InputField.ContentType.Standard,
|
||||
InputField.ContentType.Autocorrected
|
||||
});
|
||||
this.EnforceTextHOverflow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D1 RID: 209
|
||||
// (get) Token: 0x060002D6 RID: 726 RVA: 0x0001030C File Offset: 0x0000E70C
|
||||
// (set) Token: 0x060002D7 RID: 727 RVA: 0x00010327 File Offset: 0x0000E727
|
||||
public InputField.InputType inputType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_InputType;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<InputField.InputType>(ref this.m_InputType, value))
|
||||
{
|
||||
this.SetToCustom();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D2 RID: 210
|
||||
// (get) Token: 0x060002D8 RID: 728 RVA: 0x00010344 File Offset: 0x0000E744
|
||||
// (set) Token: 0x060002D9 RID: 729 RVA: 0x0001035F File Offset: 0x0000E75F
|
||||
public TouchScreenKeyboardType keyboardType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_KeyboardType;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == TouchScreenKeyboardType.NintendoNetworkAccount)
|
||||
{
|
||||
Debug.LogWarning("Invalid InputField.keyboardType value set. TouchScreenKeyboardType.NintendoNetworkAccount only applies to the Wii U. InputField.keyboardType will default to TouchScreenKeyboardType.Default .");
|
||||
}
|
||||
if (SetPropertyUtility.SetStruct<TouchScreenKeyboardType>(ref this.m_KeyboardType, value))
|
||||
{
|
||||
this.SetToCustom();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D3 RID: 211
|
||||
// (get) Token: 0x060002DA RID: 730 RVA: 0x0001038C File Offset: 0x0000E78C
|
||||
// (set) Token: 0x060002DB RID: 731 RVA: 0x000103A7 File Offset: 0x0000E7A7
|
||||
public InputField.CharacterValidation characterValidation
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CharacterValidation;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<InputField.CharacterValidation>(ref this.m_CharacterValidation, value))
|
||||
{
|
||||
this.SetToCustom();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D4 RID: 212
|
||||
// (get) Token: 0x060002DC RID: 732 RVA: 0x000103C4 File Offset: 0x0000E7C4
|
||||
// (set) Token: 0x060002DD RID: 733 RVA: 0x000103DF File Offset: 0x0000E7DF
|
||||
public bool readOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ReadOnly;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ReadOnly = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D5 RID: 213
|
||||
// (get) Token: 0x060002DE RID: 734 RVA: 0x000103EC File Offset: 0x0000E7EC
|
||||
public bool multiLine
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_LineType == InputField.LineType.MultiLineNewline || this.lineType == InputField.LineType.MultiLineSubmit;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D6 RID: 214
|
||||
// (get) Token: 0x060002DF RID: 735 RVA: 0x0001041C File Offset: 0x0000E81C
|
||||
// (set) Token: 0x060002E0 RID: 736 RVA: 0x00010437 File Offset: 0x0000E837
|
||||
public char asteriskChar
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AsteriskChar;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<char>(ref this.m_AsteriskChar, value))
|
||||
{
|
||||
this.UpdateLabel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D7 RID: 215
|
||||
// (get) Token: 0x060002E1 RID: 737 RVA: 0x00010454 File Offset: 0x0000E854
|
||||
public bool wasCanceled
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_WasCanceled;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002E2 RID: 738 RVA: 0x0001046F File Offset: 0x0000E86F
|
||||
protected void ClampPos(ref int pos)
|
||||
{
|
||||
if (pos < 0)
|
||||
{
|
||||
pos = 0;
|
||||
}
|
||||
else if (pos > this.text.Length)
|
||||
{
|
||||
pos = this.text.Length;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D8 RID: 216
|
||||
// (get) Token: 0x060002E3 RID: 739 RVA: 0x000104A4 File Offset: 0x0000E8A4
|
||||
// (set) Token: 0x060002E4 RID: 740 RVA: 0x000104CB File Offset: 0x0000E8CB
|
||||
protected int caretPositionInternal
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretPosition + this.compositionString.Length;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_CaretPosition = value;
|
||||
this.ClampPos(ref this.m_CaretPosition);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D9 RID: 217
|
||||
// (get) Token: 0x060002E5 RID: 741 RVA: 0x000104E4 File Offset: 0x0000E8E4
|
||||
// (set) Token: 0x060002E6 RID: 742 RVA: 0x0001050B File Offset: 0x0000E90B
|
||||
protected int caretSelectPositionInternal
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretSelectPosition + this.compositionString.Length;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_CaretSelectPosition = value;
|
||||
this.ClampPos(ref this.m_CaretSelectPosition);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DA RID: 218
|
||||
// (get) Token: 0x060002E7 RID: 743 RVA: 0x00010524 File Offset: 0x0000E924
|
||||
private bool hasSelection
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.caretPositionInternal != this.caretSelectPositionInternal;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DB RID: 219
|
||||
// (get) Token: 0x060002E8 RID: 744 RVA: 0x0001054C File Offset: 0x0000E94C
|
||||
// (set) Token: 0x060002E9 RID: 745 RVA: 0x00010573 File Offset: 0x0000E973
|
||||
public int caretPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretSelectPosition + this.compositionString.Length;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.selectionAnchorPosition = value;
|
||||
this.selectionFocusPosition = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DC RID: 220
|
||||
// (get) Token: 0x060002EA RID: 746 RVA: 0x00010584 File Offset: 0x0000E984
|
||||
// (set) Token: 0x060002EB RID: 747 RVA: 0x000105AB File Offset: 0x0000E9AB
|
||||
public int selectionAnchorPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretPosition + this.compositionString.Length;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.compositionString.Length == 0)
|
||||
{
|
||||
this.m_CaretPosition = value;
|
||||
this.ClampPos(ref this.m_CaretPosition);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DD RID: 221
|
||||
// (get) Token: 0x060002EC RID: 748 RVA: 0x000105D8 File Offset: 0x0000E9D8
|
||||
// (set) Token: 0x060002ED RID: 749 RVA: 0x000105FF File Offset: 0x0000E9FF
|
||||
public int selectionFocusPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CaretSelectPosition + this.compositionString.Length;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.compositionString.Length == 0)
|
||||
{
|
||||
this.m_CaretSelectPosition = value;
|
||||
this.ClampPos(ref this.m_CaretSelectPosition);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002EE RID: 750 RVA: 0x0001062C File Offset: 0x0000EA2C
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
if (this.m_Text == null)
|
||||
{
|
||||
this.m_Text = string.Empty;
|
||||
}
|
||||
this.m_DrawStart = 0;
|
||||
this.m_DrawEnd = this.m_Text.Length;
|
||||
if (this.m_CachedInputRenderer != null)
|
||||
{
|
||||
this.m_CachedInputRenderer.SetMaterial(this.m_TextComponent.GetModifiedMaterial(Graphic.defaultGraphicMaterial), Texture2D.whiteTexture);
|
||||
}
|
||||
if (this.m_TextComponent != null)
|
||||
{
|
||||
this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty));
|
||||
this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel));
|
||||
this.m_TextComponent.RegisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial));
|
||||
this.UpdateLabel();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002EF RID: 751 RVA: 0x00010700 File Offset: 0x0000EB00
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.m_BlinkCoroutine = null;
|
||||
this.DeactivateInputField();
|
||||
if (this.m_TextComponent != null)
|
||||
{
|
||||
this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty));
|
||||
this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel));
|
||||
this.m_TextComponent.UnregisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial));
|
||||
}
|
||||
CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);
|
||||
if (this.m_CachedInputRenderer != null)
|
||||
{
|
||||
this.m_CachedInputRenderer.Clear();
|
||||
}
|
||||
if (this.m_Mesh != null)
|
||||
{
|
||||
Object.DestroyImmediate(this.m_Mesh);
|
||||
}
|
||||
this.m_Mesh = null;
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x060002F0 RID: 752 RVA: 0x000107C0 File Offset: 0x0000EBC0
|
||||
private IEnumerator CaretBlink()
|
||||
{
|
||||
this.m_CaretVisible = true;
|
||||
yield return null;
|
||||
while (this.isFocused && this.m_CaretBlinkRate > 0f)
|
||||
{
|
||||
float blinkPeriod = 1f / this.m_CaretBlinkRate;
|
||||
bool blinkState = (Time.unscaledTime - this.m_BlinkStartTime) % blinkPeriod < blinkPeriod / 2f;
|
||||
if (this.m_CaretVisible != blinkState)
|
||||
{
|
||||
this.m_CaretVisible = blinkState;
|
||||
if (!this.hasSelection)
|
||||
{
|
||||
this.MarkGeometryAsDirty();
|
||||
}
|
||||
}
|
||||
yield return null;
|
||||
}
|
||||
this.m_BlinkCoroutine = null;
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x060002F1 RID: 753 RVA: 0x000107E2 File Offset: 0x0000EBE2
|
||||
private void SetCaretVisible()
|
||||
{
|
||||
if (this.m_AllowInput)
|
||||
{
|
||||
this.m_CaretVisible = true;
|
||||
this.m_BlinkStartTime = Time.unscaledTime;
|
||||
this.SetCaretActive();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002F2 RID: 754 RVA: 0x00010810 File Offset: 0x0000EC10
|
||||
private void SetCaretActive()
|
||||
{
|
||||
if (this.m_AllowInput)
|
||||
{
|
||||
if (this.m_CaretBlinkRate > 0f)
|
||||
{
|
||||
if (this.m_BlinkCoroutine == null)
|
||||
{
|
||||
this.m_BlinkCoroutine = base.StartCoroutine(this.CaretBlink());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_CaretVisible = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002F3 RID: 755 RVA: 0x0001086C File Offset: 0x0000EC6C
|
||||
private void UpdateCaretMaterial()
|
||||
{
|
||||
if (this.m_TextComponent != null && this.m_CachedInputRenderer != null)
|
||||
{
|
||||
this.m_CachedInputRenderer.SetMaterial(this.m_TextComponent.GetModifiedMaterial(Graphic.defaultGraphicMaterial), Texture2D.whiteTexture);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002F4 RID: 756 RVA: 0x000108BC File Offset: 0x0000ECBC
|
||||
protected void OnFocus()
|
||||
{
|
||||
this.SelectAll();
|
||||
}
|
||||
|
||||
// Token: 0x060002F5 RID: 757 RVA: 0x000108C5 File Offset: 0x0000ECC5
|
||||
protected void SelectAll()
|
||||
{
|
||||
this.caretPositionInternal = this.text.Length;
|
||||
this.caretSelectPositionInternal = 0;
|
||||
}
|
||||
|
||||
// Token: 0x060002F6 RID: 758 RVA: 0x000108E0 File Offset: 0x0000ECE0
|
||||
public void MoveTextEnd(bool shift)
|
||||
{
|
||||
int length = this.text.Length;
|
||||
if (shift)
|
||||
{
|
||||
this.caretSelectPositionInternal = length;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.caretPositionInternal = length;
|
||||
this.caretSelectPositionInternal = this.caretPositionInternal;
|
||||
}
|
||||
this.UpdateLabel();
|
||||
}
|
||||
|
||||
// Token: 0x060002F7 RID: 759 RVA: 0x0001092C File Offset: 0x0000ED2C
|
||||
public void MoveTextStart(bool shift)
|
||||
{
|
||||
int num = 0;
|
||||
if (shift)
|
||||
{
|
||||
this.caretSelectPositionInternal = num;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.caretPositionInternal = num;
|
||||
this.caretSelectPositionInternal = this.caretPositionInternal;
|
||||
}
|
||||
this.UpdateLabel();
|
||||
}
|
||||
|
||||
// Token: 0x170000DE RID: 222
|
||||
// (get) Token: 0x060002F8 RID: 760 RVA: 0x0001096C File Offset: 0x0000ED6C
|
||||
// (set) Token: 0x060002F9 RID: 761 RVA: 0x00010986 File Offset: 0x0000ED86
|
||||
private static string clipboard
|
||||
{
|
||||
get
|
||||
{
|
||||
return GUIUtility.systemCopyBuffer;
|
||||
}
|
||||
set
|
||||
{
|
||||
GUIUtility.systemCopyBuffer = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002FA RID: 762 RVA: 0x00010990 File Offset: 0x0000ED90
|
||||
private bool InPlaceEditing()
|
||||
{
|
||||
return !TouchScreenKeyboard.isSupported;
|
||||
}
|
||||
|
||||
// Token: 0x060002FB RID: 763 RVA: 0x000109B0 File Offset: 0x0000EDB0
|
||||
private void UpdateCaretFromKeyboard()
|
||||
{
|
||||
RangeInt selection = this.m_Keyboard.selection;
|
||||
int start = selection.start;
|
||||
int end = selection.end;
|
||||
bool flag = false;
|
||||
if (this.caretPositionInternal != start)
|
||||
{
|
||||
flag = true;
|
||||
this.caretPositionInternal = start;
|
||||
}
|
||||
if (this.caretSelectPositionInternal != end)
|
||||
{
|
||||
this.caretSelectPositionInternal = end;
|
||||
flag = true;
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
this.m_BlinkStartTime = Time.unscaledTime;
|
||||
this.UpdateLabel();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002FC RID: 764 RVA: 0x00010A24 File Offset: 0x0000EE24
|
||||
protected virtual void LateUpdate()
|
||||
{
|
||||
if (this.m_ShouldActivateNextUpdate)
|
||||
{
|
||||
if (!this.isFocused)
|
||||
{
|
||||
this.ActivateInputFieldInternal();
|
||||
this.m_ShouldActivateNextUpdate = false;
|
||||
return;
|
||||
}
|
||||
this.m_ShouldActivateNextUpdate = false;
|
||||
}
|
||||
if (!this.InPlaceEditing() && this.isFocused)
|
||||
{
|
||||
this.AssignPositioningIfNeeded();
|
||||
if (this.m_Keyboard == null || this.m_Keyboard.done)
|
||||
{
|
||||
if (this.m_Keyboard != null)
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
this.text = this.m_Keyboard.text;
|
||||
}
|
||||
if (this.m_Keyboard.wasCanceled)
|
||||
{
|
||||
this.m_WasCanceled = true;
|
||||
}
|
||||
}
|
||||
this.OnDeselect(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
string text = this.m_Keyboard.text;
|
||||
if (this.m_Text != text)
|
||||
{
|
||||
if (this.m_ReadOnly)
|
||||
{
|
||||
this.m_Keyboard.text = this.m_Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Text = "";
|
||||
foreach (char c in text)
|
||||
{
|
||||
if (c == '\r' || c == '\u0003')
|
||||
{
|
||||
c = '\n';
|
||||
}
|
||||
if (this.onValidateInput != null)
|
||||
{
|
||||
c = this.onValidateInput(this.m_Text, this.m_Text.Length, c);
|
||||
}
|
||||
else if (this.characterValidation != InputField.CharacterValidation.None)
|
||||
{
|
||||
c = this.Validate(this.m_Text, this.m_Text.Length, c);
|
||||
}
|
||||
if (this.lineType == InputField.LineType.MultiLineSubmit && c == '\n')
|
||||
{
|
||||
this.m_Keyboard.text = this.m_Text;
|
||||
this.OnDeselect(null);
|
||||
return;
|
||||
}
|
||||
if (c != '\0')
|
||||
{
|
||||
this.m_Text += c;
|
||||
}
|
||||
}
|
||||
if (this.characterLimit > 0 && this.m_Text.Length > this.characterLimit)
|
||||
{
|
||||
this.m_Text = this.m_Text.Substring(0, this.characterLimit);
|
||||
}
|
||||
if (this.m_Keyboard.canGetSelection)
|
||||
{
|
||||
this.UpdateCaretFromKeyboard();
|
||||
}
|
||||
else
|
||||
{
|
||||
int length = this.m_Text.Length;
|
||||
this.caretSelectPositionInternal = length;
|
||||
this.caretPositionInternal = length;
|
||||
}
|
||||
if (this.m_Text != text)
|
||||
{
|
||||
this.m_Keyboard.text = this.m_Text;
|
||||
}
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
}
|
||||
}
|
||||
else if (this.m_Keyboard.canGetSelection)
|
||||
{
|
||||
this.UpdateCaretFromKeyboard();
|
||||
}
|
||||
if (this.m_Keyboard.done)
|
||||
{
|
||||
if (this.m_Keyboard.wasCanceled)
|
||||
{
|
||||
this.m_WasCanceled = true;
|
||||
}
|
||||
this.OnDeselect(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060002FD RID: 765 RVA: 0x00010CF8 File Offset: 0x0000F0F8
|
||||
[Obsolete("This function is no longer used. Please use RectTransformUtility.ScreenPointToLocalPointInRectangle() instead.")]
|
||||
public Vector2 ScreenToLocal(Vector2 screen)
|
||||
{
|
||||
Canvas canvas = this.m_TextComponent.canvas;
|
||||
Vector2 vector;
|
||||
if (canvas == null)
|
||||
{
|
||||
vector = screen;
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 vector2 = Vector3.zero;
|
||||
if (canvas.renderMode == RenderMode.ScreenSpaceOverlay)
|
||||
{
|
||||
vector2 = this.m_TextComponent.transform.InverseTransformPoint(screen);
|
||||
}
|
||||
else if (canvas.worldCamera != null)
|
||||
{
|
||||
Ray ray = canvas.worldCamera.ScreenPointToRay(screen);
|
||||
Plane plane = new Plane(this.m_TextComponent.transform.forward, this.m_TextComponent.transform.position);
|
||||
float num;
|
||||
plane.Raycast(ray, out num);
|
||||
vector2 = this.m_TextComponent.transform.InverseTransformPoint(ray.GetPoint(num));
|
||||
}
|
||||
vector = new Vector2(vector2.x, vector2.y);
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x060002FE RID: 766 RVA: 0x00010DE0 File Offset: 0x0000F1E0
|
||||
private int GetUnclampedCharacterLineFromPosition(Vector2 pos, TextGenerator generator)
|
||||
{
|
||||
int num;
|
||||
if (!this.multiLine)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
float num2 = pos.y * this.m_TextComponent.pixelsPerUnit;
|
||||
float num3 = 0f;
|
||||
int i = 0;
|
||||
while (i < generator.lineCount)
|
||||
{
|
||||
float topY = generator.lines[i].topY;
|
||||
float num4 = topY - (float)generator.lines[i].height;
|
||||
if (num2 > topY)
|
||||
{
|
||||
float num5 = topY - num3;
|
||||
if (num2 > topY - 0.5f * num5)
|
||||
{
|
||||
return i - 1;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (num2 > num4)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
num3 = num4;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
num = generator.lineCount;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x060002FF RID: 767 RVA: 0x00010EB4 File Offset: 0x0000F2B4
|
||||
protected int GetCharacterIndexFromPosition(Vector2 pos)
|
||||
{
|
||||
TextGenerator cachedTextGenerator = this.m_TextComponent.cachedTextGenerator;
|
||||
int num;
|
||||
if (cachedTextGenerator.lineCount == 0)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
int unclampedCharacterLineFromPosition = this.GetUnclampedCharacterLineFromPosition(pos, cachedTextGenerator);
|
||||
if (unclampedCharacterLineFromPosition < 0)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else if (unclampedCharacterLineFromPosition >= cachedTextGenerator.lineCount)
|
||||
{
|
||||
num = cachedTextGenerator.characterCountVisible;
|
||||
}
|
||||
else
|
||||
{
|
||||
int startCharIdx = cachedTextGenerator.lines[unclampedCharacterLineFromPosition].startCharIdx;
|
||||
int lineEndPosition = InputField.GetLineEndPosition(cachedTextGenerator, unclampedCharacterLineFromPosition);
|
||||
for (int i = startCharIdx; i < lineEndPosition; i++)
|
||||
{
|
||||
if (i >= cachedTextGenerator.characterCountVisible)
|
||||
{
|
||||
break;
|
||||
}
|
||||
UICharInfo uicharInfo = cachedTextGenerator.characters[i];
|
||||
Vector2 vector = uicharInfo.cursorPos / this.m_TextComponent.pixelsPerUnit;
|
||||
float num2 = pos.x - vector.x;
|
||||
float num3 = vector.x + uicharInfo.charWidth / this.m_TextComponent.pixelsPerUnit - pos.x;
|
||||
if (num2 < num3)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
num = lineEndPosition;
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000300 RID: 768 RVA: 0x00010FD4 File Offset: 0x0000F3D4
|
||||
private bool MayDrag(PointerEventData eventData)
|
||||
{
|
||||
return this.IsActive() && this.IsInteractable() && eventData.button == PointerEventData.InputButton.Left && this.m_TextComponent != null && this.m_Keyboard == null;
|
||||
}
|
||||
|
||||
// Token: 0x06000301 RID: 769 RVA: 0x00011027 File Offset: 0x0000F427
|
||||
public virtual void OnBeginDrag(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
this.m_UpdateDrag = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000302 RID: 770 RVA: 0x00011044 File Offset: 0x0000F444
|
||||
public virtual void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
Vector2 vector;
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera, out vector);
|
||||
this.caretSelectPositionInternal = this.GetCharacterIndexFromPosition(vector) + this.m_DrawStart;
|
||||
this.MarkGeometryAsDirty();
|
||||
this.m_DragPositionOutOfBounds = !RectTransformUtility.RectangleContainsScreenPoint(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera);
|
||||
if (this.m_DragPositionOutOfBounds && this.m_DragCoroutine == null)
|
||||
{
|
||||
this.m_DragCoroutine = base.StartCoroutine(this.MouseDragOutsideRect(eventData));
|
||||
}
|
||||
eventData.Use();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000303 RID: 771 RVA: 0x000110F0 File Offset: 0x0000F4F0
|
||||
private IEnumerator MouseDragOutsideRect(PointerEventData eventData)
|
||||
{
|
||||
while (this.m_UpdateDrag && this.m_DragPositionOutOfBounds)
|
||||
{
|
||||
Vector2 localMousePos;
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera, out localMousePos);
|
||||
Rect rect = this.textComponent.rectTransform.rect;
|
||||
if (this.multiLine)
|
||||
{
|
||||
if (localMousePos.y > rect.yMax)
|
||||
{
|
||||
this.MoveUp(true, true);
|
||||
}
|
||||
else if (localMousePos.y < rect.yMin)
|
||||
{
|
||||
this.MoveDown(true, true);
|
||||
}
|
||||
}
|
||||
else if (localMousePos.x < rect.xMin)
|
||||
{
|
||||
this.MoveLeft(true, false);
|
||||
}
|
||||
else if (localMousePos.x > rect.xMax)
|
||||
{
|
||||
this.MoveRight(true, false);
|
||||
}
|
||||
this.UpdateLabel();
|
||||
float delay = ((!this.multiLine) ? 0.05f : 0.1f);
|
||||
yield return new WaitForSecondsRealtime(delay);
|
||||
}
|
||||
this.m_DragCoroutine = null;
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x06000304 RID: 772 RVA: 0x00011119 File Offset: 0x0000F519
|
||||
public virtual void OnEndDrag(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
this.m_UpdateDrag = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000305 RID: 773 RVA: 0x00011134 File Offset: 0x0000F534
|
||||
public override void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
EventSystem.current.SetSelectedGameObject(base.gameObject, eventData);
|
||||
bool allowInput = this.m_AllowInput;
|
||||
base.OnPointerDown(eventData);
|
||||
if (!this.InPlaceEditing())
|
||||
{
|
||||
if (this.m_Keyboard == null || !this.m_Keyboard.active)
|
||||
{
|
||||
this.OnSelect(eventData);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (allowInput)
|
||||
{
|
||||
Vector2 vector;
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera, out vector);
|
||||
int num = this.GetCharacterIndexFromPosition(vector) + this.m_DrawStart;
|
||||
this.caretPositionInternal = num;
|
||||
this.caretSelectPositionInternal = num;
|
||||
}
|
||||
this.UpdateLabel();
|
||||
eventData.Use();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000306 RID: 774 RVA: 0x000111F8 File Offset: 0x0000F5F8
|
||||
protected InputField.EditState KeyPressed(Event evt)
|
||||
{
|
||||
EventModifiers modifiers = evt.modifiers;
|
||||
bool flag = ((SystemInfo.operatingSystemFamily != OperatingSystemFamily.MacOSX) ? ((modifiers & EventModifiers.Control) != EventModifiers.None) : ((modifiers & EventModifiers.Command) != EventModifiers.None));
|
||||
bool flag2 = (modifiers & EventModifiers.Shift) != EventModifiers.None;
|
||||
bool flag3 = (modifiers & EventModifiers.Alt) != EventModifiers.None;
|
||||
bool flag4 = flag && !flag3 && !flag2;
|
||||
KeyCode keyCode = evt.keyCode;
|
||||
switch (keyCode)
|
||||
{
|
||||
case KeyCode.KeypadEnter:
|
||||
break;
|
||||
default:
|
||||
switch (keyCode)
|
||||
{
|
||||
case KeyCode.A:
|
||||
if (flag4)
|
||||
{
|
||||
this.SelectAll();
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
goto IL_24D;
|
||||
default:
|
||||
switch (keyCode)
|
||||
{
|
||||
case KeyCode.V:
|
||||
if (flag4)
|
||||
{
|
||||
this.Append(InputField.clipboard);
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
goto IL_24D;
|
||||
default:
|
||||
if (keyCode == KeyCode.Backspace)
|
||||
{
|
||||
this.Backspace();
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
if (keyCode != KeyCode.Return)
|
||||
{
|
||||
if (keyCode == KeyCode.Escape)
|
||||
{
|
||||
this.m_WasCanceled = true;
|
||||
return InputField.EditState.Finish;
|
||||
}
|
||||
if (keyCode != KeyCode.Delete)
|
||||
{
|
||||
goto IL_24D;
|
||||
}
|
||||
this.ForwardSpace();
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
break;
|
||||
case KeyCode.X:
|
||||
if (flag4)
|
||||
{
|
||||
if (this.inputType != InputField.InputType.Password)
|
||||
{
|
||||
InputField.clipboard = this.GetSelectedString();
|
||||
}
|
||||
else
|
||||
{
|
||||
InputField.clipboard = "";
|
||||
}
|
||||
this.Delete();
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
goto IL_24D;
|
||||
}
|
||||
break;
|
||||
case KeyCode.C:
|
||||
if (flag4)
|
||||
{
|
||||
if (this.inputType != InputField.InputType.Password)
|
||||
{
|
||||
InputField.clipboard = this.GetSelectedString();
|
||||
}
|
||||
else
|
||||
{
|
||||
InputField.clipboard = "";
|
||||
}
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
goto IL_24D;
|
||||
}
|
||||
break;
|
||||
case KeyCode.UpArrow:
|
||||
this.MoveUp(flag2);
|
||||
return InputField.EditState.Continue;
|
||||
case KeyCode.DownArrow:
|
||||
this.MoveDown(flag2);
|
||||
return InputField.EditState.Continue;
|
||||
case KeyCode.RightArrow:
|
||||
this.MoveRight(flag2, flag);
|
||||
return InputField.EditState.Continue;
|
||||
case KeyCode.LeftArrow:
|
||||
this.MoveLeft(flag2, flag);
|
||||
return InputField.EditState.Continue;
|
||||
case KeyCode.Home:
|
||||
this.MoveTextStart(flag2);
|
||||
return InputField.EditState.Continue;
|
||||
case KeyCode.End:
|
||||
this.MoveTextEnd(flag2);
|
||||
return InputField.EditState.Continue;
|
||||
}
|
||||
if (this.lineType != InputField.LineType.MultiLineNewline)
|
||||
{
|
||||
return InputField.EditState.Finish;
|
||||
}
|
||||
IL_24D:
|
||||
char c = evt.character;
|
||||
InputField.EditState editState;
|
||||
if (!this.multiLine && (c == '\t' || c == '\r' || c == '\n'))
|
||||
{
|
||||
editState = InputField.EditState.Continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (c == '\r' || c == '\u0003')
|
||||
{
|
||||
c = '\n';
|
||||
}
|
||||
if (this.IsValidChar(c))
|
||||
{
|
||||
this.Append(c);
|
||||
}
|
||||
if (c == '\0')
|
||||
{
|
||||
if (this.compositionString.Length > 0)
|
||||
{
|
||||
this.UpdateLabel();
|
||||
}
|
||||
}
|
||||
editState = InputField.EditState.Continue;
|
||||
}
|
||||
return editState;
|
||||
}
|
||||
|
||||
// Token: 0x06000307 RID: 775 RVA: 0x000114E0 File Offset: 0x0000F8E0
|
||||
private bool IsValidChar(char c)
|
||||
{
|
||||
return c != '\u007f' && (c == '\t' || c == '\n' || this.m_TextComponent.font.HasCharacter(c));
|
||||
}
|
||||
|
||||
// Token: 0x06000308 RID: 776 RVA: 0x0001152C File Offset: 0x0000F92C
|
||||
public void ProcessEvent(Event e)
|
||||
{
|
||||
this.KeyPressed(e);
|
||||
}
|
||||
|
||||
// Token: 0x06000309 RID: 777 RVA: 0x00011538 File Offset: 0x0000F938
|
||||
public virtual void OnUpdateSelected(BaseEventData eventData)
|
||||
{
|
||||
if (this.isFocused)
|
||||
{
|
||||
bool flag = false;
|
||||
while (Event.PopEvent(this.m_ProcessingEvent))
|
||||
{
|
||||
if (this.m_ProcessingEvent.rawType == EventType.KeyDown)
|
||||
{
|
||||
flag = true;
|
||||
InputField.EditState editState = this.KeyPressed(this.m_ProcessingEvent);
|
||||
if (editState == InputField.EditState.Finish)
|
||||
{
|
||||
this.DeactivateInputField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
EventType type = this.m_ProcessingEvent.type;
|
||||
if (type == EventType.ValidateCommand || type == EventType.ExecuteCommand)
|
||||
{
|
||||
string commandName = this.m_ProcessingEvent.commandName;
|
||||
if (commandName != null)
|
||||
{
|
||||
if (commandName == "SelectAll")
|
||||
{
|
||||
this.SelectAll();
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
this.UpdateLabel();
|
||||
}
|
||||
eventData.Use();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600030A RID: 778 RVA: 0x00011610 File Offset: 0x0000FA10
|
||||
private string GetSelectedString()
|
||||
{
|
||||
string text;
|
||||
if (!this.hasSelection)
|
||||
{
|
||||
text = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = this.caretPositionInternal;
|
||||
int num2 = this.caretSelectPositionInternal;
|
||||
if (num > num2)
|
||||
{
|
||||
int num3 = num;
|
||||
num = num2;
|
||||
num2 = num3;
|
||||
}
|
||||
text = this.text.Substring(num, num2 - num);
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600030B RID: 779 RVA: 0x00011668 File Offset: 0x0000FA68
|
||||
private int FindtNextWordBegin()
|
||||
{
|
||||
int num;
|
||||
if (this.caretSelectPositionInternal + 1 >= this.text.Length)
|
||||
{
|
||||
num = this.text.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num2 = this.text.IndexOfAny(InputField.kSeparators, this.caretSelectPositionInternal + 1);
|
||||
if (num2 == -1)
|
||||
{
|
||||
num2 = this.text.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
num2++;
|
||||
}
|
||||
num = num2;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x0600030C RID: 780 RVA: 0x000116DC File Offset: 0x0000FADC
|
||||
private void MoveRight(bool shift, bool ctrl)
|
||||
{
|
||||
if (this.hasSelection && !shift)
|
||||
{
|
||||
int num = Mathf.Max(this.caretPositionInternal, this.caretSelectPositionInternal);
|
||||
this.caretSelectPositionInternal = num;
|
||||
this.caretPositionInternal = num;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num2;
|
||||
if (ctrl)
|
||||
{
|
||||
num2 = this.FindtNextWordBegin();
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = this.caretSelectPositionInternal + 1;
|
||||
}
|
||||
if (shift)
|
||||
{
|
||||
this.caretSelectPositionInternal = num2;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = num2;
|
||||
this.caretPositionInternal = num;
|
||||
this.caretSelectPositionInternal = num;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600030D RID: 781 RVA: 0x00011760 File Offset: 0x0000FB60
|
||||
private int FindtPrevWordBegin()
|
||||
{
|
||||
int num;
|
||||
if (this.caretSelectPositionInternal - 2 < 0)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num2 = this.text.LastIndexOfAny(InputField.kSeparators, this.caretSelectPositionInternal - 2);
|
||||
if (num2 == -1)
|
||||
{
|
||||
num2 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
num2++;
|
||||
}
|
||||
num = num2;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x0600030E RID: 782 RVA: 0x000117B8 File Offset: 0x0000FBB8
|
||||
private void MoveLeft(bool shift, bool ctrl)
|
||||
{
|
||||
if (this.hasSelection && !shift)
|
||||
{
|
||||
int num = Mathf.Min(this.caretPositionInternal, this.caretSelectPositionInternal);
|
||||
this.caretSelectPositionInternal = num;
|
||||
this.caretPositionInternal = num;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num2;
|
||||
if (ctrl)
|
||||
{
|
||||
num2 = this.FindtPrevWordBegin();
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = this.caretSelectPositionInternal - 1;
|
||||
}
|
||||
if (shift)
|
||||
{
|
||||
this.caretSelectPositionInternal = num2;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = num2;
|
||||
this.caretPositionInternal = num;
|
||||
this.caretSelectPositionInternal = num;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600030F RID: 783 RVA: 0x0001183C File Offset: 0x0000FC3C
|
||||
private int DetermineCharacterLine(int charPos, TextGenerator generator)
|
||||
{
|
||||
for (int i = 0; i < generator.lineCount - 1; i++)
|
||||
{
|
||||
if (generator.lines[i + 1].startCharIdx > charPos)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return generator.lineCount - 1;
|
||||
}
|
||||
|
||||
// Token: 0x06000310 RID: 784 RVA: 0x00011898 File Offset: 0x0000FC98
|
||||
private int LineUpCharacterPosition(int originalPos, bool goToFirstChar)
|
||||
{
|
||||
int num;
|
||||
if (originalPos >= this.cachedInputTextGenerator.characters.Count)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
UICharInfo uicharInfo = this.cachedInputTextGenerator.characters[originalPos];
|
||||
int num2 = this.DetermineCharacterLine(originalPos, this.cachedInputTextGenerator);
|
||||
if (num2 <= 0)
|
||||
{
|
||||
num = ((!goToFirstChar) ? originalPos : 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
int num3 = this.cachedInputTextGenerator.lines[num2].startCharIdx - 1;
|
||||
for (int i = this.cachedInputTextGenerator.lines[num2 - 1].startCharIdx; i < num3; i++)
|
||||
{
|
||||
if (this.cachedInputTextGenerator.characters[i].cursorPos.x >= uicharInfo.cursorPos.x)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
num = num3;
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000311 RID: 785 RVA: 0x00011990 File Offset: 0x0000FD90
|
||||
private int LineDownCharacterPosition(int originalPos, bool goToLastChar)
|
||||
{
|
||||
int num;
|
||||
if (originalPos >= this.cachedInputTextGenerator.characterCountVisible)
|
||||
{
|
||||
num = this.text.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
UICharInfo uicharInfo = this.cachedInputTextGenerator.characters[originalPos];
|
||||
int num2 = this.DetermineCharacterLine(originalPos, this.cachedInputTextGenerator);
|
||||
if (num2 + 1 >= this.cachedInputTextGenerator.lineCount)
|
||||
{
|
||||
num = ((!goToLastChar) ? originalPos : this.text.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
int lineEndPosition = InputField.GetLineEndPosition(this.cachedInputTextGenerator, num2 + 1);
|
||||
for (int i = this.cachedInputTextGenerator.lines[num2 + 1].startCharIdx; i < lineEndPosition; i++)
|
||||
{
|
||||
if (this.cachedInputTextGenerator.characters[i].cursorPos.x >= uicharInfo.cursorPos.x)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
num = lineEndPosition;
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000312 RID: 786 RVA: 0x00011A93 File Offset: 0x0000FE93
|
||||
private void MoveDown(bool shift)
|
||||
{
|
||||
this.MoveDown(shift, true);
|
||||
}
|
||||
|
||||
// Token: 0x06000313 RID: 787 RVA: 0x00011AA0 File Offset: 0x0000FEA0
|
||||
private void MoveDown(bool shift, bool goToLastChar)
|
||||
{
|
||||
if (this.hasSelection && !shift)
|
||||
{
|
||||
int num = Mathf.Max(this.caretPositionInternal, this.caretSelectPositionInternal);
|
||||
this.caretSelectPositionInternal = num;
|
||||
this.caretPositionInternal = num;
|
||||
}
|
||||
int num2 = ((!this.multiLine) ? this.text.Length : this.LineDownCharacterPosition(this.caretSelectPositionInternal, goToLastChar));
|
||||
if (shift)
|
||||
{
|
||||
this.caretSelectPositionInternal = num2;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = num2;
|
||||
this.caretSelectPositionInternal = num;
|
||||
this.caretPositionInternal = num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000314 RID: 788 RVA: 0x00011B2C File Offset: 0x0000FF2C
|
||||
private void MoveUp(bool shift)
|
||||
{
|
||||
this.MoveUp(shift, true);
|
||||
}
|
||||
|
||||
// Token: 0x06000315 RID: 789 RVA: 0x00011B38 File Offset: 0x0000FF38
|
||||
private void MoveUp(bool shift, bool goToFirstChar)
|
||||
{
|
||||
if (this.hasSelection && !shift)
|
||||
{
|
||||
int num = Mathf.Min(this.caretPositionInternal, this.caretSelectPositionInternal);
|
||||
this.caretSelectPositionInternal = num;
|
||||
this.caretPositionInternal = num;
|
||||
}
|
||||
int num2 = ((!this.multiLine) ? 0 : this.LineUpCharacterPosition(this.caretSelectPositionInternal, goToFirstChar));
|
||||
if (shift)
|
||||
{
|
||||
this.caretSelectPositionInternal = num2;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = num2;
|
||||
this.caretPositionInternal = num;
|
||||
this.caretSelectPositionInternal = num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000316 RID: 790 RVA: 0x00011BBC File Offset: 0x0000FFBC
|
||||
private void Delete()
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
if (this.caretPositionInternal != this.caretSelectPositionInternal)
|
||||
{
|
||||
if (this.caretPositionInternal < this.caretSelectPositionInternal)
|
||||
{
|
||||
this.m_Text = this.text.Substring(0, this.caretPositionInternal) + this.text.Substring(this.caretSelectPositionInternal, this.text.Length - this.caretSelectPositionInternal);
|
||||
this.caretSelectPositionInternal = this.caretPositionInternal;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Text = this.text.Substring(0, this.caretSelectPositionInternal) + this.text.Substring(this.caretPositionInternal, this.text.Length - this.caretPositionInternal);
|
||||
this.caretPositionInternal = this.caretSelectPositionInternal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000317 RID: 791 RVA: 0x00011CA4 File Offset: 0x000100A4
|
||||
private void ForwardSpace()
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
if (this.hasSelection)
|
||||
{
|
||||
this.Delete();
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
}
|
||||
else if (this.caretPositionInternal < this.text.Length)
|
||||
{
|
||||
this.m_Text = this.text.Remove(this.caretPositionInternal, 1);
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000318 RID: 792 RVA: 0x00011D18 File Offset: 0x00010118
|
||||
private void Backspace()
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
if (this.hasSelection)
|
||||
{
|
||||
this.Delete();
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
}
|
||||
else if (this.caretPositionInternal > 0)
|
||||
{
|
||||
this.m_Text = this.text.Remove(this.caretPositionInternal - 1, 1);
|
||||
int num = this.caretPositionInternal - 1;
|
||||
this.caretPositionInternal = num;
|
||||
this.caretSelectPositionInternal = num;
|
||||
this.SendOnValueChangedAndUpdateLabel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000319 RID: 793 RVA: 0x00011D9C File Offset: 0x0001019C
|
||||
private void Insert(char c)
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
string text = c.ToString();
|
||||
this.Delete();
|
||||
if (this.characterLimit <= 0 || this.text.Length < this.characterLimit)
|
||||
{
|
||||
this.m_Text = this.text.Insert(this.m_CaretPosition, text);
|
||||
this.caretSelectPositionInternal = (this.caretPositionInternal += text.Length);
|
||||
this.SendOnValueChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600031A RID: 794 RVA: 0x00011E2F File Offset: 0x0001022F
|
||||
private void SendOnValueChangedAndUpdateLabel()
|
||||
{
|
||||
this.SendOnValueChanged();
|
||||
this.UpdateLabel();
|
||||
}
|
||||
|
||||
// Token: 0x0600031B RID: 795 RVA: 0x00011E3E File Offset: 0x0001023E
|
||||
private void SendOnValueChanged()
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("InputField.value", this);
|
||||
if (this.onValueChanged != null)
|
||||
{
|
||||
this.onValueChanged.Invoke(this.text);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600031C RID: 796 RVA: 0x00011E68 File Offset: 0x00010268
|
||||
protected void SendOnSubmit()
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("InputField.onSubmit", this);
|
||||
if (this.onEndEdit != null)
|
||||
{
|
||||
this.onEndEdit.Invoke(this.m_Text);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600031D RID: 797 RVA: 0x00011E94 File Offset: 0x00010294
|
||||
protected virtual void Append(string input)
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
if (this.InPlaceEditing())
|
||||
{
|
||||
int i = 0;
|
||||
int length = input.Length;
|
||||
while (i < length)
|
||||
{
|
||||
char c = input[i];
|
||||
if (c >= ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\n')
|
||||
{
|
||||
this.Append(c);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600031E RID: 798 RVA: 0x00011F18 File Offset: 0x00010318
|
||||
protected virtual void Append(char input)
|
||||
{
|
||||
if (!this.m_ReadOnly)
|
||||
{
|
||||
if (this.InPlaceEditing())
|
||||
{
|
||||
int num = Math.Min(this.selectionFocusPosition, this.selectionAnchorPosition);
|
||||
if (this.onValidateInput != null)
|
||||
{
|
||||
input = this.onValidateInput(this.text, num, input);
|
||||
}
|
||||
else if (this.characterValidation != InputField.CharacterValidation.None)
|
||||
{
|
||||
input = this.Validate(this.text, num, input);
|
||||
}
|
||||
if (input != '\0')
|
||||
{
|
||||
this.Insert(input);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600031F RID: 799 RVA: 0x00011FAC File Offset: 0x000103AC
|
||||
protected void UpdateLabel()
|
||||
{
|
||||
if (this.m_TextComponent != null && this.m_TextComponent.font != null && !this.m_PreventFontCallback)
|
||||
{
|
||||
this.m_PreventFontCallback = true;
|
||||
string text;
|
||||
if (this.compositionString.Length > 0)
|
||||
{
|
||||
text = this.text.Substring(0, this.m_CaretPosition) + this.compositionString + this.text.Substring(this.m_CaretPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
text = this.text;
|
||||
}
|
||||
string text2;
|
||||
if (this.inputType == InputField.InputType.Password)
|
||||
{
|
||||
text2 = new string(this.asteriskChar, text.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
text2 = text;
|
||||
}
|
||||
bool flag = string.IsNullOrEmpty(text);
|
||||
if (this.m_Placeholder != null)
|
||||
{
|
||||
this.m_Placeholder.enabled = flag;
|
||||
}
|
||||
if (!this.m_AllowInput)
|
||||
{
|
||||
this.m_DrawStart = 0;
|
||||
this.m_DrawEnd = this.m_Text.Length;
|
||||
}
|
||||
if (!flag)
|
||||
{
|
||||
Vector2 size = this.m_TextComponent.rectTransform.rect.size;
|
||||
TextGenerationSettings generationSettings = this.m_TextComponent.GetGenerationSettings(size);
|
||||
generationSettings.generateOutOfBounds = true;
|
||||
this.cachedInputTextGenerator.PopulateWithErrors(text2, generationSettings, base.gameObject);
|
||||
this.SetDrawRangeToContainCaretPosition(this.caretSelectPositionInternal);
|
||||
text2 = text2.Substring(this.m_DrawStart, Mathf.Min(this.m_DrawEnd, text2.Length) - this.m_DrawStart);
|
||||
this.SetCaretVisible();
|
||||
}
|
||||
this.m_TextComponent.text = text2;
|
||||
this.MarkGeometryAsDirty();
|
||||
this.m_PreventFontCallback = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000320 RID: 800 RVA: 0x0001214C File Offset: 0x0001054C
|
||||
private bool IsSelectionVisible()
|
||||
{
|
||||
return this.m_DrawStart <= this.caretPositionInternal && this.m_DrawStart <= this.caretSelectPositionInternal && this.m_DrawEnd >= this.caretPositionInternal && this.m_DrawEnd >= this.caretSelectPositionInternal;
|
||||
}
|
||||
|
||||
// Token: 0x06000321 RID: 801 RVA: 0x000121B4 File Offset: 0x000105B4
|
||||
private static int GetLineStartPosition(TextGenerator gen, int line)
|
||||
{
|
||||
line = Mathf.Clamp(line, 0, gen.lines.Count - 1);
|
||||
return gen.lines[line].startCharIdx;
|
||||
}
|
||||
|
||||
// Token: 0x06000322 RID: 802 RVA: 0x000121F4 File Offset: 0x000105F4
|
||||
private static int GetLineEndPosition(TextGenerator gen, int line)
|
||||
{
|
||||
line = Mathf.Max(line, 0);
|
||||
int num;
|
||||
if (line + 1 < gen.lines.Count)
|
||||
{
|
||||
num = gen.lines[line + 1].startCharIdx - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = gen.characterCountVisible;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000323 RID: 803 RVA: 0x0001224C File Offset: 0x0001064C
|
||||
private void SetDrawRangeToContainCaretPosition(int caretPos)
|
||||
{
|
||||
if (this.cachedInputTextGenerator.lineCount > 0)
|
||||
{
|
||||
Vector2 size = this.cachedInputTextGenerator.rectExtents.size;
|
||||
if (this.multiLine)
|
||||
{
|
||||
IList<UILineInfo> lines = this.cachedInputTextGenerator.lines;
|
||||
int num = this.DetermineCharacterLine(caretPos, this.cachedInputTextGenerator);
|
||||
if (caretPos > this.m_DrawEnd)
|
||||
{
|
||||
this.m_DrawEnd = InputField.GetLineEndPosition(this.cachedInputTextGenerator, num);
|
||||
float num2 = lines[num].topY - (float)lines[num].height;
|
||||
if (num == lines.Count - 1)
|
||||
{
|
||||
num2 += lines[num].leading;
|
||||
}
|
||||
int i;
|
||||
for (i = num; i > 0; i--)
|
||||
{
|
||||
float topY = lines[i - 1].topY;
|
||||
if (topY - num2 > size.y)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.m_DrawStart = InputField.GetLineStartPosition(this.cachedInputTextGenerator, i);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (caretPos < this.m_DrawStart)
|
||||
{
|
||||
this.m_DrawStart = InputField.GetLineStartPosition(this.cachedInputTextGenerator, num);
|
||||
}
|
||||
int j = this.DetermineCharacterLine(this.m_DrawStart, this.cachedInputTextGenerator);
|
||||
int k = j;
|
||||
float num3 = lines[j].topY;
|
||||
float num4 = lines[k].topY - (float)lines[k].height;
|
||||
if (k == lines.Count - 1)
|
||||
{
|
||||
num4 += lines[k].leading;
|
||||
}
|
||||
while (k < lines.Count - 1)
|
||||
{
|
||||
num4 = lines[k + 1].topY - (float)lines[k + 1].height;
|
||||
if (k + 1 == lines.Count - 1)
|
||||
{
|
||||
num4 += lines[k + 1].leading;
|
||||
}
|
||||
if (num3 - num4 > size.y)
|
||||
{
|
||||
break;
|
||||
}
|
||||
k++;
|
||||
}
|
||||
this.m_DrawEnd = InputField.GetLineEndPosition(this.cachedInputTextGenerator, k);
|
||||
while (j > 0)
|
||||
{
|
||||
num3 = lines[j - 1].topY;
|
||||
if (num3 - num4 > size.y)
|
||||
{
|
||||
break;
|
||||
}
|
||||
j--;
|
||||
}
|
||||
this.m_DrawStart = InputField.GetLineStartPosition(this.cachedInputTextGenerator, j);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
IList<UICharInfo> characters = this.cachedInputTextGenerator.characters;
|
||||
if (this.m_DrawEnd > this.cachedInputTextGenerator.characterCountVisible)
|
||||
{
|
||||
this.m_DrawEnd = this.cachedInputTextGenerator.characterCountVisible;
|
||||
}
|
||||
float num5 = 0f;
|
||||
if (caretPos > this.m_DrawEnd || (caretPos == this.m_DrawEnd && this.m_DrawStart > 0))
|
||||
{
|
||||
this.m_DrawEnd = caretPos;
|
||||
this.m_DrawStart = this.m_DrawEnd - 1;
|
||||
while (this.m_DrawStart >= 0)
|
||||
{
|
||||
if (num5 + characters[this.m_DrawStart].charWidth > size.x)
|
||||
{
|
||||
break;
|
||||
}
|
||||
num5 += characters[this.m_DrawStart].charWidth;
|
||||
this.m_DrawStart--;
|
||||
}
|
||||
this.m_DrawStart++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (caretPos < this.m_DrawStart)
|
||||
{
|
||||
this.m_DrawStart = caretPos;
|
||||
}
|
||||
this.m_DrawEnd = this.m_DrawStart;
|
||||
}
|
||||
while (this.m_DrawEnd < this.cachedInputTextGenerator.characterCountVisible)
|
||||
{
|
||||
num5 += characters[this.m_DrawEnd].charWidth;
|
||||
if (num5 > size.x)
|
||||
{
|
||||
break;
|
||||
}
|
||||
this.m_DrawEnd++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000324 RID: 804 RVA: 0x00012666 File Offset: 0x00010A66
|
||||
public void ForceLabelUpdate()
|
||||
{
|
||||
this.UpdateLabel();
|
||||
}
|
||||
|
||||
// Token: 0x06000325 RID: 805 RVA: 0x0001266F File Offset: 0x00010A6F
|
||||
private void MarkGeometryAsDirty()
|
||||
{
|
||||
CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this);
|
||||
}
|
||||
|
||||
// Token: 0x06000326 RID: 806 RVA: 0x00012678 File Offset: 0x00010A78
|
||||
public virtual void Rebuild(CanvasUpdate update)
|
||||
{
|
||||
if (update == CanvasUpdate.LatePreRender)
|
||||
{
|
||||
this.UpdateGeometry();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000327 RID: 807 RVA: 0x00012692 File Offset: 0x00010A92
|
||||
public virtual void LayoutComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000328 RID: 808 RVA: 0x00012695 File Offset: 0x00010A95
|
||||
public virtual void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000329 RID: 809 RVA: 0x00012698 File Offset: 0x00010A98
|
||||
private void UpdateGeometry()
|
||||
{
|
||||
if (this.shouldHideMobileInput)
|
||||
{
|
||||
if (this.m_CachedInputRenderer == null && this.m_TextComponent != null)
|
||||
{
|
||||
GameObject gameObject = new GameObject(base.transform.name + " Input Caret", new Type[]
|
||||
{
|
||||
typeof(RectTransform),
|
||||
typeof(CanvasRenderer)
|
||||
});
|
||||
gameObject.hideFlags = HideFlags.DontSave;
|
||||
gameObject.transform.SetParent(this.m_TextComponent.transform.parent);
|
||||
gameObject.transform.SetAsFirstSibling();
|
||||
gameObject.layer = base.gameObject.layer;
|
||||
this.caretRectTrans = gameObject.GetComponent<RectTransform>();
|
||||
this.m_CachedInputRenderer = gameObject.GetComponent<CanvasRenderer>();
|
||||
this.m_CachedInputRenderer.SetMaterial(this.m_TextComponent.GetModifiedMaterial(Graphic.defaultGraphicMaterial), Texture2D.whiteTexture);
|
||||
gameObject.AddComponent<LayoutElement>().ignoreLayout = true;
|
||||
this.AssignPositioningIfNeeded();
|
||||
}
|
||||
if (!(this.m_CachedInputRenderer == null))
|
||||
{
|
||||
this.OnFillVBO(this.mesh);
|
||||
this.m_CachedInputRenderer.SetMesh(this.mesh);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600032A RID: 810 RVA: 0x000127D4 File Offset: 0x00010BD4
|
||||
private void AssignPositioningIfNeeded()
|
||||
{
|
||||
if (this.m_TextComponent != null && this.caretRectTrans != null && (this.caretRectTrans.localPosition != this.m_TextComponent.rectTransform.localPosition || this.caretRectTrans.localRotation != this.m_TextComponent.rectTransform.localRotation || this.caretRectTrans.localScale != this.m_TextComponent.rectTransform.localScale || this.caretRectTrans.anchorMin != this.m_TextComponent.rectTransform.anchorMin || this.caretRectTrans.anchorMax != this.m_TextComponent.rectTransform.anchorMax || this.caretRectTrans.anchoredPosition != this.m_TextComponent.rectTransform.anchoredPosition || this.caretRectTrans.sizeDelta != this.m_TextComponent.rectTransform.sizeDelta || this.caretRectTrans.pivot != this.m_TextComponent.rectTransform.pivot))
|
||||
{
|
||||
this.caretRectTrans.localPosition = this.m_TextComponent.rectTransform.localPosition;
|
||||
this.caretRectTrans.localRotation = this.m_TextComponent.rectTransform.localRotation;
|
||||
this.caretRectTrans.localScale = this.m_TextComponent.rectTransform.localScale;
|
||||
this.caretRectTrans.anchorMin = this.m_TextComponent.rectTransform.anchorMin;
|
||||
this.caretRectTrans.anchorMax = this.m_TextComponent.rectTransform.anchorMax;
|
||||
this.caretRectTrans.anchoredPosition = this.m_TextComponent.rectTransform.anchoredPosition;
|
||||
this.caretRectTrans.sizeDelta = this.m_TextComponent.rectTransform.sizeDelta;
|
||||
this.caretRectTrans.pivot = this.m_TextComponent.rectTransform.pivot;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600032B RID: 811 RVA: 0x00012A08 File Offset: 0x00010E08
|
||||
private void OnFillVBO(Mesh vbo)
|
||||
{
|
||||
using (VertexHelper vertexHelper = new VertexHelper())
|
||||
{
|
||||
if (!this.isFocused)
|
||||
{
|
||||
vertexHelper.FillMesh(vbo);
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector2 vector = this.m_TextComponent.PixelAdjustPoint(Vector2.zero);
|
||||
if (!this.hasSelection)
|
||||
{
|
||||
this.GenerateCaret(vertexHelper, vector);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.GenerateHightlight(vertexHelper, vector);
|
||||
}
|
||||
vertexHelper.FillMesh(vbo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600032C RID: 812 RVA: 0x00012A90 File Offset: 0x00010E90
|
||||
private void GenerateCaret(VertexHelper vbo, Vector2 roundingOffset)
|
||||
{
|
||||
if (this.m_CaretVisible)
|
||||
{
|
||||
if (this.m_CursorVerts == null)
|
||||
{
|
||||
this.CreateCursorVerts();
|
||||
}
|
||||
float num = (float)this.m_CaretWidth;
|
||||
int num2 = Mathf.Max(0, this.caretPositionInternal - this.m_DrawStart);
|
||||
TextGenerator cachedTextGenerator = this.m_TextComponent.cachedTextGenerator;
|
||||
if (cachedTextGenerator != null)
|
||||
{
|
||||
if (cachedTextGenerator.lineCount != 0)
|
||||
{
|
||||
Vector2 zero = Vector2.zero;
|
||||
if (num2 < cachedTextGenerator.characters.Count)
|
||||
{
|
||||
zero.x = cachedTextGenerator.characters[num2].cursorPos.x;
|
||||
}
|
||||
zero.x /= this.m_TextComponent.pixelsPerUnit;
|
||||
if (zero.x > this.m_TextComponent.rectTransform.rect.xMax)
|
||||
{
|
||||
zero.x = this.m_TextComponent.rectTransform.rect.xMax;
|
||||
}
|
||||
int num3 = this.DetermineCharacterLine(num2, cachedTextGenerator);
|
||||
zero.y = cachedTextGenerator.lines[num3].topY / this.m_TextComponent.pixelsPerUnit;
|
||||
float num4 = (float)cachedTextGenerator.lines[num3].height / this.m_TextComponent.pixelsPerUnit;
|
||||
for (int i = 0; i < this.m_CursorVerts.Length; i++)
|
||||
{
|
||||
this.m_CursorVerts[i].color = this.caretColor;
|
||||
}
|
||||
this.m_CursorVerts[0].position = new Vector3(zero.x, zero.y - num4, 0f);
|
||||
this.m_CursorVerts[1].position = new Vector3(zero.x + num, zero.y - num4, 0f);
|
||||
this.m_CursorVerts[2].position = new Vector3(zero.x + num, zero.y, 0f);
|
||||
this.m_CursorVerts[3].position = new Vector3(zero.x, zero.y, 0f);
|
||||
if (roundingOffset != Vector2.zero)
|
||||
{
|
||||
for (int j = 0; j < this.m_CursorVerts.Length; j++)
|
||||
{
|
||||
UIVertex uivertex = this.m_CursorVerts[j];
|
||||
uivertex.position.x = uivertex.position.x + roundingOffset.x;
|
||||
uivertex.position.y = uivertex.position.y + roundingOffset.y;
|
||||
}
|
||||
}
|
||||
vbo.AddUIVertexQuad(this.m_CursorVerts);
|
||||
int num5 = Screen.height;
|
||||
int targetDisplay = this.m_TextComponent.canvas.targetDisplay;
|
||||
if (targetDisplay > 0 && targetDisplay < Display.displays.Length)
|
||||
{
|
||||
num5 = Display.displays[targetDisplay].renderingHeight;
|
||||
}
|
||||
zero.y = (float)num5 - zero.y;
|
||||
this.input.compositionCursorPos = zero;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600032D RID: 813 RVA: 0x00012DC0 File Offset: 0x000111C0
|
||||
private void CreateCursorVerts()
|
||||
{
|
||||
this.m_CursorVerts = new UIVertex[4];
|
||||
for (int i = 0; i < this.m_CursorVerts.Length; i++)
|
||||
{
|
||||
this.m_CursorVerts[i] = UIVertex.simpleVert;
|
||||
this.m_CursorVerts[i].uv0 = Vector2.zero;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600032E RID: 814 RVA: 0x00012E24 File Offset: 0x00011224
|
||||
private void GenerateHightlight(VertexHelper vbo, Vector2 roundingOffset)
|
||||
{
|
||||
int num = Mathf.Max(0, this.caretPositionInternal - this.m_DrawStart);
|
||||
int num2 = Mathf.Max(0, this.caretSelectPositionInternal - this.m_DrawStart);
|
||||
if (num > num2)
|
||||
{
|
||||
int num3 = num;
|
||||
num = num2;
|
||||
num2 = num3;
|
||||
}
|
||||
num2--;
|
||||
TextGenerator cachedTextGenerator = this.m_TextComponent.cachedTextGenerator;
|
||||
if (cachedTextGenerator.lineCount > 0)
|
||||
{
|
||||
int num4 = this.DetermineCharacterLine(num, cachedTextGenerator);
|
||||
int num5 = InputField.GetLineEndPosition(cachedTextGenerator, num4);
|
||||
UIVertex simpleVert = UIVertex.simpleVert;
|
||||
simpleVert.uv0 = Vector2.zero;
|
||||
simpleVert.color = this.selectionColor;
|
||||
int num6 = num;
|
||||
while (num6 <= num2 && num6 < cachedTextGenerator.characterCount)
|
||||
{
|
||||
if (num6 == num5 || num6 == num2)
|
||||
{
|
||||
UICharInfo uicharInfo = cachedTextGenerator.characters[num];
|
||||
UICharInfo uicharInfo2 = cachedTextGenerator.characters[num6];
|
||||
Vector2 vector = new Vector2(uicharInfo.cursorPos.x / this.m_TextComponent.pixelsPerUnit, cachedTextGenerator.lines[num4].topY / this.m_TextComponent.pixelsPerUnit);
|
||||
Vector2 vector2 = new Vector2((uicharInfo2.cursorPos.x + uicharInfo2.charWidth) / this.m_TextComponent.pixelsPerUnit, vector.y - (float)cachedTextGenerator.lines[num4].height / this.m_TextComponent.pixelsPerUnit);
|
||||
if (vector2.x > this.m_TextComponent.rectTransform.rect.xMax || vector2.x < this.m_TextComponent.rectTransform.rect.xMin)
|
||||
{
|
||||
vector2.x = this.m_TextComponent.rectTransform.rect.xMax;
|
||||
}
|
||||
int currentVertCount = vbo.currentVertCount;
|
||||
simpleVert.position = new Vector3(vector.x, vector2.y, 0f) + roundingOffset;
|
||||
vbo.AddVert(simpleVert);
|
||||
simpleVert.position = new Vector3(vector2.x, vector2.y, 0f) + roundingOffset;
|
||||
vbo.AddVert(simpleVert);
|
||||
simpleVert.position = new Vector3(vector2.x, vector.y, 0f) + roundingOffset;
|
||||
vbo.AddVert(simpleVert);
|
||||
simpleVert.position = new Vector3(vector.x, vector.y, 0f) + roundingOffset;
|
||||
vbo.AddVert(simpleVert);
|
||||
vbo.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2);
|
||||
vbo.AddTriangle(currentVertCount + 2, currentVertCount + 3, currentVertCount);
|
||||
num = num6 + 1;
|
||||
num4++;
|
||||
num5 = InputField.GetLineEndPosition(cachedTextGenerator, num4);
|
||||
}
|
||||
num6++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600032F RID: 815 RVA: 0x0001311C File Offset: 0x0001151C
|
||||
protected char Validate(string text, int pos, char ch)
|
||||
{
|
||||
char c;
|
||||
if (this.characterValidation == InputField.CharacterValidation.None || !base.enabled)
|
||||
{
|
||||
c = ch;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.characterValidation == InputField.CharacterValidation.Integer || this.characterValidation == InputField.CharacterValidation.Decimal)
|
||||
{
|
||||
bool flag = pos == 0 && text.Length > 0 && text[0] == '-';
|
||||
bool flag2 = text.Length > 0 && text[0] == '-' && ((this.caretPositionInternal == 0 && this.caretSelectPositionInternal > 0) || (this.caretSelectPositionInternal == 0 && this.caretPositionInternal > 0));
|
||||
bool flag3 = this.caretPositionInternal == 0 || this.caretSelectPositionInternal == 0;
|
||||
if (!flag || flag2)
|
||||
{
|
||||
if (ch >= '0' && ch <= '9')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch == '-' && (pos == 0 || flag3))
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch == '.' && this.characterValidation == InputField.CharacterValidation.Decimal && !text.Contains("."))
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this.characterValidation == InputField.CharacterValidation.Alphanumeric)
|
||||
{
|
||||
if (ch >= 'A' && ch <= 'Z')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch >= 'a' && ch <= 'z')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch >= '0' && ch <= '9')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
else if (this.characterValidation == InputField.CharacterValidation.Name)
|
||||
{
|
||||
if (char.IsLetter(ch))
|
||||
{
|
||||
if (char.IsLower(ch) && (pos == 0 || text[pos - 1] == ' '))
|
||||
{
|
||||
return char.ToUpper(ch);
|
||||
}
|
||||
if (char.IsUpper(ch) && pos > 0 && text[pos - 1] != ' ' && text[pos - 1] != '\'')
|
||||
{
|
||||
return char.ToLower(ch);
|
||||
}
|
||||
return ch;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ch == '\'')
|
||||
{
|
||||
if (!text.Contains("'") && (pos <= 0 || (text[pos - 1] != ' ' && text[pos - 1] != '\'')) && (pos >= text.Length || (text[pos] != ' ' && text[pos] != '\'')))
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
if (ch == ' ')
|
||||
{
|
||||
if ((pos <= 0 || (text[pos - 1] != ' ' && text[pos - 1] != '\'')) && (pos >= text.Length || (text[pos] != ' ' && text[pos] != '\'')))
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this.characterValidation == InputField.CharacterValidation.EmailAddress)
|
||||
{
|
||||
if (ch >= 'A' && ch <= 'Z')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch >= 'a' && ch <= 'z')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch >= '0' && ch <= '9')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch == '@' && text.IndexOf('@') == -1)
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if ("!#$%&'*+-/=?^_`{|}~".IndexOf(ch) != -1)
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
if (ch == '.')
|
||||
{
|
||||
char c2 = ((text.Length <= 0) ? ' ' : text[Mathf.Clamp(pos, 0, text.Length - 1)]);
|
||||
char c3 = ((text.Length <= 0) ? '\n' : text[Mathf.Clamp(pos + 1, 0, text.Length - 1)]);
|
||||
if (c2 != '.' && c3 != '.')
|
||||
{
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
}
|
||||
c = '\0';
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
// Token: 0x06000330 RID: 816 RVA: 0x00013520 File Offset: 0x00011920
|
||||
public void ActivateInputField()
|
||||
{
|
||||
if (!(this.m_TextComponent == null) && !(this.m_TextComponent.font == null) && this.IsActive() && this.IsInteractable())
|
||||
{
|
||||
if (this.isFocused)
|
||||
{
|
||||
if (this.m_Keyboard != null && !this.m_Keyboard.active)
|
||||
{
|
||||
this.m_Keyboard.active = true;
|
||||
this.m_Keyboard.text = this.m_Text;
|
||||
}
|
||||
}
|
||||
this.m_ShouldActivateNextUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000331 RID: 817 RVA: 0x000135C0 File Offset: 0x000119C0
|
||||
private void ActivateInputFieldInternal()
|
||||
{
|
||||
if (!(EventSystem.current == null))
|
||||
{
|
||||
if (EventSystem.current.currentSelectedGameObject != base.gameObject)
|
||||
{
|
||||
EventSystem.current.SetSelectedGameObject(base.gameObject);
|
||||
}
|
||||
if (TouchScreenKeyboard.isSupported)
|
||||
{
|
||||
if (this.input.touchSupported)
|
||||
{
|
||||
TouchScreenKeyboard.hideInput = this.shouldHideMobileInput;
|
||||
}
|
||||
this.m_Keyboard = ((this.inputType != InputField.InputType.Password) ? TouchScreenKeyboard.Open(this.m_Text, this.keyboardType, this.inputType == InputField.InputType.AutoCorrect, this.multiLine) : TouchScreenKeyboard.Open(this.m_Text, this.keyboardType, false, this.multiLine, true));
|
||||
this.MoveTextEnd(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.input.imeCompositionMode = IMECompositionMode.On;
|
||||
this.OnFocus();
|
||||
}
|
||||
this.m_AllowInput = true;
|
||||
this.m_OriginalText = this.text;
|
||||
this.m_WasCanceled = false;
|
||||
this.SetCaretVisible();
|
||||
this.UpdateLabel();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000332 RID: 818 RVA: 0x000136CC File Offset: 0x00011ACC
|
||||
public override void OnSelect(BaseEventData eventData)
|
||||
{
|
||||
base.OnSelect(eventData);
|
||||
if (this.shouldActivateOnSelect)
|
||||
{
|
||||
this.ActivateInputField();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000333 RID: 819 RVA: 0x000136E7 File Offset: 0x00011AE7
|
||||
public virtual void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
this.ActivateInputField();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000334 RID: 820 RVA: 0x00013700 File Offset: 0x00011B00
|
||||
public void DeactivateInputField()
|
||||
{
|
||||
if (this.m_AllowInput)
|
||||
{
|
||||
this.m_HasDoneFocusTransition = false;
|
||||
this.m_AllowInput = false;
|
||||
if (this.m_Placeholder != null)
|
||||
{
|
||||
this.m_Placeholder.enabled = string.IsNullOrEmpty(this.m_Text);
|
||||
}
|
||||
if (this.m_TextComponent != null && this.IsInteractable())
|
||||
{
|
||||
if (this.m_WasCanceled)
|
||||
{
|
||||
this.text = this.m_OriginalText;
|
||||
}
|
||||
if (this.m_Keyboard != null)
|
||||
{
|
||||
this.m_Keyboard.active = false;
|
||||
this.m_Keyboard = null;
|
||||
}
|
||||
this.m_CaretPosition = (this.m_CaretSelectPosition = 0);
|
||||
this.SendOnSubmit();
|
||||
this.input.imeCompositionMode = IMECompositionMode.Auto;
|
||||
}
|
||||
this.MarkGeometryAsDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000335 RID: 821 RVA: 0x000137D0 File Offset: 0x00011BD0
|
||||
public override void OnDeselect(BaseEventData eventData)
|
||||
{
|
||||
this.DeactivateInputField();
|
||||
base.OnDeselect(eventData);
|
||||
}
|
||||
|
||||
// Token: 0x06000336 RID: 822 RVA: 0x000137E0 File Offset: 0x00011BE0
|
||||
public virtual void OnSubmit(BaseEventData eventData)
|
||||
{
|
||||
if (this.IsActive() && this.IsInteractable())
|
||||
{
|
||||
if (!this.isFocused)
|
||||
{
|
||||
this.m_ShouldActivateNextUpdate = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000337 RID: 823 RVA: 0x00013810 File Offset: 0x00011C10
|
||||
private void EnforceContentType()
|
||||
{
|
||||
switch (this.contentType)
|
||||
{
|
||||
case InputField.ContentType.Standard:
|
||||
this.m_InputType = InputField.InputType.Standard;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.Default;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.None;
|
||||
break;
|
||||
case InputField.ContentType.Autocorrected:
|
||||
this.m_InputType = InputField.InputType.AutoCorrect;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.Default;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.None;
|
||||
break;
|
||||
case InputField.ContentType.IntegerNumber:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Standard;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.NumberPad;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.Integer;
|
||||
break;
|
||||
case InputField.ContentType.DecimalNumber:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Standard;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.NumbersAndPunctuation;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.Decimal;
|
||||
break;
|
||||
case InputField.ContentType.Alphanumeric:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Standard;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.ASCIICapable;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.Alphanumeric;
|
||||
break;
|
||||
case InputField.ContentType.Name:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Standard;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.NamePhonePad;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.Name;
|
||||
break;
|
||||
case InputField.ContentType.EmailAddress:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Standard;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.EmailAddress;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.EmailAddress;
|
||||
break;
|
||||
case InputField.ContentType.Password:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Password;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.Default;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.None;
|
||||
break;
|
||||
case InputField.ContentType.Pin:
|
||||
this.m_LineType = InputField.LineType.SingleLine;
|
||||
this.m_InputType = InputField.InputType.Password;
|
||||
this.m_KeyboardType = TouchScreenKeyboardType.NumberPad;
|
||||
this.m_CharacterValidation = InputField.CharacterValidation.Integer;
|
||||
break;
|
||||
}
|
||||
this.EnforceTextHOverflow();
|
||||
}
|
||||
|
||||
// Token: 0x06000338 RID: 824 RVA: 0x00013984 File Offset: 0x00011D84
|
||||
private void EnforceTextHOverflow()
|
||||
{
|
||||
if (this.m_TextComponent != null)
|
||||
{
|
||||
if (this.multiLine)
|
||||
{
|
||||
this.m_TextComponent.horizontalOverflow = HorizontalWrapMode.Wrap;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_TextComponent.horizontalOverflow = HorizontalWrapMode.Overflow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000339 RID: 825 RVA: 0x000139C0 File Offset: 0x00011DC0
|
||||
private void SetToCustomIfContentTypeIsNot(params InputField.ContentType[] allowedContentTypes)
|
||||
{
|
||||
if (this.contentType != InputField.ContentType.Custom)
|
||||
{
|
||||
for (int i = 0; i < allowedContentTypes.Length; i++)
|
||||
{
|
||||
if (this.contentType == allowedContentTypes[i])
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.contentType = InputField.ContentType.Custom;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600033A RID: 826 RVA: 0x00013A0F File Offset: 0x00011E0F
|
||||
private void SetToCustom()
|
||||
{
|
||||
if (this.contentType != InputField.ContentType.Custom)
|
||||
{
|
||||
this.contentType = InputField.ContentType.Custom;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600033B RID: 827 RVA: 0x00013A2C File Offset: 0x00011E2C
|
||||
protected override void DoStateTransition(Selectable.SelectionState state, bool instant)
|
||||
{
|
||||
if (this.m_HasDoneFocusTransition)
|
||||
{
|
||||
state = Selectable.SelectionState.Highlighted;
|
||||
}
|
||||
else if (state == Selectable.SelectionState.Pressed)
|
||||
{
|
||||
this.m_HasDoneFocusTransition = true;
|
||||
}
|
||||
base.DoStateTransition(state, instant);
|
||||
}
|
||||
|
||||
// Token: 0x0600033C RID: 828 RVA: 0x00013A58 File Offset: 0x00011E58
|
||||
public virtual void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600033D RID: 829 RVA: 0x00013A5B File Offset: 0x00011E5B
|
||||
public virtual void CalculateLayoutInputVertical()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170000DF RID: 223
|
||||
// (get) Token: 0x0600033E RID: 830 RVA: 0x00013A60 File Offset: 0x00011E60
|
||||
public virtual float minWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E0 RID: 224
|
||||
// (get) Token: 0x0600033F RID: 831 RVA: 0x00013A7C File Offset: 0x00011E7C
|
||||
public virtual float preferredWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
float num;
|
||||
if (this.textComponent == null)
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
TextGenerationSettings generationSettings = this.textComponent.GetGenerationSettings(Vector2.zero);
|
||||
num = this.textComponent.cachedTextGeneratorForLayout.GetPreferredWidth(this.m_Text, generationSettings) / this.textComponent.pixelsPerUnit;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E1 RID: 225
|
||||
// (get) Token: 0x06000340 RID: 832 RVA: 0x00013AE4 File Offset: 0x00011EE4
|
||||
public virtual float flexibleWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E2 RID: 226
|
||||
// (get) Token: 0x06000341 RID: 833 RVA: 0x00013B00 File Offset: 0x00011F00
|
||||
public virtual float minHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E3 RID: 227
|
||||
// (get) Token: 0x06000342 RID: 834 RVA: 0x00013B1C File Offset: 0x00011F1C
|
||||
public virtual float preferredHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
float num;
|
||||
if (this.textComponent == null)
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
TextGenerationSettings generationSettings = this.textComponent.GetGenerationSettings(new Vector2(this.textComponent.rectTransform.rect.size.x, 0f));
|
||||
num = this.textComponent.cachedTextGeneratorForLayout.GetPreferredHeight(this.m_Text, generationSettings) / this.textComponent.pixelsPerUnit;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E4 RID: 228
|
||||
// (get) Token: 0x06000343 RID: 835 RVA: 0x00013BA8 File Offset: 0x00011FA8
|
||||
public virtual float flexibleHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E5 RID: 229
|
||||
// (get) Token: 0x06000344 RID: 836 RVA: 0x00013BC4 File Offset: 0x00011FC4
|
||||
public virtual int layoutPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000346 RID: 838 RVA: 0x00013BF2 File Offset: 0x00011FF2
|
||||
Transform ICanvasElement.get_transform()
|
||||
{
|
||||
return base.transform;
|
||||
}
|
||||
|
||||
// Token: 0x04000157 RID: 343
|
||||
protected TouchScreenKeyboard m_Keyboard;
|
||||
|
||||
// Token: 0x04000158 RID: 344
|
||||
private static readonly char[] kSeparators = new char[] { ' ', '.', ',', '\t', '\r', '\n' };
|
||||
|
||||
// Token: 0x04000159 RID: 345
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("text")]
|
||||
protected Text m_TextComponent;
|
||||
|
||||
// Token: 0x0400015A RID: 346
|
||||
[SerializeField]
|
||||
protected Graphic m_Placeholder;
|
||||
|
||||
// Token: 0x0400015B RID: 347
|
||||
[SerializeField]
|
||||
private InputField.ContentType m_ContentType = InputField.ContentType.Standard;
|
||||
|
||||
// Token: 0x0400015C RID: 348
|
||||
[FormerlySerializedAs("inputType")]
|
||||
[SerializeField]
|
||||
private InputField.InputType m_InputType = InputField.InputType.Standard;
|
||||
|
||||
// Token: 0x0400015D RID: 349
|
||||
[FormerlySerializedAs("asteriskChar")]
|
||||
[SerializeField]
|
||||
private char m_AsteriskChar = '*';
|
||||
|
||||
// Token: 0x0400015E RID: 350
|
||||
[FormerlySerializedAs("keyboardType")]
|
||||
[SerializeField]
|
||||
private TouchScreenKeyboardType m_KeyboardType = TouchScreenKeyboardType.Default;
|
||||
|
||||
// Token: 0x0400015F RID: 351
|
||||
[SerializeField]
|
||||
private InputField.LineType m_LineType = InputField.LineType.SingleLine;
|
||||
|
||||
// Token: 0x04000160 RID: 352
|
||||
[FormerlySerializedAs("hideMobileInput")]
|
||||
[SerializeField]
|
||||
private bool m_HideMobileInput = false;
|
||||
|
||||
// Token: 0x04000161 RID: 353
|
||||
[FormerlySerializedAs("validation")]
|
||||
[SerializeField]
|
||||
private InputField.CharacterValidation m_CharacterValidation = InputField.CharacterValidation.None;
|
||||
|
||||
// Token: 0x04000162 RID: 354
|
||||
[FormerlySerializedAs("characterLimit")]
|
||||
[SerializeField]
|
||||
private int m_CharacterLimit = 0;
|
||||
|
||||
// Token: 0x04000163 RID: 355
|
||||
[FormerlySerializedAs("onSubmit")]
|
||||
[FormerlySerializedAs("m_OnSubmit")]
|
||||
[FormerlySerializedAs("m_EndEdit")]
|
||||
[SerializeField]
|
||||
private InputField.SubmitEvent m_OnEndEdit = new InputField.SubmitEvent();
|
||||
|
||||
// Token: 0x04000164 RID: 356
|
||||
[FormerlySerializedAs("onValueChange")]
|
||||
[FormerlySerializedAs("m_OnValueChange")]
|
||||
[SerializeField]
|
||||
private InputField.OnChangeEvent m_OnValueChanged = new InputField.OnChangeEvent();
|
||||
|
||||
// Token: 0x04000165 RID: 357
|
||||
[FormerlySerializedAs("onValidateInput")]
|
||||
[SerializeField]
|
||||
private InputField.OnValidateInput m_OnValidateInput;
|
||||
|
||||
// Token: 0x04000166 RID: 358
|
||||
[SerializeField]
|
||||
private Color m_CaretColor = new Color(0.19607843f, 0.19607843f, 0.19607843f, 1f);
|
||||
|
||||
// Token: 0x04000167 RID: 359
|
||||
[SerializeField]
|
||||
private bool m_CustomCaretColor = false;
|
||||
|
||||
// Token: 0x04000168 RID: 360
|
||||
[FormerlySerializedAs("selectionColor")]
|
||||
[SerializeField]
|
||||
private Color m_SelectionColor = new Color(0.65882355f, 0.80784315f, 1f, 0.7529412f);
|
||||
|
||||
// Token: 0x04000169 RID: 361
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("mValue")]
|
||||
protected string m_Text = string.Empty;
|
||||
|
||||
// Token: 0x0400016A RID: 362
|
||||
[SerializeField]
|
||||
[Range(0f, 4f)]
|
||||
private float m_CaretBlinkRate = 0.85f;
|
||||
|
||||
// Token: 0x0400016B RID: 363
|
||||
[SerializeField]
|
||||
[Range(1f, 5f)]
|
||||
private int m_CaretWidth = 1;
|
||||
|
||||
// Token: 0x0400016C RID: 364
|
||||
[SerializeField]
|
||||
private bool m_ReadOnly = false;
|
||||
|
||||
// Token: 0x0400016D RID: 365
|
||||
protected int m_CaretPosition = 0;
|
||||
|
||||
// Token: 0x0400016E RID: 366
|
||||
protected int m_CaretSelectPosition = 0;
|
||||
|
||||
// Token: 0x0400016F RID: 367
|
||||
private RectTransform caretRectTrans = null;
|
||||
|
||||
// Token: 0x04000170 RID: 368
|
||||
protected UIVertex[] m_CursorVerts = null;
|
||||
|
||||
// Token: 0x04000171 RID: 369
|
||||
private TextGenerator m_InputTextCache;
|
||||
|
||||
// Token: 0x04000172 RID: 370
|
||||
private CanvasRenderer m_CachedInputRenderer;
|
||||
|
||||
// Token: 0x04000173 RID: 371
|
||||
private bool m_PreventFontCallback = false;
|
||||
|
||||
// Token: 0x04000174 RID: 372
|
||||
[NonSerialized]
|
||||
protected Mesh m_Mesh;
|
||||
|
||||
// Token: 0x04000175 RID: 373
|
||||
private bool m_AllowInput = false;
|
||||
|
||||
// Token: 0x04000176 RID: 374
|
||||
private bool m_ShouldActivateNextUpdate = false;
|
||||
|
||||
// Token: 0x04000177 RID: 375
|
||||
private bool m_UpdateDrag = false;
|
||||
|
||||
// Token: 0x04000178 RID: 376
|
||||
private bool m_DragPositionOutOfBounds = false;
|
||||
|
||||
// Token: 0x04000179 RID: 377
|
||||
private const float kHScrollSpeed = 0.05f;
|
||||
|
||||
// Token: 0x0400017A RID: 378
|
||||
private const float kVScrollSpeed = 0.1f;
|
||||
|
||||
// Token: 0x0400017B RID: 379
|
||||
protected bool m_CaretVisible;
|
||||
|
||||
// Token: 0x0400017C RID: 380
|
||||
private Coroutine m_BlinkCoroutine = null;
|
||||
|
||||
// Token: 0x0400017D RID: 381
|
||||
private float m_BlinkStartTime = 0f;
|
||||
|
||||
// Token: 0x0400017E RID: 382
|
||||
protected int m_DrawStart = 0;
|
||||
|
||||
// Token: 0x0400017F RID: 383
|
||||
protected int m_DrawEnd = 0;
|
||||
|
||||
// Token: 0x04000180 RID: 384
|
||||
private Coroutine m_DragCoroutine = null;
|
||||
|
||||
// Token: 0x04000181 RID: 385
|
||||
private string m_OriginalText = "";
|
||||
|
||||
// Token: 0x04000182 RID: 386
|
||||
private bool m_WasCanceled = false;
|
||||
|
||||
// Token: 0x04000183 RID: 387
|
||||
private bool m_HasDoneFocusTransition = false;
|
||||
|
||||
// Token: 0x04000184 RID: 388
|
||||
private const string kEmailSpecialCharacters = "!#$%&'*+-/=?^_`{|}~";
|
||||
|
||||
// Token: 0x04000185 RID: 389
|
||||
private Event m_ProcessingEvent = new Event();
|
||||
|
||||
// Token: 0x02000059 RID: 89
|
||||
public enum ContentType
|
||||
{
|
||||
// Token: 0x04000187 RID: 391
|
||||
Standard,
|
||||
// Token: 0x04000188 RID: 392
|
||||
Autocorrected,
|
||||
// Token: 0x04000189 RID: 393
|
||||
IntegerNumber,
|
||||
// Token: 0x0400018A RID: 394
|
||||
DecimalNumber,
|
||||
// Token: 0x0400018B RID: 395
|
||||
Alphanumeric,
|
||||
// Token: 0x0400018C RID: 396
|
||||
Name,
|
||||
// Token: 0x0400018D RID: 397
|
||||
EmailAddress,
|
||||
// Token: 0x0400018E RID: 398
|
||||
Password,
|
||||
// Token: 0x0400018F RID: 399
|
||||
Pin,
|
||||
// Token: 0x04000190 RID: 400
|
||||
Custom
|
||||
}
|
||||
|
||||
// Token: 0x0200005A RID: 90
|
||||
public enum InputType
|
||||
{
|
||||
// Token: 0x04000192 RID: 402
|
||||
Standard,
|
||||
// Token: 0x04000193 RID: 403
|
||||
AutoCorrect,
|
||||
// Token: 0x04000194 RID: 404
|
||||
Password
|
||||
}
|
||||
|
||||
// Token: 0x0200005B RID: 91
|
||||
public enum CharacterValidation
|
||||
{
|
||||
// Token: 0x04000196 RID: 406
|
||||
None,
|
||||
// Token: 0x04000197 RID: 407
|
||||
Integer,
|
||||
// Token: 0x04000198 RID: 408
|
||||
Decimal,
|
||||
// Token: 0x04000199 RID: 409
|
||||
Alphanumeric,
|
||||
// Token: 0x0400019A RID: 410
|
||||
Name,
|
||||
// Token: 0x0400019B RID: 411
|
||||
EmailAddress
|
||||
}
|
||||
|
||||
// Token: 0x0200005C RID: 92
|
||||
public enum LineType
|
||||
{
|
||||
// Token: 0x0400019D RID: 413
|
||||
SingleLine,
|
||||
// Token: 0x0400019E RID: 414
|
||||
MultiLineSubmit,
|
||||
// Token: 0x0400019F RID: 415
|
||||
MultiLineNewline
|
||||
}
|
||||
|
||||
// Token: 0x0200005D RID: 93
|
||||
// (Invoke) Token: 0x06000348 RID: 840
|
||||
public delegate char OnValidateInput(string text, int charIndex, char addedChar);
|
||||
|
||||
// Token: 0x0200005E RID: 94
|
||||
[Serializable]
|
||||
public class SubmitEvent : UnityEvent<string>
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0200005F RID: 95
|
||||
[Serializable]
|
||||
public class OnChangeEvent : UnityEvent<string>
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x02000060 RID: 96
|
||||
protected enum EditState
|
||||
{
|
||||
// Token: 0x040001A1 RID: 417
|
||||
Continue,
|
||||
// Token: 0x040001A2 RID: 418
|
||||
Finish
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
using System;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200009A RID: 154
|
||||
[AddComponentMenu("Layout/Layout Element", 140)]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
[ExecuteInEditMode]
|
||||
public class LayoutElement : UIBehaviour, ILayoutElement, ILayoutIgnorer
|
||||
{
|
||||
// Token: 0x06000564 RID: 1380 RVA: 0x0001C9E0 File Offset: 0x0001ADE0
|
||||
protected LayoutElement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700017D RID: 381
|
||||
// (get) Token: 0x06000565 RID: 1381 RVA: 0x0001CA44 File Offset: 0x0001AE44
|
||||
// (set) Token: 0x06000566 RID: 1382 RVA: 0x0001CA5F File Offset: 0x0001AE5F
|
||||
public virtual bool ignoreLayout
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_IgnoreLayout;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<bool>(ref this.m_IgnoreLayout, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000567 RID: 1383 RVA: 0x0001CA79 File Offset: 0x0001AE79
|
||||
public virtual void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000568 RID: 1384 RVA: 0x0001CA7C File Offset: 0x0001AE7C
|
||||
public virtual void CalculateLayoutInputVertical()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700017E RID: 382
|
||||
// (get) Token: 0x06000569 RID: 1385 RVA: 0x0001CA80 File Offset: 0x0001AE80
|
||||
// (set) Token: 0x0600056A RID: 1386 RVA: 0x0001CA9B File Offset: 0x0001AE9B
|
||||
public virtual float minWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MinWidth;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_MinWidth, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700017F RID: 383
|
||||
// (get) Token: 0x0600056B RID: 1387 RVA: 0x0001CAB8 File Offset: 0x0001AEB8
|
||||
// (set) Token: 0x0600056C RID: 1388 RVA: 0x0001CAD3 File Offset: 0x0001AED3
|
||||
public virtual float minHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MinHeight;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_MinHeight, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000180 RID: 384
|
||||
// (get) Token: 0x0600056D RID: 1389 RVA: 0x0001CAF0 File Offset: 0x0001AEF0
|
||||
// (set) Token: 0x0600056E RID: 1390 RVA: 0x0001CB0B File Offset: 0x0001AF0B
|
||||
public virtual float preferredWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PreferredWidth;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_PreferredWidth, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000181 RID: 385
|
||||
// (get) Token: 0x0600056F RID: 1391 RVA: 0x0001CB28 File Offset: 0x0001AF28
|
||||
// (set) Token: 0x06000570 RID: 1392 RVA: 0x0001CB43 File Offset: 0x0001AF43
|
||||
public virtual float preferredHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PreferredHeight;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_PreferredHeight, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000182 RID: 386
|
||||
// (get) Token: 0x06000571 RID: 1393 RVA: 0x0001CB60 File Offset: 0x0001AF60
|
||||
// (set) Token: 0x06000572 RID: 1394 RVA: 0x0001CB7B File Offset: 0x0001AF7B
|
||||
public virtual float flexibleWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FlexibleWidth;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_FlexibleWidth, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000183 RID: 387
|
||||
// (get) Token: 0x06000573 RID: 1395 RVA: 0x0001CB98 File Offset: 0x0001AF98
|
||||
// (set) Token: 0x06000574 RID: 1396 RVA: 0x0001CBB3 File Offset: 0x0001AFB3
|
||||
public virtual float flexibleHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FlexibleHeight;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_FlexibleHeight, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000184 RID: 388
|
||||
// (get) Token: 0x06000575 RID: 1397 RVA: 0x0001CBD0 File Offset: 0x0001AFD0
|
||||
// (set) Token: 0x06000576 RID: 1398 RVA: 0x0001CBEB File Offset: 0x0001AFEB
|
||||
public virtual int layoutPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_LayoutPriority;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<int>(ref this.m_LayoutPriority, value))
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000577 RID: 1399 RVA: 0x0001CC05 File Offset: 0x0001B005
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x06000578 RID: 1400 RVA: 0x0001CC14 File Offset: 0x0001B014
|
||||
protected override void OnTransformParentChanged()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x06000579 RID: 1401 RVA: 0x0001CC1D File Offset: 0x0001B01D
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.SetDirty();
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x0600057A RID: 1402 RVA: 0x0001CC2C File Offset: 0x0001B02C
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600057B RID: 1403 RVA: 0x0001CC35 File Offset: 0x0001B035
|
||||
protected override void OnBeforeTransformParentChanged()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600057C RID: 1404 RVA: 0x0001CC3E File Offset: 0x0001B03E
|
||||
protected void SetDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutForRebuild(base.transform as RectTransform);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0400029E RID: 670
|
||||
[SerializeField]
|
||||
private bool m_IgnoreLayout = false;
|
||||
|
||||
// Token: 0x0400029F RID: 671
|
||||
[SerializeField]
|
||||
private float m_MinWidth = -1f;
|
||||
|
||||
// Token: 0x040002A0 RID: 672
|
||||
[SerializeField]
|
||||
private float m_MinHeight = -1f;
|
||||
|
||||
// Token: 0x040002A1 RID: 673
|
||||
[SerializeField]
|
||||
private float m_PreferredWidth = -1f;
|
||||
|
||||
// Token: 0x040002A2 RID: 674
|
||||
[SerializeField]
|
||||
private float m_PreferredHeight = -1f;
|
||||
|
||||
// Token: 0x040002A3 RID: 675
|
||||
[SerializeField]
|
||||
private float m_FlexibleWidth = -1f;
|
||||
|
||||
// Token: 0x040002A4 RID: 676
|
||||
[SerializeField]
|
||||
private float m_FlexibleHeight = -1f;
|
||||
|
||||
// Token: 0x040002A5 RID: 677
|
||||
[SerializeField]
|
||||
private int m_LayoutPriority = 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,372 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200009B RID: 155
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public abstract class LayoutGroup : UIBehaviour, ILayoutElement, ILayoutGroup, ILayoutController
|
||||
{
|
||||
// Token: 0x0600057D RID: 1405 RVA: 0x0001B4B0 File Offset: 0x000198B0
|
||||
protected LayoutGroup()
|
||||
{
|
||||
if (this.m_Padding == null)
|
||||
{
|
||||
this.m_Padding = new RectOffset();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000185 RID: 389
|
||||
// (get) Token: 0x0600057E RID: 1406 RVA: 0x0001B518 File Offset: 0x00019918
|
||||
// (set) Token: 0x0600057F RID: 1407 RVA: 0x0001B533 File Offset: 0x00019933
|
||||
public RectOffset padding
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Padding;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.SetProperty<RectOffset>(ref this.m_Padding, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000186 RID: 390
|
||||
// (get) Token: 0x06000580 RID: 1408 RVA: 0x0001B544 File Offset: 0x00019944
|
||||
// (set) Token: 0x06000581 RID: 1409 RVA: 0x0001B55F File Offset: 0x0001995F
|
||||
public TextAnchor childAlignment
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ChildAlignment;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.SetProperty<TextAnchor>(ref this.m_ChildAlignment, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000187 RID: 391
|
||||
// (get) Token: 0x06000582 RID: 1410 RVA: 0x0001B570 File Offset: 0x00019970
|
||||
protected RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Rect == null)
|
||||
{
|
||||
this.m_Rect = base.GetComponent<RectTransform>();
|
||||
}
|
||||
return this.m_Rect;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000188 RID: 392
|
||||
// (get) Token: 0x06000583 RID: 1411 RVA: 0x0001B5A8 File Offset: 0x000199A8
|
||||
protected List<RectTransform> rectChildren
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_RectChildren;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000584 RID: 1412 RVA: 0x0001B5C4 File Offset: 0x000199C4
|
||||
public virtual void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
this.m_RectChildren.Clear();
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
for (int i = 0; i < this.rectTransform.childCount; i++)
|
||||
{
|
||||
RectTransform rectTransform = this.rectTransform.GetChild(i) as RectTransform;
|
||||
if (!(rectTransform == null) && rectTransform.gameObject.activeInHierarchy)
|
||||
{
|
||||
rectTransform.GetComponents(typeof(ILayoutIgnorer), list);
|
||||
if (list.Count == 0)
|
||||
{
|
||||
this.m_RectChildren.Add(rectTransform);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int j = 0; j < list.Count; j++)
|
||||
{
|
||||
ILayoutIgnorer layoutIgnorer = (ILayoutIgnorer)list[j];
|
||||
if (!layoutIgnorer.ignoreLayout)
|
||||
{
|
||||
this.m_RectChildren.Add(rectTransform);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
this.m_Tracker.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x06000585 RID: 1413
|
||||
public abstract void CalculateLayoutInputVertical();
|
||||
|
||||
// Token: 0x17000189 RID: 393
|
||||
// (get) Token: 0x06000586 RID: 1414 RVA: 0x0001B6B8 File Offset: 0x00019AB8
|
||||
public virtual float minWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTotalMinSize(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700018A RID: 394
|
||||
// (get) Token: 0x06000587 RID: 1415 RVA: 0x0001B6D4 File Offset: 0x00019AD4
|
||||
public virtual float preferredWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTotalPreferredSize(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700018B RID: 395
|
||||
// (get) Token: 0x06000588 RID: 1416 RVA: 0x0001B6F0 File Offset: 0x00019AF0
|
||||
public virtual float flexibleWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTotalFlexibleSize(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700018C RID: 396
|
||||
// (get) Token: 0x06000589 RID: 1417 RVA: 0x0001B70C File Offset: 0x00019B0C
|
||||
public virtual float minHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTotalMinSize(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700018D RID: 397
|
||||
// (get) Token: 0x0600058A RID: 1418 RVA: 0x0001B728 File Offset: 0x00019B28
|
||||
public virtual float preferredHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTotalPreferredSize(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700018E RID: 398
|
||||
// (get) Token: 0x0600058B RID: 1419 RVA: 0x0001B744 File Offset: 0x00019B44
|
||||
public virtual float flexibleHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTotalFlexibleSize(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700018F RID: 399
|
||||
// (get) Token: 0x0600058C RID: 1420 RVA: 0x0001B760 File Offset: 0x00019B60
|
||||
public virtual int layoutPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600058D RID: 1421
|
||||
public abstract void SetLayoutHorizontal();
|
||||
|
||||
// Token: 0x0600058E RID: 1422
|
||||
public abstract void SetLayoutVertical();
|
||||
|
||||
// Token: 0x0600058F RID: 1423 RVA: 0x0001B776 File Offset: 0x00019B76
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x06000590 RID: 1424 RVA: 0x0001B785 File Offset: 0x00019B85
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x06000591 RID: 1425 RVA: 0x0001B7A4 File Offset: 0x00019BA4
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x06000592 RID: 1426 RVA: 0x0001B7B0 File Offset: 0x00019BB0
|
||||
protected float GetTotalMinSize(int axis)
|
||||
{
|
||||
return this.m_TotalMinSize[axis];
|
||||
}
|
||||
|
||||
// Token: 0x06000593 RID: 1427 RVA: 0x0001B7D4 File Offset: 0x00019BD4
|
||||
protected float GetTotalPreferredSize(int axis)
|
||||
{
|
||||
return this.m_TotalPreferredSize[axis];
|
||||
}
|
||||
|
||||
// Token: 0x06000594 RID: 1428 RVA: 0x0001B7F8 File Offset: 0x00019BF8
|
||||
protected float GetTotalFlexibleSize(int axis)
|
||||
{
|
||||
return this.m_TotalFlexibleSize[axis];
|
||||
}
|
||||
|
||||
// Token: 0x06000595 RID: 1429 RVA: 0x0001B81C File Offset: 0x00019C1C
|
||||
protected float GetStartOffset(int axis, float requiredSpaceWithoutPadding)
|
||||
{
|
||||
float num = requiredSpaceWithoutPadding + (float)((axis != 0) ? this.padding.vertical : this.padding.horizontal);
|
||||
float num2 = this.rectTransform.rect.size[axis];
|
||||
float num3 = num2 - num;
|
||||
float alignmentOnAxis = this.GetAlignmentOnAxis(axis);
|
||||
return (float)((axis != 0) ? this.padding.top : this.padding.left) + num3 * alignmentOnAxis;
|
||||
}
|
||||
|
||||
// Token: 0x06000596 RID: 1430 RVA: 0x0001B8AC File Offset: 0x00019CAC
|
||||
protected float GetAlignmentOnAxis(int axis)
|
||||
{
|
||||
float num;
|
||||
if (axis == 0)
|
||||
{
|
||||
num = (float)(this.childAlignment % TextAnchor.MiddleLeft) * 0.5f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = (float)(this.childAlignment / TextAnchor.MiddleLeft) * 0.5f;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000597 RID: 1431 RVA: 0x0001B8EB File Offset: 0x00019CEB
|
||||
protected void SetLayoutInputForAxis(float totalMin, float totalPreferred, float totalFlexible, int axis)
|
||||
{
|
||||
this.m_TotalMinSize[axis] = totalMin;
|
||||
this.m_TotalPreferredSize[axis] = totalPreferred;
|
||||
this.m_TotalFlexibleSize[axis] = totalFlexible;
|
||||
}
|
||||
|
||||
// Token: 0x06000598 RID: 1432 RVA: 0x0001B918 File Offset: 0x00019D18
|
||||
protected void SetChildAlongAxis(RectTransform rect, int axis, float pos)
|
||||
{
|
||||
if (!(rect == null))
|
||||
{
|
||||
this.m_Tracker.Add(this, rect, DrivenTransformProperties.Anchors | ((axis != 0) ? DrivenTransformProperties.AnchoredPositionY : DrivenTransformProperties.AnchoredPositionX));
|
||||
rect.SetInsetAndSizeFromParentEdge((axis != 0) ? RectTransform.Edge.Top : RectTransform.Edge.Left, pos, rect.sizeDelta[axis]);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000599 RID: 1433 RVA: 0x0001B97C File Offset: 0x00019D7C
|
||||
protected void SetChildAlongAxis(RectTransform rect, int axis, float pos, float size)
|
||||
{
|
||||
if (!(rect == null))
|
||||
{
|
||||
this.m_Tracker.Add(this, rect, DrivenTransformProperties.Anchors | ((axis != 0) ? (DrivenTransformProperties.AnchoredPositionY | DrivenTransformProperties.SizeDeltaY) : (DrivenTransformProperties.AnchoredPositionX | DrivenTransformProperties.SizeDeltaX)));
|
||||
rect.SetInsetAndSizeFromParentEdge((axis != 0) ? RectTransform.Edge.Top : RectTransform.Edge.Left, pos, size);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000190 RID: 400
|
||||
// (get) Token: 0x0600059A RID: 1434 RVA: 0x0001B9DC File Offset: 0x00019DDC
|
||||
private bool isRootLayoutGroup
|
||||
{
|
||||
get
|
||||
{
|
||||
Transform parent = base.transform.parent;
|
||||
return parent == null || base.transform.parent.GetComponent(typeof(ILayoutGroup)) == null;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600059B RID: 1435 RVA: 0x0001BA30 File Offset: 0x00019E30
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
base.OnRectTransformDimensionsChange();
|
||||
if (this.isRootLayoutGroup)
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600059C RID: 1436 RVA: 0x0001BA4A File Offset: 0x00019E4A
|
||||
protected virtual void OnTransformChildrenChanged()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600059D RID: 1437 RVA: 0x0001BA54 File Offset: 0x00019E54
|
||||
protected void SetProperty<T>(ref T currentValue, T newValue)
|
||||
{
|
||||
if ((currentValue != null || newValue != null) && (currentValue == null || !currentValue.Equals(newValue)))
|
||||
{
|
||||
currentValue = newValue;
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600059E RID: 1438 RVA: 0x0001BAB6 File Offset: 0x00019EB6
|
||||
protected void SetDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
if (!CanvasUpdateRegistry.IsRebuildingLayout())
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.StartCoroutine(this.DelayedSetDirty(this.rectTransform));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600059F RID: 1439 RVA: 0x0001BAF8 File Offset: 0x00019EF8
|
||||
private IEnumerator DelayedSetDirty(RectTransform rectTransform)
|
||||
{
|
||||
yield return null;
|
||||
LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x040002A6 RID: 678
|
||||
[SerializeField]
|
||||
protected RectOffset m_Padding = new RectOffset();
|
||||
|
||||
// Token: 0x040002A7 RID: 679
|
||||
[FormerlySerializedAs("m_Alignment")]
|
||||
[SerializeField]
|
||||
protected TextAnchor m_ChildAlignment = TextAnchor.UpperLeft;
|
||||
|
||||
// Token: 0x040002A8 RID: 680
|
||||
[NonSerialized]
|
||||
private RectTransform m_Rect;
|
||||
|
||||
// Token: 0x040002A9 RID: 681
|
||||
protected DrivenRectTransformTracker m_Tracker;
|
||||
|
||||
// Token: 0x040002AA RID: 682
|
||||
private Vector2 m_TotalMinSize = Vector2.zero;
|
||||
|
||||
// Token: 0x040002AB RID: 683
|
||||
private Vector2 m_TotalPreferredSize = Vector2.zero;
|
||||
|
||||
// Token: 0x040002AC RID: 684
|
||||
private Vector2 m_TotalFlexibleSize = Vector2.zero;
|
||||
|
||||
// Token: 0x040002AD RID: 685
|
||||
[NonSerialized]
|
||||
private List<RectTransform> m_RectChildren = new List<RectTransform>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200009C RID: 156
|
||||
public class LayoutRebuilder : ICanvasElement
|
||||
{
|
||||
// Token: 0x060005A0 RID: 1440 RVA: 0x0001CC61 File Offset: 0x0001B061
|
||||
static LayoutRebuilder()
|
||||
{
|
||||
RectTransform.reapplyDrivenProperties += LayoutRebuilder.ReapplyDrivenProperties;
|
||||
}
|
||||
|
||||
// Token: 0x060005A2 RID: 1442 RVA: 0x0001CCA5 File Offset: 0x0001B0A5
|
||||
private void Initialize(RectTransform controller)
|
||||
{
|
||||
this.m_ToRebuild = controller;
|
||||
this.m_CachedHashFromTransform = controller.GetHashCode();
|
||||
}
|
||||
|
||||
// Token: 0x060005A3 RID: 1443 RVA: 0x0001CCBB File Offset: 0x0001B0BB
|
||||
private void Clear()
|
||||
{
|
||||
this.m_ToRebuild = null;
|
||||
this.m_CachedHashFromTransform = 0;
|
||||
}
|
||||
|
||||
// Token: 0x060005A4 RID: 1444 RVA: 0x0001CCCC File Offset: 0x0001B0CC
|
||||
private static void ReapplyDrivenProperties(RectTransform driven)
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutForRebuild(driven);
|
||||
}
|
||||
|
||||
// Token: 0x17000191 RID: 401
|
||||
// (get) Token: 0x060005A5 RID: 1445 RVA: 0x0001CCD8 File Offset: 0x0001B0D8
|
||||
public Transform transform
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ToRebuild;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005A6 RID: 1446 RVA: 0x0001CCF4 File Offset: 0x0001B0F4
|
||||
public bool IsDestroyed()
|
||||
{
|
||||
return this.m_ToRebuild == null;
|
||||
}
|
||||
|
||||
// Token: 0x060005A7 RID: 1447 RVA: 0x0001CD15 File Offset: 0x0001B115
|
||||
private static void StripDisabledBehavioursFromList(List<Component> components)
|
||||
{
|
||||
components.RemoveAll((Component e) => e is Behaviour && !((Behaviour)e).isActiveAndEnabled);
|
||||
}
|
||||
|
||||
// Token: 0x060005A8 RID: 1448 RVA: 0x0001CD3C File Offset: 0x0001B13C
|
||||
public static void ForceRebuildLayoutImmediate(RectTransform layoutRoot)
|
||||
{
|
||||
LayoutRebuilder layoutRebuilder = LayoutRebuilder.s_Rebuilders.Get();
|
||||
layoutRebuilder.Initialize(layoutRoot);
|
||||
layoutRebuilder.Rebuild(CanvasUpdate.Layout);
|
||||
LayoutRebuilder.s_Rebuilders.Release(layoutRebuilder);
|
||||
}
|
||||
|
||||
// Token: 0x060005A9 RID: 1449 RVA: 0x0001CD70 File Offset: 0x0001B170
|
||||
public void Rebuild(CanvasUpdate executing)
|
||||
{
|
||||
if (executing == CanvasUpdate.Layout)
|
||||
{
|
||||
this.PerformLayoutCalculation(this.m_ToRebuild, delegate(Component e)
|
||||
{
|
||||
(e as ILayoutElement).CalculateLayoutInputHorizontal();
|
||||
});
|
||||
this.PerformLayoutControl(this.m_ToRebuild, delegate(Component e)
|
||||
{
|
||||
(e as ILayoutController).SetLayoutHorizontal();
|
||||
});
|
||||
this.PerformLayoutCalculation(this.m_ToRebuild, delegate(Component e)
|
||||
{
|
||||
(e as ILayoutElement).CalculateLayoutInputVertical();
|
||||
});
|
||||
this.PerformLayoutControl(this.m_ToRebuild, delegate(Component e)
|
||||
{
|
||||
(e as ILayoutController).SetLayoutVertical();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005AA RID: 1450 RVA: 0x0001CE34 File Offset: 0x0001B234
|
||||
private void PerformLayoutControl(RectTransform rect, UnityAction<Component> action)
|
||||
{
|
||||
if (!(rect == null))
|
||||
{
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
rect.GetComponents(typeof(ILayoutController), list);
|
||||
LayoutRebuilder.StripDisabledBehavioursFromList(list);
|
||||
if (list.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (list[i] is ILayoutSelfController)
|
||||
{
|
||||
action(list[i]);
|
||||
}
|
||||
}
|
||||
for (int j = 0; j < list.Count; j++)
|
||||
{
|
||||
if (!(list[j] is ILayoutSelfController))
|
||||
{
|
||||
action(list[j]);
|
||||
}
|
||||
}
|
||||
for (int k = 0; k < rect.childCount; k++)
|
||||
{
|
||||
this.PerformLayoutControl(rect.GetChild(k) as RectTransform, action);
|
||||
}
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005AB RID: 1451 RVA: 0x0001CF18 File Offset: 0x0001B318
|
||||
private void PerformLayoutCalculation(RectTransform rect, UnityAction<Component> action)
|
||||
{
|
||||
if (!(rect == null))
|
||||
{
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
rect.GetComponents(typeof(ILayoutElement), list);
|
||||
LayoutRebuilder.StripDisabledBehavioursFromList(list);
|
||||
if (list.Count > 0 || rect.GetComponent(typeof(ILayoutGroup)))
|
||||
{
|
||||
for (int i = 0; i < rect.childCount; i++)
|
||||
{
|
||||
this.PerformLayoutCalculation(rect.GetChild(i) as RectTransform, action);
|
||||
}
|
||||
for (int j = 0; j < list.Count; j++)
|
||||
{
|
||||
action(list[j]);
|
||||
}
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005AC RID: 1452 RVA: 0x0001CFD0 File Offset: 0x0001B3D0
|
||||
public static void MarkLayoutForRebuild(RectTransform rect)
|
||||
{
|
||||
if (!(rect == null))
|
||||
{
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
RectTransform rectTransform = rect;
|
||||
for (;;)
|
||||
{
|
||||
RectTransform rectTransform2 = rectTransform.parent as RectTransform;
|
||||
if (!LayoutRebuilder.ValidLayoutGroup(rectTransform2, list))
|
||||
{
|
||||
break;
|
||||
}
|
||||
rectTransform = rectTransform2;
|
||||
}
|
||||
if (rectTransform == rect && !LayoutRebuilder.ValidController(rectTransform, list))
|
||||
{
|
||||
ListPool<Component>.Release(list);
|
||||
}
|
||||
else
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutRootForRebuild(rectTransform);
|
||||
ListPool<Component>.Release(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005AD RID: 1453 RVA: 0x0001D050 File Offset: 0x0001B450
|
||||
private static bool ValidLayoutGroup(RectTransform parent, List<Component> comps)
|
||||
{
|
||||
bool flag;
|
||||
if (parent == null)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
parent.GetComponents(typeof(ILayoutGroup), comps);
|
||||
LayoutRebuilder.StripDisabledBehavioursFromList(comps);
|
||||
bool flag2 = comps.Count > 0;
|
||||
flag = flag2;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x060005AE RID: 1454 RVA: 0x0001D09C File Offset: 0x0001B49C
|
||||
private static bool ValidController(RectTransform layoutRoot, List<Component> comps)
|
||||
{
|
||||
bool flag;
|
||||
if (layoutRoot == null)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
layoutRoot.GetComponents(typeof(ILayoutController), comps);
|
||||
LayoutRebuilder.StripDisabledBehavioursFromList(comps);
|
||||
bool flag2 = comps.Count > 0;
|
||||
flag = flag2;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x060005AF RID: 1455 RVA: 0x0001D0E8 File Offset: 0x0001B4E8
|
||||
private static void MarkLayoutRootForRebuild(RectTransform controller)
|
||||
{
|
||||
if (!(controller == null))
|
||||
{
|
||||
LayoutRebuilder layoutRebuilder = LayoutRebuilder.s_Rebuilders.Get();
|
||||
layoutRebuilder.Initialize(controller);
|
||||
if (!CanvasUpdateRegistry.TryRegisterCanvasElementForLayoutRebuild(layoutRebuilder))
|
||||
{
|
||||
LayoutRebuilder.s_Rebuilders.Release(layoutRebuilder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005B0 RID: 1456 RVA: 0x0001D12F File Offset: 0x0001B52F
|
||||
public void LayoutComplete()
|
||||
{
|
||||
LayoutRebuilder.s_Rebuilders.Release(this);
|
||||
}
|
||||
|
||||
// Token: 0x060005B1 RID: 1457 RVA: 0x0001D13D File Offset: 0x0001B53D
|
||||
public void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060005B2 RID: 1458 RVA: 0x0001D140 File Offset: 0x0001B540
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return this.m_CachedHashFromTransform;
|
||||
}
|
||||
|
||||
// Token: 0x060005B3 RID: 1459 RVA: 0x0001D15C File Offset: 0x0001B55C
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj.GetHashCode() == this.GetHashCode();
|
||||
}
|
||||
|
||||
// Token: 0x060005B4 RID: 1460 RVA: 0x0001D180 File Offset: 0x0001B580
|
||||
public override string ToString()
|
||||
{
|
||||
return "(Layout Rebuilder for) " + this.m_ToRebuild;
|
||||
}
|
||||
|
||||
// Token: 0x040002AE RID: 686
|
||||
private RectTransform m_ToRebuild;
|
||||
|
||||
// Token: 0x040002AF RID: 687
|
||||
private int m_CachedHashFromTransform;
|
||||
|
||||
// Token: 0x040002B0 RID: 688
|
||||
private static ObjectPool<LayoutRebuilder> s_Rebuilders = new ObjectPool<LayoutRebuilder>(null, delegate(LayoutRebuilder x)
|
||||
{
|
||||
x.Clear();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200009D RID: 157
|
||||
public static class LayoutUtility
|
||||
{
|
||||
// Token: 0x060005BB RID: 1467 RVA: 0x0001D214 File Offset: 0x0001B614
|
||||
public static float GetMinSize(RectTransform rect, int axis)
|
||||
{
|
||||
float num;
|
||||
if (axis == 0)
|
||||
{
|
||||
num = LayoutUtility.GetMinWidth(rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
num = LayoutUtility.GetMinHeight(rect);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x060005BC RID: 1468 RVA: 0x0001D244 File Offset: 0x0001B644
|
||||
public static float GetPreferredSize(RectTransform rect, int axis)
|
||||
{
|
||||
float num;
|
||||
if (axis == 0)
|
||||
{
|
||||
num = LayoutUtility.GetPreferredWidth(rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
num = LayoutUtility.GetPreferredHeight(rect);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x060005BD RID: 1469 RVA: 0x0001D274 File Offset: 0x0001B674
|
||||
public static float GetFlexibleSize(RectTransform rect, int axis)
|
||||
{
|
||||
float num;
|
||||
if (axis == 0)
|
||||
{
|
||||
num = LayoutUtility.GetFlexibleWidth(rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
num = LayoutUtility.GetFlexibleHeight(rect);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x060005BE RID: 1470 RVA: 0x0001D2A4 File Offset: 0x0001B6A4
|
||||
public static float GetMinWidth(RectTransform rect)
|
||||
{
|
||||
return LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.minWidth, 0f);
|
||||
}
|
||||
|
||||
// Token: 0x060005BF RID: 1471 RVA: 0x0001D2E4 File Offset: 0x0001B6E4
|
||||
public static float GetPreferredWidth(RectTransform rect)
|
||||
{
|
||||
return Mathf.Max(LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.minWidth, 0f), LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.preferredWidth, 0f));
|
||||
}
|
||||
|
||||
// Token: 0x060005C0 RID: 1472 RVA: 0x0001D350 File Offset: 0x0001B750
|
||||
public static float GetFlexibleWidth(RectTransform rect)
|
||||
{
|
||||
return LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.flexibleWidth, 0f);
|
||||
}
|
||||
|
||||
// Token: 0x060005C1 RID: 1473 RVA: 0x0001D390 File Offset: 0x0001B790
|
||||
public static float GetMinHeight(RectTransform rect)
|
||||
{
|
||||
return LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.minHeight, 0f);
|
||||
}
|
||||
|
||||
// Token: 0x060005C2 RID: 1474 RVA: 0x0001D3D0 File Offset: 0x0001B7D0
|
||||
public static float GetPreferredHeight(RectTransform rect)
|
||||
{
|
||||
return Mathf.Max(LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.minHeight, 0f), LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.preferredHeight, 0f));
|
||||
}
|
||||
|
||||
// Token: 0x060005C3 RID: 1475 RVA: 0x0001D43C File Offset: 0x0001B83C
|
||||
public static float GetFlexibleHeight(RectTransform rect)
|
||||
{
|
||||
return LayoutUtility.GetLayoutProperty(rect, (ILayoutElement e) => e.flexibleHeight, 0f);
|
||||
}
|
||||
|
||||
// Token: 0x060005C4 RID: 1476 RVA: 0x0001D47C File Offset: 0x0001B87C
|
||||
public static float GetLayoutProperty(RectTransform rect, Func<ILayoutElement, float> property, float defaultValue)
|
||||
{
|
||||
ILayoutElement layoutElement;
|
||||
return LayoutUtility.GetLayoutProperty(rect, property, defaultValue, out layoutElement);
|
||||
}
|
||||
|
||||
// Token: 0x060005C5 RID: 1477 RVA: 0x0001D49C File Offset: 0x0001B89C
|
||||
public static float GetLayoutProperty(RectTransform rect, Func<ILayoutElement, float> property, float defaultValue, out ILayoutElement source)
|
||||
{
|
||||
source = null;
|
||||
float num;
|
||||
if (rect == null)
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
float num2 = defaultValue;
|
||||
int num3 = int.MinValue;
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
rect.GetComponents(typeof(ILayoutElement), list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
ILayoutElement layoutElement = list[i] as ILayoutElement;
|
||||
if (!(layoutElement is Behaviour) || ((Behaviour)layoutElement).isActiveAndEnabled)
|
||||
{
|
||||
int layoutPriority = layoutElement.layoutPriority;
|
||||
if (layoutPriority >= num3)
|
||||
{
|
||||
float num4 = property(layoutElement);
|
||||
if (num4 >= 0f)
|
||||
{
|
||||
if (layoutPriority > num3)
|
||||
{
|
||||
num2 = num4;
|
||||
num3 = layoutPriority;
|
||||
source = layoutElement;
|
||||
}
|
||||
else if (num4 > num2)
|
||||
{
|
||||
num2 = num4;
|
||||
source = layoutElement;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
num = num2;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000A1 RID: 161
|
||||
internal static class ListPool<T>
|
||||
{
|
||||
// Token: 0x060005E6 RID: 1510 RVA: 0x0001DA08 File Offset: 0x0001BE08
|
||||
public static List<T> Get()
|
||||
{
|
||||
return ListPool<T>.s_ListPool.Get();
|
||||
}
|
||||
|
||||
// Token: 0x060005E7 RID: 1511 RVA: 0x0001DA27 File Offset: 0x0001BE27
|
||||
public static void Release(List<T> toRelease)
|
||||
{
|
||||
ListPool<T>.s_ListPool.Release(toRelease);
|
||||
}
|
||||
|
||||
// Token: 0x040002C1 RID: 705
|
||||
private static readonly ObjectPool<List<T>> s_ListPool = new ObjectPool<List<T>>(null, delegate(List<T> l)
|
||||
{
|
||||
l.Clear();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
using System;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000061 RID: 97
|
||||
[AddComponentMenu("UI/Mask", 13)]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
[DisallowMultipleComponent]
|
||||
public class Mask : UIBehaviour, ICanvasRaycastFilter, IMaterialModifier
|
||||
{
|
||||
// Token: 0x0600034D RID: 845 RVA: 0x00013FCD File Offset: 0x000123CD
|
||||
protected Mask()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170000E6 RID: 230
|
||||
// (get) Token: 0x0600034E RID: 846 RVA: 0x00013FE0 File Offset: 0x000123E0
|
||||
public RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
RectTransform rectTransform;
|
||||
if ((rectTransform = this.m_RectTransform) == null)
|
||||
{
|
||||
rectTransform = (this.m_RectTransform = base.GetComponent<RectTransform>());
|
||||
}
|
||||
return rectTransform;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E7 RID: 231
|
||||
// (get) Token: 0x0600034F RID: 847 RVA: 0x00014014 File Offset: 0x00012414
|
||||
// (set) Token: 0x06000350 RID: 848 RVA: 0x0001402F File Offset: 0x0001242F
|
||||
public bool showMaskGraphic
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ShowMaskGraphic;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_ShowMaskGraphic != value)
|
||||
{
|
||||
this.m_ShowMaskGraphic = value;
|
||||
if (this.graphic != null)
|
||||
{
|
||||
this.graphic.SetMaterialDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E8 RID: 232
|
||||
// (get) Token: 0x06000351 RID: 849 RVA: 0x00014068 File Offset: 0x00012468
|
||||
public Graphic graphic
|
||||
{
|
||||
get
|
||||
{
|
||||
Graphic graphic;
|
||||
if ((graphic = this.m_Graphic) == null)
|
||||
{
|
||||
graphic = (this.m_Graphic = base.GetComponent<Graphic>());
|
||||
}
|
||||
return graphic;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000352 RID: 850 RVA: 0x0001409C File Offset: 0x0001249C
|
||||
public virtual bool MaskEnabled()
|
||||
{
|
||||
return this.IsActive() && this.graphic != null;
|
||||
}
|
||||
|
||||
// Token: 0x06000353 RID: 851 RVA: 0x000140CB File Offset: 0x000124CB
|
||||
[Obsolete("Not used anymore.")]
|
||||
public virtual void OnSiblingGraphicEnabledDisabled()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000354 RID: 852 RVA: 0x000140CE File Offset: 0x000124CE
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
if (this.graphic != null)
|
||||
{
|
||||
this.graphic.canvasRenderer.hasPopInstruction = true;
|
||||
this.graphic.SetMaterialDirty();
|
||||
}
|
||||
MaskUtilities.NotifyStencilStateChanged(this);
|
||||
}
|
||||
|
||||
// Token: 0x06000355 RID: 853 RVA: 0x0001410C File Offset: 0x0001250C
|
||||
protected override void OnDisable()
|
||||
{
|
||||
base.OnDisable();
|
||||
if (this.graphic != null)
|
||||
{
|
||||
this.graphic.SetMaterialDirty();
|
||||
this.graphic.canvasRenderer.hasPopInstruction = false;
|
||||
this.graphic.canvasRenderer.popMaterialCount = 0;
|
||||
}
|
||||
StencilMaterial.Remove(this.m_MaskMaterial);
|
||||
this.m_MaskMaterial = null;
|
||||
StencilMaterial.Remove(this.m_UnmaskMaterial);
|
||||
this.m_UnmaskMaterial = null;
|
||||
MaskUtilities.NotifyStencilStateChanged(this);
|
||||
}
|
||||
|
||||
// Token: 0x06000356 RID: 854 RVA: 0x0001418C File Offset: 0x0001258C
|
||||
public virtual bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera)
|
||||
{
|
||||
return !base.isActiveAndEnabled || RectTransformUtility.RectangleContainsScreenPoint(this.rectTransform, sp, eventCamera);
|
||||
}
|
||||
|
||||
// Token: 0x06000357 RID: 855 RVA: 0x000141C0 File Offset: 0x000125C0
|
||||
public virtual Material GetModifiedMaterial(Material baseMaterial)
|
||||
{
|
||||
Material material;
|
||||
if (!this.MaskEnabled())
|
||||
{
|
||||
material = baseMaterial;
|
||||
}
|
||||
else
|
||||
{
|
||||
Transform transform = MaskUtilities.FindRootSortOverrideCanvas(base.transform);
|
||||
int stencilDepth = MaskUtilities.GetStencilDepth(base.transform, transform);
|
||||
if (stencilDepth >= 8)
|
||||
{
|
||||
Debug.LogError("Attempting to use a stencil mask with depth > 8", base.gameObject);
|
||||
material = baseMaterial;
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = 1 << stencilDepth;
|
||||
if (num == 1)
|
||||
{
|
||||
Material material2 = StencilMaterial.Add(baseMaterial, 1, StencilOp.Replace, CompareFunction.Always, (!this.m_ShowMaskGraphic) ? ((ColorWriteMask)0) : ColorWriteMask.All);
|
||||
StencilMaterial.Remove(this.m_MaskMaterial);
|
||||
this.m_MaskMaterial = material2;
|
||||
Material material3 = StencilMaterial.Add(baseMaterial, 1, StencilOp.Zero, CompareFunction.Always, (ColorWriteMask)0);
|
||||
StencilMaterial.Remove(this.m_UnmaskMaterial);
|
||||
this.m_UnmaskMaterial = material3;
|
||||
this.graphic.canvasRenderer.popMaterialCount = 1;
|
||||
this.graphic.canvasRenderer.SetPopMaterial(this.m_UnmaskMaterial, 0);
|
||||
material = this.m_MaskMaterial;
|
||||
}
|
||||
else
|
||||
{
|
||||
Material material4 = StencilMaterial.Add(baseMaterial, num | (num - 1), StencilOp.Replace, CompareFunction.Equal, (!this.m_ShowMaskGraphic) ? ((ColorWriteMask)0) : ColorWriteMask.All, num - 1, num | (num - 1));
|
||||
StencilMaterial.Remove(this.m_MaskMaterial);
|
||||
this.m_MaskMaterial = material4;
|
||||
this.graphic.canvasRenderer.hasPopInstruction = true;
|
||||
Material material5 = StencilMaterial.Add(baseMaterial, num - 1, StencilOp.Replace, CompareFunction.Equal, (ColorWriteMask)0, num - 1, num | (num - 1));
|
||||
StencilMaterial.Remove(this.m_UnmaskMaterial);
|
||||
this.m_UnmaskMaterial = material5;
|
||||
this.graphic.canvasRenderer.popMaterialCount = 1;
|
||||
this.graphic.canvasRenderer.SetPopMaterial(this.m_UnmaskMaterial, 0);
|
||||
material = this.m_MaskMaterial;
|
||||
}
|
||||
}
|
||||
}
|
||||
return material;
|
||||
}
|
||||
|
||||
// Token: 0x040001A3 RID: 419
|
||||
[NonSerialized]
|
||||
private RectTransform m_RectTransform;
|
||||
|
||||
// Token: 0x040001A4 RID: 420
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("m_ShowGraphic")]
|
||||
private bool m_ShowMaskGraphic = true;
|
||||
|
||||
// Token: 0x040001A5 RID: 421
|
||||
[NonSerialized]
|
||||
private Graphic m_Graphic;
|
||||
|
||||
// Token: 0x040001A6 RID: 422
|
||||
[NonSerialized]
|
||||
private Material m_MaskMaterial;
|
||||
|
||||
// Token: 0x040001A7 RID: 423
|
||||
[NonSerialized]
|
||||
private Material m_UnmaskMaterial;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000064 RID: 100
|
||||
public class MaskUtilities
|
||||
{
|
||||
// Token: 0x0600036D RID: 877 RVA: 0x00014360 File Offset: 0x00012760
|
||||
public static void Notify2DMaskStateChanged(Component mask)
|
||||
{
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
mask.GetComponentsInChildren<Component>(list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (!(list[i] == null) && !(list[i].gameObject == mask.gameObject))
|
||||
{
|
||||
IClippable clippable = list[i] as IClippable;
|
||||
if (clippable != null)
|
||||
{
|
||||
clippable.RecalculateClipping();
|
||||
}
|
||||
}
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
}
|
||||
|
||||
// Token: 0x0600036E RID: 878 RVA: 0x000143E8 File Offset: 0x000127E8
|
||||
public static void NotifyStencilStateChanged(Component mask)
|
||||
{
|
||||
List<Component> list = ListPool<Component>.Get();
|
||||
mask.GetComponentsInChildren<Component>(list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (!(list[i] == null) && !(list[i].gameObject == mask.gameObject))
|
||||
{
|
||||
IMaskable maskable = list[i] as IMaskable;
|
||||
if (maskable != null)
|
||||
{
|
||||
maskable.RecalculateMasking();
|
||||
}
|
||||
}
|
||||
}
|
||||
ListPool<Component>.Release(list);
|
||||
}
|
||||
|
||||
// Token: 0x0600036F RID: 879 RVA: 0x00014470 File Offset: 0x00012870
|
||||
public static Transform FindRootSortOverrideCanvas(Transform start)
|
||||
{
|
||||
List<Canvas> list = ListPool<Canvas>.Get();
|
||||
start.GetComponentsInParent<Canvas>(false, list);
|
||||
Canvas canvas = null;
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
canvas = list[i];
|
||||
if (canvas.overrideSorting)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
ListPool<Canvas>.Release(list);
|
||||
return (!(canvas != null)) ? null : canvas.transform;
|
||||
}
|
||||
|
||||
// Token: 0x06000370 RID: 880 RVA: 0x000144E4 File Offset: 0x000128E4
|
||||
public static int GetStencilDepth(Transform transform, Transform stopAfter)
|
||||
{
|
||||
int num = 0;
|
||||
int num2;
|
||||
if (transform == stopAfter)
|
||||
{
|
||||
num2 = num;
|
||||
}
|
||||
else
|
||||
{
|
||||
Transform transform2 = transform.parent;
|
||||
List<Mask> list = ListPool<Mask>.Get();
|
||||
while (transform2 != null)
|
||||
{
|
||||
transform2.GetComponents<Mask>(list);
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
if (list[i] != null && list[i].MaskEnabled() && list[i].graphic.IsActive())
|
||||
{
|
||||
num++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (transform2 == stopAfter)
|
||||
{
|
||||
break;
|
||||
}
|
||||
transform2 = transform2.parent;
|
||||
}
|
||||
ListPool<Mask>.Release(list);
|
||||
num2 = num;
|
||||
}
|
||||
return num2;
|
||||
}
|
||||
|
||||
// Token: 0x06000371 RID: 881 RVA: 0x000145B8 File Offset: 0x000129B8
|
||||
public static bool IsDescendantOrSelf(Transform father, Transform child)
|
||||
{
|
||||
bool flag;
|
||||
if (father == null || child == null)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else if (father == child)
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
while (child.parent != null)
|
||||
{
|
||||
if (child.parent == father)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
child = child.parent;
|
||||
}
|
||||
flag = false;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000372 RID: 882 RVA: 0x00014638 File Offset: 0x00012A38
|
||||
public static RectMask2D GetRectMaskForClippable(IClippable clippable)
|
||||
{
|
||||
List<RectMask2D> list = ListPool<RectMask2D>.Get();
|
||||
List<Canvas> list2 = ListPool<Canvas>.Get();
|
||||
RectMask2D rectMask2D = null;
|
||||
clippable.rectTransform.GetComponentsInParent<RectMask2D>(false, list);
|
||||
if (list.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
rectMask2D = list[i];
|
||||
if (rectMask2D.gameObject == clippable.gameObject)
|
||||
{
|
||||
rectMask2D = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (rectMask2D.isActiveAndEnabled)
|
||||
{
|
||||
clippable.rectTransform.GetComponentsInParent<Canvas>(false, list2);
|
||||
for (int j = list2.Count - 1; j >= 0; j--)
|
||||
{
|
||||
if (!MaskUtilities.IsDescendantOrSelf(list2[j].transform, rectMask2D.transform) && list2[j].overrideSorting)
|
||||
{
|
||||
rectMask2D = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return rectMask2D;
|
||||
}
|
||||
rectMask2D = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
ListPool<RectMask2D>.Release(list);
|
||||
ListPool<Canvas>.Release(list2);
|
||||
return rectMask2D;
|
||||
}
|
||||
|
||||
// Token: 0x06000373 RID: 883 RVA: 0x00014744 File Offset: 0x00012B44
|
||||
public static void GetRectMasksForClip(RectMask2D clipper, List<RectMask2D> masks)
|
||||
{
|
||||
masks.Clear();
|
||||
List<Canvas> list = ListPool<Canvas>.Get();
|
||||
List<RectMask2D> list2 = ListPool<RectMask2D>.Get();
|
||||
clipper.transform.GetComponentsInParent<RectMask2D>(false, list2);
|
||||
if (list2.Count > 0)
|
||||
{
|
||||
clipper.transform.GetComponentsInParent<Canvas>(false, list);
|
||||
for (int i = list2.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (list2[i].IsActive())
|
||||
{
|
||||
bool flag = true;
|
||||
for (int j = list.Count - 1; j >= 0; j--)
|
||||
{
|
||||
if (!MaskUtilities.IsDescendantOrSelf(list[j].transform, list2[i].transform) && list[j].overrideSorting)
|
||||
{
|
||||
flag = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
masks.Add(list2[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ListPool<RectMask2D>.Release(list2);
|
||||
ListPool<Canvas>.Release(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,254 @@
|
||||
using System;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000062 RID: 98
|
||||
public abstract class MaskableGraphic : Graphic, IClippable, IMaskable, IMaterialModifier
|
||||
{
|
||||
// Token: 0x170000E9 RID: 233
|
||||
// (get) Token: 0x06000359 RID: 857 RVA: 0x0000C8D0 File Offset: 0x0000ACD0
|
||||
// (set) Token: 0x0600035A RID: 858 RVA: 0x0000C8EB File Offset: 0x0000ACEB
|
||||
public MaskableGraphic.CullStateChangedEvent onCullStateChanged
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnCullStateChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_OnCullStateChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EA RID: 234
|
||||
// (get) Token: 0x0600035B RID: 859 RVA: 0x0000C8F8 File Offset: 0x0000ACF8
|
||||
// (set) Token: 0x0600035C RID: 860 RVA: 0x0000C913 File Offset: 0x0000AD13
|
||||
public bool maskable
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Maskable;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != this.m_Maskable)
|
||||
{
|
||||
this.m_Maskable = value;
|
||||
this.m_ShouldRecalculateStencil = true;
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600035D RID: 861 RVA: 0x0000C93C File Offset: 0x0000AD3C
|
||||
public virtual Material GetModifiedMaterial(Material baseMaterial)
|
||||
{
|
||||
Material material = baseMaterial;
|
||||
if (this.m_ShouldRecalculateStencil)
|
||||
{
|
||||
Transform transform = MaskUtilities.FindRootSortOverrideCanvas(base.transform);
|
||||
this.m_StencilValue = ((!this.maskable) ? 0 : MaskUtilities.GetStencilDepth(base.transform, transform));
|
||||
this.m_ShouldRecalculateStencil = false;
|
||||
}
|
||||
Mask component = base.GetComponent<Mask>();
|
||||
if (this.m_StencilValue > 0 && (component == null || !component.IsActive()))
|
||||
{
|
||||
Material material2 = StencilMaterial.Add(material, (1 << this.m_StencilValue) - 1, StencilOp.Keep, CompareFunction.Equal, ColorWriteMask.All, (1 << this.m_StencilValue) - 1, 0);
|
||||
StencilMaterial.Remove(this.m_MaskMaterial);
|
||||
this.m_MaskMaterial = material2;
|
||||
material = this.m_MaskMaterial;
|
||||
}
|
||||
return material;
|
||||
}
|
||||
|
||||
// Token: 0x0600035E RID: 862 RVA: 0x0000CA04 File Offset: 0x0000AE04
|
||||
public virtual void Cull(Rect clipRect, bool validRect)
|
||||
{
|
||||
bool flag = !validRect || !clipRect.Overlaps(this.rootCanvasRect, true);
|
||||
this.UpdateCull(flag);
|
||||
}
|
||||
|
||||
// Token: 0x0600035F RID: 863 RVA: 0x0000CA34 File Offset: 0x0000AE34
|
||||
private void UpdateCull(bool cull)
|
||||
{
|
||||
bool flag = base.canvasRenderer.cull != cull;
|
||||
base.canvasRenderer.cull = cull;
|
||||
if (flag)
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("MaskableGraphic.cullingChanged", this);
|
||||
this.m_OnCullStateChanged.Invoke(cull);
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000360 RID: 864 RVA: 0x0000CA85 File Offset: 0x0000AE85
|
||||
public virtual void SetClipRect(Rect clipRect, bool validRect)
|
||||
{
|
||||
if (validRect)
|
||||
{
|
||||
base.canvasRenderer.EnableRectClipping(clipRect);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.canvasRenderer.DisableRectClipping();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000361 RID: 865 RVA: 0x0000CAAA File Offset: 0x0000AEAA
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.m_ShouldRecalculateStencil = true;
|
||||
this.UpdateClipParent();
|
||||
this.SetMaterialDirty();
|
||||
if (base.GetComponent<Mask>() != null)
|
||||
{
|
||||
MaskUtilities.NotifyStencilStateChanged(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000362 RID: 866 RVA: 0x0000CAE0 File Offset: 0x0000AEE0
|
||||
protected override void OnDisable()
|
||||
{
|
||||
base.OnDisable();
|
||||
this.m_ShouldRecalculateStencil = true;
|
||||
this.SetMaterialDirty();
|
||||
this.UpdateClipParent();
|
||||
StencilMaterial.Remove(this.m_MaskMaterial);
|
||||
this.m_MaskMaterial = null;
|
||||
if (base.GetComponent<Mask>() != null)
|
||||
{
|
||||
MaskUtilities.NotifyStencilStateChanged(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000363 RID: 867 RVA: 0x0000CB32 File Offset: 0x0000AF32
|
||||
protected override void OnTransformParentChanged()
|
||||
{
|
||||
base.OnTransformParentChanged();
|
||||
if (base.isActiveAndEnabled)
|
||||
{
|
||||
this.m_ShouldRecalculateStencil = true;
|
||||
this.UpdateClipParent();
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000364 RID: 868 RVA: 0x0000CB5E File Offset: 0x0000AF5E
|
||||
[Obsolete("Not used anymore.", true)]
|
||||
public virtual void ParentMaskStateChanged()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000365 RID: 869 RVA: 0x0000CB61 File Offset: 0x0000AF61
|
||||
protected override void OnCanvasHierarchyChanged()
|
||||
{
|
||||
base.OnCanvasHierarchyChanged();
|
||||
if (base.isActiveAndEnabled)
|
||||
{
|
||||
this.m_ShouldRecalculateStencil = true;
|
||||
this.UpdateClipParent();
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EB RID: 235
|
||||
// (get) Token: 0x06000366 RID: 870 RVA: 0x0000CB90 File Offset: 0x0000AF90
|
||||
private Rect rootCanvasRect
|
||||
{
|
||||
get
|
||||
{
|
||||
base.rectTransform.GetWorldCorners(this.m_Corners);
|
||||
if (base.canvas)
|
||||
{
|
||||
Canvas rootCanvas = base.canvas.rootCanvas;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
this.m_Corners[i] = rootCanvas.transform.InverseTransformPoint(this.m_Corners[i]);
|
||||
}
|
||||
}
|
||||
return new Rect(this.m_Corners[0].x, this.m_Corners[0].y, this.m_Corners[2].x - this.m_Corners[0].x, this.m_Corners[2].y - this.m_Corners[0].y);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000367 RID: 871 RVA: 0x0000CC80 File Offset: 0x0000B080
|
||||
private void UpdateClipParent()
|
||||
{
|
||||
RectMask2D rectMask2D = ((!this.maskable || !this.IsActive()) ? null : MaskUtilities.GetRectMaskForClippable(this));
|
||||
if (this.m_ParentMask != null && (rectMask2D != this.m_ParentMask || !rectMask2D.IsActive()))
|
||||
{
|
||||
this.m_ParentMask.RemoveClippable(this);
|
||||
this.UpdateCull(false);
|
||||
}
|
||||
if (rectMask2D != null && rectMask2D.IsActive())
|
||||
{
|
||||
rectMask2D.AddClippable(this);
|
||||
}
|
||||
this.m_ParentMask = rectMask2D;
|
||||
}
|
||||
|
||||
// Token: 0x06000368 RID: 872 RVA: 0x0000CD18 File Offset: 0x0000B118
|
||||
public virtual void RecalculateClipping()
|
||||
{
|
||||
this.UpdateClipParent();
|
||||
}
|
||||
|
||||
// Token: 0x06000369 RID: 873 RVA: 0x0000CD21 File Offset: 0x0000B121
|
||||
public virtual void RecalculateMasking()
|
||||
{
|
||||
this.m_ShouldRecalculateStencil = true;
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
|
||||
// Token: 0x0600036A RID: 874 RVA: 0x0000CD31 File Offset: 0x0000B131
|
||||
GameObject IClippable.get_gameObject()
|
||||
{
|
||||
return base.gameObject;
|
||||
}
|
||||
|
||||
// Token: 0x040001A8 RID: 424
|
||||
[NonSerialized]
|
||||
protected bool m_ShouldRecalculateStencil = true;
|
||||
|
||||
// Token: 0x040001A9 RID: 425
|
||||
[NonSerialized]
|
||||
protected Material m_MaskMaterial;
|
||||
|
||||
// Token: 0x040001AA RID: 426
|
||||
[NonSerialized]
|
||||
private RectMask2D m_ParentMask;
|
||||
|
||||
// Token: 0x040001AB RID: 427
|
||||
[NonSerialized]
|
||||
private bool m_Maskable = true;
|
||||
|
||||
// Token: 0x040001AC RID: 428
|
||||
[Obsolete("Not used anymore.", true)]
|
||||
[NonSerialized]
|
||||
protected bool m_IncludeForMasking = false;
|
||||
|
||||
// Token: 0x040001AD RID: 429
|
||||
[SerializeField]
|
||||
private MaskableGraphic.CullStateChangedEvent m_OnCullStateChanged = new MaskableGraphic.CullStateChangedEvent();
|
||||
|
||||
// Token: 0x040001AE RID: 430
|
||||
[Obsolete("Not used anymore", true)]
|
||||
[NonSerialized]
|
||||
protected bool m_ShouldRecalculate = true;
|
||||
|
||||
// Token: 0x040001AF RID: 431
|
||||
[NonSerialized]
|
||||
protected int m_StencilValue;
|
||||
|
||||
// Token: 0x040001B0 RID: 432
|
||||
private readonly Vector3[] m_Corners = new Vector3[4];
|
||||
|
||||
// Token: 0x02000063 RID: 99
|
||||
[Serializable]
|
||||
public class CullStateChangedEvent : UnityEvent<bool>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000065 RID: 101
|
||||
internal static class Misc
|
||||
{
|
||||
// Token: 0x06000374 RID: 884 RVA: 0x0001483C File Offset: 0x00012C3C
|
||||
public static void Destroy(Object obj)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
if (obj is GameObject)
|
||||
{
|
||||
GameObject gameObject = obj as GameObject;
|
||||
gameObject.transform.parent = null;
|
||||
}
|
||||
Object.Destroy(obj);
|
||||
}
|
||||
else
|
||||
{
|
||||
Object.DestroyImmediate(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000375 RID: 885 RVA: 0x00014895 File Offset: 0x00012C95
|
||||
public static void DestroyImmediate(Object obj)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
if (Application.isEditor)
|
||||
{
|
||||
Object.DestroyImmediate(obj);
|
||||
}
|
||||
else
|
||||
{
|
||||
Object.Destroy(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000066 RID: 102
|
||||
[Serializable]
|
||||
public struct Navigation : IEquatable<Navigation>
|
||||
{
|
||||
// Token: 0x170000EC RID: 236
|
||||
// (get) Token: 0x06000376 RID: 886 RVA: 0x000148C4 File Offset: 0x00012CC4
|
||||
// (set) Token: 0x06000377 RID: 887 RVA: 0x000148DF File Offset: 0x00012CDF
|
||||
public Navigation.Mode mode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Mode;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Mode = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000ED RID: 237
|
||||
// (get) Token: 0x06000378 RID: 888 RVA: 0x000148EC File Offset: 0x00012CEC
|
||||
// (set) Token: 0x06000379 RID: 889 RVA: 0x00014907 File Offset: 0x00012D07
|
||||
public Selectable selectOnUp
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_SelectOnUp;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_SelectOnUp = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EE RID: 238
|
||||
// (get) Token: 0x0600037A RID: 890 RVA: 0x00014914 File Offset: 0x00012D14
|
||||
// (set) Token: 0x0600037B RID: 891 RVA: 0x0001492F File Offset: 0x00012D2F
|
||||
public Selectable selectOnDown
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_SelectOnDown;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_SelectOnDown = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EF RID: 239
|
||||
// (get) Token: 0x0600037C RID: 892 RVA: 0x0001493C File Offset: 0x00012D3C
|
||||
// (set) Token: 0x0600037D RID: 893 RVA: 0x00014957 File Offset: 0x00012D57
|
||||
public Selectable selectOnLeft
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_SelectOnLeft;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_SelectOnLeft = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F0 RID: 240
|
||||
// (get) Token: 0x0600037E RID: 894 RVA: 0x00014964 File Offset: 0x00012D64
|
||||
// (set) Token: 0x0600037F RID: 895 RVA: 0x0001497F File Offset: 0x00012D7F
|
||||
public Selectable selectOnRight
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_SelectOnRight;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_SelectOnRight = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F1 RID: 241
|
||||
// (get) Token: 0x06000380 RID: 896 RVA: 0x0001498C File Offset: 0x00012D8C
|
||||
public static Navigation defaultNavigation
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Navigation
|
||||
{
|
||||
m_Mode = Navigation.Mode.Automatic
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000381 RID: 897 RVA: 0x000149B4 File Offset: 0x00012DB4
|
||||
public bool Equals(Navigation other)
|
||||
{
|
||||
return this.mode == other.mode && this.selectOnUp == other.selectOnUp && this.selectOnDown == other.selectOnDown && this.selectOnLeft == other.selectOnLeft && this.selectOnRight == other.selectOnRight;
|
||||
}
|
||||
|
||||
// Token: 0x040001B1 RID: 433
|
||||
[FormerlySerializedAs("mode")]
|
||||
[SerializeField]
|
||||
private Navigation.Mode m_Mode;
|
||||
|
||||
// Token: 0x040001B2 RID: 434
|
||||
[FormerlySerializedAs("selectOnUp")]
|
||||
[SerializeField]
|
||||
private Selectable m_SelectOnUp;
|
||||
|
||||
// Token: 0x040001B3 RID: 435
|
||||
[FormerlySerializedAs("selectOnDown")]
|
||||
[SerializeField]
|
||||
private Selectable m_SelectOnDown;
|
||||
|
||||
// Token: 0x040001B4 RID: 436
|
||||
[FormerlySerializedAs("selectOnLeft")]
|
||||
[SerializeField]
|
||||
private Selectable m_SelectOnLeft;
|
||||
|
||||
// Token: 0x040001B5 RID: 437
|
||||
[FormerlySerializedAs("selectOnRight")]
|
||||
[SerializeField]
|
||||
private Selectable m_SelectOnRight;
|
||||
|
||||
// Token: 0x02000067 RID: 103
|
||||
[Flags]
|
||||
public enum Mode
|
||||
{
|
||||
// Token: 0x040001B7 RID: 439
|
||||
None = 0,
|
||||
// Token: 0x040001B8 RID: 440
|
||||
Horizontal = 1,
|
||||
// Token: 0x040001B9 RID: 441
|
||||
Vertical = 2,
|
||||
// Token: 0x040001BA RID: 442
|
||||
Automatic = 3,
|
||||
// Token: 0x040001BB RID: 443
|
||||
Explicit = 4
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000A2 RID: 162
|
||||
internal class ObjectPool<T> where T : new()
|
||||
{
|
||||
// Token: 0x060005EA RID: 1514 RVA: 0x0001DA56 File Offset: 0x0001BE56
|
||||
public ObjectPool(UnityAction<T> actionOnGet, UnityAction<T> actionOnRelease)
|
||||
{
|
||||
this.m_ActionOnGet = actionOnGet;
|
||||
this.m_ActionOnRelease = actionOnRelease;
|
||||
}
|
||||
|
||||
// Token: 0x17000195 RID: 405
|
||||
// (get) Token: 0x060005EB RID: 1515 RVA: 0x0001DA78 File Offset: 0x0001BE78
|
||||
// (set) Token: 0x060005EC RID: 1516 RVA: 0x0001DA92 File Offset: 0x0001BE92
|
||||
public int countAll { get; private set; }
|
||||
|
||||
// Token: 0x17000196 RID: 406
|
||||
// (get) Token: 0x060005ED RID: 1517 RVA: 0x0001DA9C File Offset: 0x0001BE9C
|
||||
public int countActive
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.countAll - this.countInactive;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000197 RID: 407
|
||||
// (get) Token: 0x060005EE RID: 1518 RVA: 0x0001DAC0 File Offset: 0x0001BEC0
|
||||
public int countInactive
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Stack.Count;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060005EF RID: 1519 RVA: 0x0001DAE0 File Offset: 0x0001BEE0
|
||||
public T Get()
|
||||
{
|
||||
T t;
|
||||
if (this.m_Stack.Count == 0)
|
||||
{
|
||||
t = new T();
|
||||
this.countAll++;
|
||||
}
|
||||
else
|
||||
{
|
||||
t = this.m_Stack.Pop();
|
||||
}
|
||||
if (this.m_ActionOnGet != null)
|
||||
{
|
||||
this.m_ActionOnGet(t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
// Token: 0x060005F0 RID: 1520 RVA: 0x0001DB48 File Offset: 0x0001BF48
|
||||
public void Release(T element)
|
||||
{
|
||||
if (this.m_Stack.Count > 0 && object.ReferenceEquals(this.m_Stack.Peek(), element))
|
||||
{
|
||||
Debug.LogError("Internal error. Trying to destroy object that is already released to pool.");
|
||||
}
|
||||
if (this.m_ActionOnRelease != null)
|
||||
{
|
||||
this.m_ActionOnRelease(element);
|
||||
}
|
||||
this.m_Stack.Push(element);
|
||||
}
|
||||
|
||||
// Token: 0x040002C2 RID: 706
|
||||
private readonly Stack<T> m_Stack = new Stack<T>();
|
||||
|
||||
// Token: 0x040002C3 RID: 707
|
||||
private readonly UnityAction<T> m_ActionOnGet;
|
||||
|
||||
// Token: 0x040002C4 RID: 708
|
||||
private readonly UnityAction<T> m_ActionOnRelease;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000AD RID: 173
|
||||
[AddComponentMenu("UI/Effects/Outline", 15)]
|
||||
public class Outline : Shadow
|
||||
{
|
||||
// Token: 0x06000622 RID: 1570 RVA: 0x0001E967 File Offset: 0x0001CD67
|
||||
protected Outline()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000623 RID: 1571 RVA: 0x0001E970 File Offset: 0x0001CD70
|
||||
public override void ModifyMesh(VertexHelper vh)
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
List<UIVertex> list = ListPool<UIVertex>.Get();
|
||||
vh.GetUIVertexStream(list);
|
||||
int num = list.Count * 5;
|
||||
if (list.Capacity < num)
|
||||
{
|
||||
list.Capacity = num;
|
||||
}
|
||||
int num2 = 0;
|
||||
int num3 = list.Count;
|
||||
base.ApplyShadowZeroAlloc(list, base.effectColor, num2, list.Count, base.effectDistance.x, base.effectDistance.y);
|
||||
num2 = num3;
|
||||
num3 = list.Count;
|
||||
base.ApplyShadowZeroAlloc(list, base.effectColor, num2, list.Count, base.effectDistance.x, -base.effectDistance.y);
|
||||
num2 = num3;
|
||||
num3 = list.Count;
|
||||
base.ApplyShadowZeroAlloc(list, base.effectColor, num2, list.Count, -base.effectDistance.x, base.effectDistance.y);
|
||||
num2 = num3;
|
||||
num3 = list.Count;
|
||||
base.ApplyShadowZeroAlloc(list, base.effectColor, num2, list.Count, -base.effectDistance.x, -base.effectDistance.y);
|
||||
vh.Clear();
|
||||
vh.AddUIVertexTriangleStream(list);
|
||||
ListPool<UIVertex>.Release(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000AE RID: 174
|
||||
[AddComponentMenu("UI/Effects/Position As UV1", 16)]
|
||||
public class PositionAsUV1 : BaseMeshEffect
|
||||
{
|
||||
// Token: 0x06000624 RID: 1572 RVA: 0x0001EACE File Offset: 0x0001CECE
|
||||
protected PositionAsUV1()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000625 RID: 1573 RVA: 0x0001EAD8 File Offset: 0x0001CED8
|
||||
public override void ModifyMesh(VertexHelper vh)
|
||||
{
|
||||
UIVertex uivertex = default(UIVertex);
|
||||
for (int i = 0; i < vh.currentVertCount; i++)
|
||||
{
|
||||
vh.PopulateUIVertex(ref uivertex, i);
|
||||
uivertex.uv1 = new Vector2(uivertex.position.x, uivertex.position.y);
|
||||
vh.SetUIVertex(uivertex, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000068 RID: 104
|
||||
[AddComponentMenu("UI/Raw Image", 12)]
|
||||
public class RawImage : MaskableGraphic
|
||||
{
|
||||
// Token: 0x06000382 RID: 898 RVA: 0x00014A35 File Offset: 0x00012E35
|
||||
protected RawImage()
|
||||
{
|
||||
base.useLegacyMeshGeneration = false;
|
||||
}
|
||||
|
||||
// Token: 0x170000F2 RID: 242
|
||||
// (get) Token: 0x06000383 RID: 899 RVA: 0x00014A64 File Offset: 0x00012E64
|
||||
public override Texture mainTexture
|
||||
{
|
||||
get
|
||||
{
|
||||
Texture texture;
|
||||
if (this.m_Texture == null)
|
||||
{
|
||||
if (this.material != null && this.material.mainTexture != null)
|
||||
{
|
||||
texture = this.material.mainTexture;
|
||||
}
|
||||
else
|
||||
{
|
||||
texture = Graphic.s_WhiteTexture;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
texture = this.m_Texture;
|
||||
}
|
||||
return texture;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F3 RID: 243
|
||||
// (get) Token: 0x06000384 RID: 900 RVA: 0x00014AD8 File Offset: 0x00012ED8
|
||||
// (set) Token: 0x06000385 RID: 901 RVA: 0x00014AF3 File Offset: 0x00012EF3
|
||||
public Texture texture
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Texture;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!(this.m_Texture == value))
|
||||
{
|
||||
this.m_Texture = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetMaterialDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F4 RID: 244
|
||||
// (get) Token: 0x06000386 RID: 902 RVA: 0x00014B20 File Offset: 0x00012F20
|
||||
// (set) Token: 0x06000387 RID: 903 RVA: 0x00014B3B File Offset: 0x00012F3B
|
||||
public Rect uvRect
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_UVRect;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!(this.m_UVRect == value))
|
||||
{
|
||||
this.m_UVRect = value;
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000388 RID: 904 RVA: 0x00014B64 File Offset: 0x00012F64
|
||||
public override void SetNativeSize()
|
||||
{
|
||||
Texture mainTexture = this.mainTexture;
|
||||
if (mainTexture != null)
|
||||
{
|
||||
int num = Mathf.RoundToInt((float)mainTexture.width * this.uvRect.width);
|
||||
int num2 = Mathf.RoundToInt((float)mainTexture.height * this.uvRect.height);
|
||||
base.rectTransform.anchorMax = base.rectTransform.anchorMin;
|
||||
base.rectTransform.sizeDelta = new Vector2((float)num, (float)num2);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000389 RID: 905 RVA: 0x00014BEC File Offset: 0x00012FEC
|
||||
protected override void OnPopulateMesh(VertexHelper vh)
|
||||
{
|
||||
Texture mainTexture = this.mainTexture;
|
||||
vh.Clear();
|
||||
if (mainTexture != null)
|
||||
{
|
||||
Rect pixelAdjustedRect = base.GetPixelAdjustedRect();
|
||||
Vector4 vector = new Vector4(pixelAdjustedRect.x, pixelAdjustedRect.y, pixelAdjustedRect.x + pixelAdjustedRect.width, pixelAdjustedRect.y + pixelAdjustedRect.height);
|
||||
float num = (float)mainTexture.width * mainTexture.texelSize.x;
|
||||
float num2 = (float)mainTexture.height * mainTexture.texelSize.y;
|
||||
Color color = this.color;
|
||||
vh.AddVert(new Vector3(vector.x, vector.y), color, new Vector2(this.m_UVRect.xMin * num, this.m_UVRect.yMin * num2));
|
||||
vh.AddVert(new Vector3(vector.x, vector.w), color, new Vector2(this.m_UVRect.xMin * num, this.m_UVRect.yMax * num2));
|
||||
vh.AddVert(new Vector3(vector.z, vector.w), color, new Vector2(this.m_UVRect.xMax * num, this.m_UVRect.yMax * num2));
|
||||
vh.AddVert(new Vector3(vector.z, vector.y), color, new Vector2(this.m_UVRect.xMax * num, this.m_UVRect.yMin * num2));
|
||||
vh.AddTriangle(0, 1, 2);
|
||||
vh.AddTriangle(2, 3, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001BC RID: 444
|
||||
[FormerlySerializedAs("m_Tex")]
|
||||
[SerializeField]
|
||||
private Texture m_Texture;
|
||||
|
||||
// Token: 0x040001BD RID: 445
|
||||
[SerializeField]
|
||||
private Rect m_UVRect = new Rect(0f, 0f, 1f, 1f);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000069 RID: 105
|
||||
[AddComponentMenu("UI/Rect Mask 2D", 13)]
|
||||
[ExecuteInEditMode]
|
||||
[DisallowMultipleComponent]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class RectMask2D : UIBehaviour, IClipper, ICanvasRaycastFilter
|
||||
{
|
||||
// Token: 0x0600038A RID: 906 RVA: 0x00014D9C File Offset: 0x0001319C
|
||||
protected RectMask2D()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170000F5 RID: 245
|
||||
// (get) Token: 0x0600038B RID: 907 RVA: 0x00014DC8 File Offset: 0x000131C8
|
||||
public Rect canvasRect
|
||||
{
|
||||
get
|
||||
{
|
||||
Canvas canvas = null;
|
||||
List<Canvas> list = ListPool<Canvas>.Get();
|
||||
base.gameObject.GetComponentsInParent<Canvas>(false, list);
|
||||
if (list.Count > 0)
|
||||
{
|
||||
canvas = list[list.Count - 1];
|
||||
}
|
||||
ListPool<Canvas>.Release(list);
|
||||
return this.m_VertexClipper.GetCanvasRect(this.rectTransform, canvas);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F6 RID: 246
|
||||
// (get) Token: 0x0600038C RID: 908 RVA: 0x00014E28 File Offset: 0x00013228
|
||||
public RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
RectTransform rectTransform;
|
||||
if ((rectTransform = this.m_RectTransform) == null)
|
||||
{
|
||||
rectTransform = (this.m_RectTransform = base.GetComponent<RectTransform>());
|
||||
}
|
||||
return rectTransform;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600038D RID: 909 RVA: 0x00014E59 File Offset: 0x00013259
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.m_ShouldRecalculateClipRects = true;
|
||||
ClipperRegistry.Register(this);
|
||||
MaskUtilities.Notify2DMaskStateChanged(this);
|
||||
}
|
||||
|
||||
// Token: 0x0600038E RID: 910 RVA: 0x00014E75 File Offset: 0x00013275
|
||||
protected override void OnDisable()
|
||||
{
|
||||
base.OnDisable();
|
||||
this.m_ClipTargets.Clear();
|
||||
this.m_Clippers.Clear();
|
||||
ClipperRegistry.Unregister(this);
|
||||
MaskUtilities.Notify2DMaskStateChanged(this);
|
||||
}
|
||||
|
||||
// Token: 0x0600038F RID: 911 RVA: 0x00014EA0 File Offset: 0x000132A0
|
||||
public virtual bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera)
|
||||
{
|
||||
return !base.isActiveAndEnabled || RectTransformUtility.RectangleContainsScreenPoint(this.rectTransform, sp, eventCamera);
|
||||
}
|
||||
|
||||
// Token: 0x06000390 RID: 912 RVA: 0x00014ED4 File Offset: 0x000132D4
|
||||
public virtual void PerformClipping()
|
||||
{
|
||||
if (this.m_ShouldRecalculateClipRects)
|
||||
{
|
||||
MaskUtilities.GetRectMasksForClip(this, this.m_Clippers);
|
||||
this.m_ShouldRecalculateClipRects = false;
|
||||
}
|
||||
bool flag = true;
|
||||
Rect rect = Clipping.FindCullAndClipWorldRect(this.m_Clippers, out flag);
|
||||
bool flag2 = rect != this.m_LastClipRectCanvasSpace;
|
||||
if (flag2 || this.m_ForceClip)
|
||||
{
|
||||
foreach (IClippable clippable in this.m_ClipTargets)
|
||||
{
|
||||
clippable.SetClipRect(rect, flag);
|
||||
}
|
||||
this.m_LastClipRectCanvasSpace = rect;
|
||||
this.m_LastValidClipRect = flag;
|
||||
}
|
||||
foreach (IClippable clippable2 in this.m_ClipTargets)
|
||||
{
|
||||
MaskableGraphic maskableGraphic = clippable2 as MaskableGraphic;
|
||||
if (!(maskableGraphic != null) || maskableGraphic.canvasRenderer.hasMoved || flag2)
|
||||
{
|
||||
clippable2.Cull(this.m_LastClipRectCanvasSpace, this.m_LastValidClipRect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000391 RID: 913 RVA: 0x00015020 File Offset: 0x00013420
|
||||
public void AddClippable(IClippable clippable)
|
||||
{
|
||||
if (clippable != null)
|
||||
{
|
||||
this.m_ShouldRecalculateClipRects = true;
|
||||
if (!this.m_ClipTargets.Contains(clippable))
|
||||
{
|
||||
this.m_ClipTargets.Add(clippable);
|
||||
}
|
||||
this.m_ForceClip = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000392 RID: 914 RVA: 0x0001505C File Offset: 0x0001345C
|
||||
public void RemoveClippable(IClippable clippable)
|
||||
{
|
||||
if (clippable != null)
|
||||
{
|
||||
this.m_ShouldRecalculateClipRects = true;
|
||||
clippable.SetClipRect(default(Rect), false);
|
||||
this.m_ClipTargets.Remove(clippable);
|
||||
this.m_ForceClip = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000393 RID: 915 RVA: 0x000150A0 File Offset: 0x000134A0
|
||||
protected override void OnTransformParentChanged()
|
||||
{
|
||||
base.OnTransformParentChanged();
|
||||
this.m_ShouldRecalculateClipRects = true;
|
||||
}
|
||||
|
||||
// Token: 0x06000394 RID: 916 RVA: 0x000150B0 File Offset: 0x000134B0
|
||||
protected override void OnCanvasHierarchyChanged()
|
||||
{
|
||||
base.OnCanvasHierarchyChanged();
|
||||
this.m_ShouldRecalculateClipRects = true;
|
||||
}
|
||||
|
||||
// Token: 0x040001BE RID: 446
|
||||
[NonSerialized]
|
||||
private readonly RectangularVertexClipper m_VertexClipper = new RectangularVertexClipper();
|
||||
|
||||
// Token: 0x040001BF RID: 447
|
||||
[NonSerialized]
|
||||
private RectTransform m_RectTransform;
|
||||
|
||||
// Token: 0x040001C0 RID: 448
|
||||
[NonSerialized]
|
||||
private HashSet<IClippable> m_ClipTargets = new HashSet<IClippable>();
|
||||
|
||||
// Token: 0x040001C1 RID: 449
|
||||
[NonSerialized]
|
||||
private bool m_ShouldRecalculateClipRects;
|
||||
|
||||
// Token: 0x040001C2 RID: 450
|
||||
[NonSerialized]
|
||||
private List<RectMask2D> m_Clippers = new List<RectMask2D>();
|
||||
|
||||
// Token: 0x040001C3 RID: 451
|
||||
[NonSerialized]
|
||||
private Rect m_LastClipRectCanvasSpace;
|
||||
|
||||
// Token: 0x040001C4 RID: 452
|
||||
[NonSerialized]
|
||||
private bool m_LastValidClipRect;
|
||||
|
||||
// Token: 0x040001C5 RID: 453
|
||||
[NonSerialized]
|
||||
private bool m_ForceClip;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000086 RID: 134
|
||||
internal class RectangularVertexClipper
|
||||
{
|
||||
// Token: 0x060004F7 RID: 1271 RVA: 0x0001A858 File Offset: 0x00018C58
|
||||
public Rect GetCanvasRect(RectTransform t, Canvas c)
|
||||
{
|
||||
Rect rect;
|
||||
if (c == null)
|
||||
{
|
||||
rect = default(Rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
t.GetWorldCorners(this.m_WorldCorners);
|
||||
Transform component = c.GetComponent<Transform>();
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
this.m_CanvasCorners[i] = component.InverseTransformPoint(this.m_WorldCorners[i]);
|
||||
}
|
||||
rect = new Rect(this.m_CanvasCorners[0].x, this.m_CanvasCorners[0].y, this.m_CanvasCorners[2].x - this.m_CanvasCorners[0].x, this.m_CanvasCorners[2].y - this.m_CanvasCorners[0].y);
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
|
||||
// Token: 0x04000257 RID: 599
|
||||
private readonly Vector3[] m_WorldCorners = new Vector3[4];
|
||||
|
||||
// Token: 0x04000258 RID: 600
|
||||
private readonly Vector3[] m_CanvasCorners = new Vector3[4];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using UnityEngineInternal;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000A3 RID: 163
|
||||
internal class ReflectionMethodsCache
|
||||
{
|
||||
// Token: 0x060005F1 RID: 1521 RVA: 0x0001DBB4 File Offset: 0x0001BFB4
|
||||
public ReflectionMethodsCache()
|
||||
{
|
||||
MethodInfo method = typeof(Physics).GetMethod("Raycast", new Type[]
|
||||
{
|
||||
typeof(Ray),
|
||||
typeof(RaycastHit).MakeByRefType(),
|
||||
typeof(float),
|
||||
typeof(int)
|
||||
});
|
||||
if (method != null)
|
||||
{
|
||||
this.raycast3D = (ReflectionMethodsCache.Raycast3DCallback)ScriptingUtils.CreateDelegate(typeof(ReflectionMethodsCache.Raycast3DCallback), method);
|
||||
}
|
||||
MethodInfo method2 = typeof(Physics2D).GetMethod("Raycast", new Type[]
|
||||
{
|
||||
typeof(Vector2),
|
||||
typeof(Vector2),
|
||||
typeof(float),
|
||||
typeof(int)
|
||||
});
|
||||
if (method2 != null)
|
||||
{
|
||||
this.raycast2D = (ReflectionMethodsCache.Raycast2DCallback)ScriptingUtils.CreateDelegate(typeof(ReflectionMethodsCache.Raycast2DCallback), method2);
|
||||
}
|
||||
MethodInfo method3 = typeof(Physics).GetMethod("RaycastAll", new Type[]
|
||||
{
|
||||
typeof(Ray),
|
||||
typeof(float),
|
||||
typeof(int)
|
||||
});
|
||||
if (method3 != null)
|
||||
{
|
||||
this.raycast3DAll = (ReflectionMethodsCache.RaycastAllCallback)ScriptingUtils.CreateDelegate(typeof(ReflectionMethodsCache.RaycastAllCallback), method3);
|
||||
}
|
||||
MethodInfo method4 = typeof(Physics2D).GetMethod("GetRayIntersectionAll", new Type[]
|
||||
{
|
||||
typeof(Ray),
|
||||
typeof(float),
|
||||
typeof(int)
|
||||
});
|
||||
if (method4 != null)
|
||||
{
|
||||
this.getRayIntersectionAll = (ReflectionMethodsCache.GetRayIntersectionAllCallback)ScriptingUtils.CreateDelegate(typeof(ReflectionMethodsCache.GetRayIntersectionAllCallback), method4);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000198 RID: 408
|
||||
// (get) Token: 0x060005F2 RID: 1522 RVA: 0x0001DD90 File Offset: 0x0001C190
|
||||
public static ReflectionMethodsCache Singleton
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ReflectionMethodsCache.s_ReflectionMethodsCache == null)
|
||||
{
|
||||
ReflectionMethodsCache.s_ReflectionMethodsCache = new ReflectionMethodsCache();
|
||||
}
|
||||
return ReflectionMethodsCache.s_ReflectionMethodsCache;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040002C6 RID: 710
|
||||
public ReflectionMethodsCache.Raycast3DCallback raycast3D = null;
|
||||
|
||||
// Token: 0x040002C7 RID: 711
|
||||
public ReflectionMethodsCache.RaycastAllCallback raycast3DAll = null;
|
||||
|
||||
// Token: 0x040002C8 RID: 712
|
||||
public ReflectionMethodsCache.Raycast2DCallback raycast2D = null;
|
||||
|
||||
// Token: 0x040002C9 RID: 713
|
||||
public ReflectionMethodsCache.GetRayIntersectionAllCallback getRayIntersectionAll = null;
|
||||
|
||||
// Token: 0x040002CA RID: 714
|
||||
private static ReflectionMethodsCache s_ReflectionMethodsCache = null;
|
||||
|
||||
// Token: 0x020000A4 RID: 164
|
||||
// (Invoke) Token: 0x060005F5 RID: 1525
|
||||
public delegate bool Raycast3DCallback(Ray r, out RaycastHit hit, float f, int i);
|
||||
|
||||
// Token: 0x020000A5 RID: 165
|
||||
// (Invoke) Token: 0x060005F9 RID: 1529
|
||||
public delegate RaycastHit2D Raycast2DCallback(Vector2 p1, Vector2 p2, float f, int i);
|
||||
|
||||
// Token: 0x020000A6 RID: 166
|
||||
// (Invoke) Token: 0x060005FD RID: 1533
|
||||
public delegate RaycastHit[] RaycastAllCallback(Ray r, float f, int i);
|
||||
|
||||
// Token: 0x020000A7 RID: 167
|
||||
// (Invoke) Token: 0x06000601 RID: 1537
|
||||
public delegate RaycastHit2D[] GetRayIntersectionAllCallback(Ray r, float f, int i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,1297 @@
|
||||
using System;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200006E RID: 110
|
||||
[AddComponentMenu("UI/Scroll Rect", 37)]
|
||||
[SelectionBase]
|
||||
[ExecuteInEditMode]
|
||||
[DisallowMultipleComponent]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class ScrollRect : UIBehaviour, IInitializePotentialDragHandler, IBeginDragHandler, IEndDragHandler, IDragHandler, IScrollHandler, ICanvasElement, ILayoutElement, ILayoutGroup, IEventSystemHandler, ILayoutController
|
||||
{
|
||||
// Token: 0x060003BF RID: 959 RVA: 0x00015D2C File Offset: 0x0001412C
|
||||
protected ScrollRect()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000100 RID: 256
|
||||
// (get) Token: 0x060003C0 RID: 960 RVA: 0x00015DBC File Offset: 0x000141BC
|
||||
// (set) Token: 0x060003C1 RID: 961 RVA: 0x00015DD7 File Offset: 0x000141D7
|
||||
public RectTransform content
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Content;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Content = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000101 RID: 257
|
||||
// (get) Token: 0x060003C2 RID: 962 RVA: 0x00015DE4 File Offset: 0x000141E4
|
||||
// (set) Token: 0x060003C3 RID: 963 RVA: 0x00015DFF File Offset: 0x000141FF
|
||||
public bool horizontal
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Horizontal;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Horizontal = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000102 RID: 258
|
||||
// (get) Token: 0x060003C4 RID: 964 RVA: 0x00015E0C File Offset: 0x0001420C
|
||||
// (set) Token: 0x060003C5 RID: 965 RVA: 0x00015E27 File Offset: 0x00014227
|
||||
public bool vertical
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Vertical;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Vertical = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000103 RID: 259
|
||||
// (get) Token: 0x060003C6 RID: 966 RVA: 0x00015E34 File Offset: 0x00014234
|
||||
// (set) Token: 0x060003C7 RID: 967 RVA: 0x00015E4F File Offset: 0x0001424F
|
||||
public ScrollRect.MovementType movementType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MovementType;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_MovementType = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000104 RID: 260
|
||||
// (get) Token: 0x060003C8 RID: 968 RVA: 0x00015E5C File Offset: 0x0001425C
|
||||
// (set) Token: 0x060003C9 RID: 969 RVA: 0x00015E77 File Offset: 0x00014277
|
||||
public float elasticity
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Elasticity;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Elasticity = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000105 RID: 261
|
||||
// (get) Token: 0x060003CA RID: 970 RVA: 0x00015E84 File Offset: 0x00014284
|
||||
// (set) Token: 0x060003CB RID: 971 RVA: 0x00015E9F File Offset: 0x0001429F
|
||||
public bool inertia
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Inertia;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Inertia = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000106 RID: 262
|
||||
// (get) Token: 0x060003CC RID: 972 RVA: 0x00015EAC File Offset: 0x000142AC
|
||||
// (set) Token: 0x060003CD RID: 973 RVA: 0x00015EC7 File Offset: 0x000142C7
|
||||
public float decelerationRate
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_DecelerationRate;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_DecelerationRate = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000107 RID: 263
|
||||
// (get) Token: 0x060003CE RID: 974 RVA: 0x00015ED4 File Offset: 0x000142D4
|
||||
// (set) Token: 0x060003CF RID: 975 RVA: 0x00015EEF File Offset: 0x000142EF
|
||||
public float scrollSensitivity
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_ScrollSensitivity;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_ScrollSensitivity = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000108 RID: 264
|
||||
// (get) Token: 0x060003D0 RID: 976 RVA: 0x00015EFC File Offset: 0x000142FC
|
||||
// (set) Token: 0x060003D1 RID: 977 RVA: 0x00015F17 File Offset: 0x00014317
|
||||
public RectTransform viewport
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Viewport;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Viewport = value;
|
||||
this.SetDirtyCaching();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000109 RID: 265
|
||||
// (get) Token: 0x060003D2 RID: 978 RVA: 0x00015F28 File Offset: 0x00014328
|
||||
// (set) Token: 0x060003D3 RID: 979 RVA: 0x00015F44 File Offset: 0x00014344
|
||||
public Scrollbar horizontalScrollbar
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HorizontalScrollbar;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_HorizontalScrollbar)
|
||||
{
|
||||
this.m_HorizontalScrollbar.onValueChanged.RemoveListener(new UnityAction<float>(this.SetHorizontalNormalizedPosition));
|
||||
}
|
||||
this.m_HorizontalScrollbar = value;
|
||||
if (this.m_HorizontalScrollbar)
|
||||
{
|
||||
this.m_HorizontalScrollbar.onValueChanged.AddListener(new UnityAction<float>(this.SetHorizontalNormalizedPosition));
|
||||
}
|
||||
this.SetDirtyCaching();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010A RID: 266
|
||||
// (get) Token: 0x060003D4 RID: 980 RVA: 0x00015FB8 File Offset: 0x000143B8
|
||||
// (set) Token: 0x060003D5 RID: 981 RVA: 0x00015FD4 File Offset: 0x000143D4
|
||||
public Scrollbar verticalScrollbar
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_VerticalScrollbar;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_VerticalScrollbar)
|
||||
{
|
||||
this.m_VerticalScrollbar.onValueChanged.RemoveListener(new UnityAction<float>(this.SetVerticalNormalizedPosition));
|
||||
}
|
||||
this.m_VerticalScrollbar = value;
|
||||
if (this.m_VerticalScrollbar)
|
||||
{
|
||||
this.m_VerticalScrollbar.onValueChanged.AddListener(new UnityAction<float>(this.SetVerticalNormalizedPosition));
|
||||
}
|
||||
this.SetDirtyCaching();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010B RID: 267
|
||||
// (get) Token: 0x060003D6 RID: 982 RVA: 0x00016048 File Offset: 0x00014448
|
||||
// (set) Token: 0x060003D7 RID: 983 RVA: 0x00016063 File Offset: 0x00014463
|
||||
public ScrollRect.ScrollbarVisibility horizontalScrollbarVisibility
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HorizontalScrollbarVisibility;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_HorizontalScrollbarVisibility = value;
|
||||
this.SetDirtyCaching();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010C RID: 268
|
||||
// (get) Token: 0x060003D8 RID: 984 RVA: 0x00016074 File Offset: 0x00014474
|
||||
// (set) Token: 0x060003D9 RID: 985 RVA: 0x0001608F File Offset: 0x0001448F
|
||||
public ScrollRect.ScrollbarVisibility verticalScrollbarVisibility
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_VerticalScrollbarVisibility;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_VerticalScrollbarVisibility = value;
|
||||
this.SetDirtyCaching();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010D RID: 269
|
||||
// (get) Token: 0x060003DA RID: 986 RVA: 0x000160A0 File Offset: 0x000144A0
|
||||
// (set) Token: 0x060003DB RID: 987 RVA: 0x000160BB File Offset: 0x000144BB
|
||||
public float horizontalScrollbarSpacing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HorizontalScrollbarSpacing;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_HorizontalScrollbarSpacing = value;
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010E RID: 270
|
||||
// (get) Token: 0x060003DC RID: 988 RVA: 0x000160CC File Offset: 0x000144CC
|
||||
// (set) Token: 0x060003DD RID: 989 RVA: 0x000160E7 File Offset: 0x000144E7
|
||||
public float verticalScrollbarSpacing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_VerticalScrollbarSpacing;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_VerticalScrollbarSpacing = value;
|
||||
this.SetDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010F RID: 271
|
||||
// (get) Token: 0x060003DE RID: 990 RVA: 0x000160F8 File Offset: 0x000144F8
|
||||
// (set) Token: 0x060003DF RID: 991 RVA: 0x00016113 File Offset: 0x00014513
|
||||
public ScrollRect.ScrollRectEvent onValueChanged
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnValueChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_OnValueChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000110 RID: 272
|
||||
// (get) Token: 0x060003E0 RID: 992 RVA: 0x00016120 File Offset: 0x00014520
|
||||
protected RectTransform viewRect
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_ViewRect == null)
|
||||
{
|
||||
this.m_ViewRect = this.m_Viewport;
|
||||
}
|
||||
if (this.m_ViewRect == null)
|
||||
{
|
||||
this.m_ViewRect = (RectTransform)base.transform;
|
||||
}
|
||||
return this.m_ViewRect;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000111 RID: 273
|
||||
// (get) Token: 0x060003E1 RID: 993 RVA: 0x0001617C File Offset: 0x0001457C
|
||||
// (set) Token: 0x060003E2 RID: 994 RVA: 0x00016197 File Offset: 0x00014597
|
||||
public Vector2 velocity
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Velocity;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Velocity = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000112 RID: 274
|
||||
// (get) Token: 0x060003E3 RID: 995 RVA: 0x000161A4 File Offset: 0x000145A4
|
||||
private RectTransform rectTransform
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Rect == null)
|
||||
{
|
||||
this.m_Rect = base.GetComponent<RectTransform>();
|
||||
}
|
||||
return this.m_Rect;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003E4 RID: 996 RVA: 0x000161DC File Offset: 0x000145DC
|
||||
public virtual void Rebuild(CanvasUpdate executing)
|
||||
{
|
||||
if (executing == CanvasUpdate.Prelayout)
|
||||
{
|
||||
this.UpdateCachedData();
|
||||
}
|
||||
if (executing == CanvasUpdate.PostLayout)
|
||||
{
|
||||
this.UpdateBounds();
|
||||
this.UpdateScrollbars(Vector2.zero);
|
||||
this.UpdatePrevData();
|
||||
this.m_HasRebuiltLayout = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003E5 RID: 997 RVA: 0x00016214 File Offset: 0x00014614
|
||||
public virtual void LayoutComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003E6 RID: 998 RVA: 0x00016217 File Offset: 0x00014617
|
||||
public virtual void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003E7 RID: 999 RVA: 0x0001621C File Offset: 0x0001461C
|
||||
private void UpdateCachedData()
|
||||
{
|
||||
Transform transform = base.transform;
|
||||
this.m_HorizontalScrollbarRect = ((!(this.m_HorizontalScrollbar == null)) ? (this.m_HorizontalScrollbar.transform as RectTransform) : null);
|
||||
this.m_VerticalScrollbarRect = ((!(this.m_VerticalScrollbar == null)) ? (this.m_VerticalScrollbar.transform as RectTransform) : null);
|
||||
bool flag = this.viewRect.parent == transform;
|
||||
bool flag2 = !this.m_HorizontalScrollbarRect || this.m_HorizontalScrollbarRect.parent == transform;
|
||||
bool flag3 = !this.m_VerticalScrollbarRect || this.m_VerticalScrollbarRect.parent == transform;
|
||||
bool flag4 = flag && flag2 && flag3;
|
||||
this.m_HSliderExpand = flag4 && this.m_HorizontalScrollbarRect && this.horizontalScrollbarVisibility == ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
|
||||
this.m_VSliderExpand = flag4 && this.m_VerticalScrollbarRect && this.verticalScrollbarVisibility == ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
|
||||
this.m_HSliderHeight = ((!(this.m_HorizontalScrollbarRect == null)) ? this.m_HorizontalScrollbarRect.rect.height : 0f);
|
||||
this.m_VSliderWidth = ((!(this.m_VerticalScrollbarRect == null)) ? this.m_VerticalScrollbarRect.rect.width : 0f);
|
||||
}
|
||||
|
||||
// Token: 0x060003E8 RID: 1000 RVA: 0x000163B8 File Offset: 0x000147B8
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
if (this.m_HorizontalScrollbar)
|
||||
{
|
||||
this.m_HorizontalScrollbar.onValueChanged.AddListener(new UnityAction<float>(this.SetHorizontalNormalizedPosition));
|
||||
}
|
||||
if (this.m_VerticalScrollbar)
|
||||
{
|
||||
this.m_VerticalScrollbar.onValueChanged.AddListener(new UnityAction<float>(this.SetVerticalNormalizedPosition));
|
||||
}
|
||||
CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this);
|
||||
}
|
||||
|
||||
// Token: 0x060003E9 RID: 1001 RVA: 0x0001642C File Offset: 0x0001482C
|
||||
protected override void OnDisable()
|
||||
{
|
||||
CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);
|
||||
if (this.m_HorizontalScrollbar)
|
||||
{
|
||||
this.m_HorizontalScrollbar.onValueChanged.RemoveListener(new UnityAction<float>(this.SetHorizontalNormalizedPosition));
|
||||
}
|
||||
if (this.m_VerticalScrollbar)
|
||||
{
|
||||
this.m_VerticalScrollbar.onValueChanged.RemoveListener(new UnityAction<float>(this.SetVerticalNormalizedPosition));
|
||||
}
|
||||
this.m_HasRebuiltLayout = false;
|
||||
this.m_Tracker.Clear();
|
||||
this.m_Velocity = Vector2.zero;
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x060003EA RID: 1002 RVA: 0x000164C8 File Offset: 0x000148C8
|
||||
public override bool IsActive()
|
||||
{
|
||||
return base.IsActive() && this.m_Content != null;
|
||||
}
|
||||
|
||||
// Token: 0x060003EB RID: 1003 RVA: 0x000164F7 File Offset: 0x000148F7
|
||||
private void EnsureLayoutHasRebuilt()
|
||||
{
|
||||
if (!this.m_HasRebuiltLayout && !CanvasUpdateRegistry.IsRebuildingLayout())
|
||||
{
|
||||
Canvas.ForceUpdateCanvases();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003EC RID: 1004 RVA: 0x00016514 File Offset: 0x00014914
|
||||
public virtual void StopMovement()
|
||||
{
|
||||
this.m_Velocity = Vector2.zero;
|
||||
}
|
||||
|
||||
// Token: 0x060003ED RID: 1005 RVA: 0x00016524 File Offset: 0x00014924
|
||||
public virtual void OnScroll(PointerEventData data)
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.EnsureLayoutHasRebuilt();
|
||||
this.UpdateBounds();
|
||||
Vector2 scrollDelta = data.scrollDelta;
|
||||
scrollDelta.y *= -1f;
|
||||
if (this.vertical && !this.horizontal)
|
||||
{
|
||||
if (Mathf.Abs(scrollDelta.x) > Mathf.Abs(scrollDelta.y))
|
||||
{
|
||||
scrollDelta.y = scrollDelta.x;
|
||||
}
|
||||
scrollDelta.x = 0f;
|
||||
}
|
||||
if (this.horizontal && !this.vertical)
|
||||
{
|
||||
if (Mathf.Abs(scrollDelta.y) > Mathf.Abs(scrollDelta.x))
|
||||
{
|
||||
scrollDelta.x = scrollDelta.y;
|
||||
}
|
||||
scrollDelta.y = 0f;
|
||||
}
|
||||
Vector2 vector = this.m_Content.anchoredPosition;
|
||||
vector += scrollDelta * this.m_ScrollSensitivity;
|
||||
if (this.m_MovementType == ScrollRect.MovementType.Clamped)
|
||||
{
|
||||
vector += this.CalculateOffset(vector - this.m_Content.anchoredPosition);
|
||||
}
|
||||
this.SetContentAnchoredPosition(vector);
|
||||
this.UpdateBounds();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003EE RID: 1006 RVA: 0x0001665C File Offset: 0x00014A5C
|
||||
public virtual void OnInitializePotentialDrag(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
this.m_Velocity = Vector2.zero;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003EF RID: 1007 RVA: 0x0001667C File Offset: 0x00014A7C
|
||||
public virtual void OnBeginDrag(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.UpdateBounds();
|
||||
this.m_PointerStartLocalCursor = Vector2.zero;
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(this.viewRect, eventData.position, eventData.pressEventCamera, out this.m_PointerStartLocalCursor);
|
||||
this.m_ContentStartPosition = this.m_Content.anchoredPosition;
|
||||
this.m_Dragging = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003F0 RID: 1008 RVA: 0x000166F1 File Offset: 0x00014AF1
|
||||
public virtual void OnEndDrag(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
this.m_Dragging = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003F1 RID: 1009 RVA: 0x0001670C File Offset: 0x00014B0C
|
||||
public virtual void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
Vector2 vector;
|
||||
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(this.viewRect, eventData.position, eventData.pressEventCamera, out vector))
|
||||
{
|
||||
this.UpdateBounds();
|
||||
Vector2 vector2 = vector - this.m_PointerStartLocalCursor;
|
||||
Vector2 vector3 = this.m_ContentStartPosition + vector2;
|
||||
Vector2 vector4 = this.CalculateOffset(vector3 - this.m_Content.anchoredPosition);
|
||||
vector3 += vector4;
|
||||
if (this.m_MovementType == ScrollRect.MovementType.Elastic)
|
||||
{
|
||||
if (vector4.x != 0f)
|
||||
{
|
||||
vector3.x -= ScrollRect.RubberDelta(vector4.x, this.m_ViewBounds.size.x);
|
||||
}
|
||||
if (vector4.y != 0f)
|
||||
{
|
||||
vector3.y -= ScrollRect.RubberDelta(vector4.y, this.m_ViewBounds.size.y);
|
||||
}
|
||||
}
|
||||
this.SetContentAnchoredPosition(vector3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003F2 RID: 1010 RVA: 0x00016834 File Offset: 0x00014C34
|
||||
protected virtual void SetContentAnchoredPosition(Vector2 position)
|
||||
{
|
||||
if (!this.m_Horizontal)
|
||||
{
|
||||
position.x = this.m_Content.anchoredPosition.x;
|
||||
}
|
||||
if (!this.m_Vertical)
|
||||
{
|
||||
position.y = this.m_Content.anchoredPosition.y;
|
||||
}
|
||||
if (position != this.m_Content.anchoredPosition)
|
||||
{
|
||||
this.m_Content.anchoredPosition = position;
|
||||
this.UpdateBounds();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003F3 RID: 1011 RVA: 0x000168B8 File Offset: 0x00014CB8
|
||||
protected virtual void LateUpdate()
|
||||
{
|
||||
if (this.m_Content)
|
||||
{
|
||||
this.EnsureLayoutHasRebuilt();
|
||||
this.UpdateScrollbarVisibility();
|
||||
this.UpdateBounds();
|
||||
float unscaledDeltaTime = Time.unscaledDeltaTime;
|
||||
Vector2 vector = this.CalculateOffset(Vector2.zero);
|
||||
if (!this.m_Dragging && (vector != Vector2.zero || this.m_Velocity != Vector2.zero))
|
||||
{
|
||||
Vector2 vector2 = this.m_Content.anchoredPosition;
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (this.m_MovementType == ScrollRect.MovementType.Elastic && vector[i] != 0f)
|
||||
{
|
||||
float num = this.m_Velocity[i];
|
||||
vector2[i] = Mathf.SmoothDamp(this.m_Content.anchoredPosition[i], this.m_Content.anchoredPosition[i] + vector[i], ref num, this.m_Elasticity, float.PositiveInfinity, unscaledDeltaTime);
|
||||
if (Mathf.Abs(num) < 1f)
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
this.m_Velocity[i] = num;
|
||||
}
|
||||
else if (this.m_Inertia)
|
||||
{
|
||||
ref Vector2 ptr = ref this.m_Velocity;
|
||||
int num2;
|
||||
this.m_Velocity[num2 = i] = ptr[num2] * Mathf.Pow(this.m_DecelerationRate, unscaledDeltaTime);
|
||||
if (Mathf.Abs(this.m_Velocity[i]) < 1f)
|
||||
{
|
||||
this.m_Velocity[i] = 0f;
|
||||
}
|
||||
ptr = ref vector2;
|
||||
int num3;
|
||||
vector2[num3 = i] = ptr[num3] + this.m_Velocity[i] * unscaledDeltaTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Velocity[i] = 0f;
|
||||
}
|
||||
}
|
||||
if (this.m_Velocity != Vector2.zero)
|
||||
{
|
||||
if (this.m_MovementType == ScrollRect.MovementType.Clamped)
|
||||
{
|
||||
vector = this.CalculateOffset(vector2 - this.m_Content.anchoredPosition);
|
||||
vector2 += vector;
|
||||
}
|
||||
this.SetContentAnchoredPosition(vector2);
|
||||
}
|
||||
}
|
||||
if (this.m_Dragging && this.m_Inertia)
|
||||
{
|
||||
Vector3 vector3 = (this.m_Content.anchoredPosition - this.m_PrevPosition) / unscaledDeltaTime;
|
||||
this.m_Velocity = Vector3.Lerp(this.m_Velocity, vector3, unscaledDeltaTime * 10f);
|
||||
}
|
||||
if (this.m_ViewBounds != this.m_PrevViewBounds || this.m_ContentBounds != this.m_PrevContentBounds || this.m_Content.anchoredPosition != this.m_PrevPosition)
|
||||
{
|
||||
this.UpdateScrollbars(vector);
|
||||
UISystemProfilerApi.AddMarker("ScrollRect.value", this);
|
||||
this.m_OnValueChanged.Invoke(this.normalizedPosition);
|
||||
this.UpdatePrevData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003F4 RID: 1012 RVA: 0x00016BB4 File Offset: 0x00014FB4
|
||||
protected void UpdatePrevData()
|
||||
{
|
||||
if (this.m_Content == null)
|
||||
{
|
||||
this.m_PrevPosition = Vector2.zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_PrevPosition = this.m_Content.anchoredPosition;
|
||||
}
|
||||
this.m_PrevViewBounds = this.m_ViewBounds;
|
||||
this.m_PrevContentBounds = this.m_ContentBounds;
|
||||
}
|
||||
|
||||
// Token: 0x060003F5 RID: 1013 RVA: 0x00016C0C File Offset: 0x0001500C
|
||||
private void UpdateScrollbars(Vector2 offset)
|
||||
{
|
||||
if (this.m_HorizontalScrollbar)
|
||||
{
|
||||
if (this.m_ContentBounds.size.x > 0f)
|
||||
{
|
||||
this.m_HorizontalScrollbar.size = Mathf.Clamp01((this.m_ViewBounds.size.x - Mathf.Abs(offset.x)) / this.m_ContentBounds.size.x);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_HorizontalScrollbar.size = 1f;
|
||||
}
|
||||
this.m_HorizontalScrollbar.value = this.horizontalNormalizedPosition;
|
||||
}
|
||||
if (this.m_VerticalScrollbar)
|
||||
{
|
||||
if (this.m_ContentBounds.size.y > 0f)
|
||||
{
|
||||
this.m_VerticalScrollbar.size = Mathf.Clamp01((this.m_ViewBounds.size.y - Mathf.Abs(offset.y)) / this.m_ContentBounds.size.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_VerticalScrollbar.size = 1f;
|
||||
}
|
||||
this.m_VerticalScrollbar.value = this.verticalNormalizedPosition;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000113 RID: 275
|
||||
// (get) Token: 0x060003F6 RID: 1014 RVA: 0x00016D50 File Offset: 0x00015150
|
||||
// (set) Token: 0x060003F7 RID: 1015 RVA: 0x00016D76 File Offset: 0x00015176
|
||||
public Vector2 normalizedPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Vector2(this.horizontalNormalizedPosition, this.verticalNormalizedPosition);
|
||||
}
|
||||
set
|
||||
{
|
||||
this.SetNormalizedPosition(value.x, 0);
|
||||
this.SetNormalizedPosition(value.y, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000114 RID: 276
|
||||
// (get) Token: 0x060003F8 RID: 1016 RVA: 0x00016D98 File Offset: 0x00015198
|
||||
// (set) Token: 0x060003F9 RID: 1017 RVA: 0x00016E6D File Offset: 0x0001526D
|
||||
public float horizontalNormalizedPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
this.UpdateBounds();
|
||||
float num;
|
||||
if (this.m_ContentBounds.size.x <= this.m_ViewBounds.size.x)
|
||||
{
|
||||
num = (float)((this.m_ViewBounds.min.x <= this.m_ContentBounds.min.x) ? 0 : 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
num = (this.m_ViewBounds.min.x - this.m_ContentBounds.min.x) / (this.m_ContentBounds.size.x - this.m_ViewBounds.size.x);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.SetNormalizedPosition(value, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000115 RID: 277
|
||||
// (get) Token: 0x060003FA RID: 1018 RVA: 0x00016E78 File Offset: 0x00015278
|
||||
// (set) Token: 0x060003FB RID: 1019 RVA: 0x00016F4D File Offset: 0x0001534D
|
||||
public float verticalNormalizedPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
this.UpdateBounds();
|
||||
float num;
|
||||
if (this.m_ContentBounds.size.y <= this.m_ViewBounds.size.y)
|
||||
{
|
||||
num = (float)((this.m_ViewBounds.min.y <= this.m_ContentBounds.min.y) ? 0 : 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
num = (this.m_ViewBounds.min.y - this.m_ContentBounds.min.y) / (this.m_ContentBounds.size.y - this.m_ViewBounds.size.y);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.SetNormalizedPosition(value, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003FC RID: 1020 RVA: 0x00016F58 File Offset: 0x00015358
|
||||
private void SetHorizontalNormalizedPosition(float value)
|
||||
{
|
||||
this.SetNormalizedPosition(value, 0);
|
||||
}
|
||||
|
||||
// Token: 0x060003FD RID: 1021 RVA: 0x00016F63 File Offset: 0x00015363
|
||||
private void SetVerticalNormalizedPosition(float value)
|
||||
{
|
||||
this.SetNormalizedPosition(value, 1);
|
||||
}
|
||||
|
||||
// Token: 0x060003FE RID: 1022 RVA: 0x00016F70 File Offset: 0x00015370
|
||||
protected virtual void SetNormalizedPosition(float value, int axis)
|
||||
{
|
||||
this.EnsureLayoutHasRebuilt();
|
||||
this.UpdateBounds();
|
||||
float num = this.m_ContentBounds.size[axis] - this.m_ViewBounds.size[axis];
|
||||
float num2 = this.m_ViewBounds.min[axis] - value * num;
|
||||
float num3 = this.m_Content.localPosition[axis] + num2 - this.m_ContentBounds.min[axis];
|
||||
Vector3 localPosition = this.m_Content.localPosition;
|
||||
if (Mathf.Abs(localPosition[axis] - num3) > 0.01f)
|
||||
{
|
||||
localPosition[axis] = num3;
|
||||
this.m_Content.localPosition = localPosition;
|
||||
this.m_Velocity[axis] = 0f;
|
||||
this.UpdateBounds();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003FF RID: 1023 RVA: 0x00017054 File Offset: 0x00015454
|
||||
private static float RubberDelta(float overStretching, float viewSize)
|
||||
{
|
||||
return (1f - 1f / (Mathf.Abs(overStretching) * 0.55f / viewSize + 1f)) * viewSize * Mathf.Sign(overStretching);
|
||||
}
|
||||
|
||||
// Token: 0x06000400 RID: 1024 RVA: 0x00017092 File Offset: 0x00015492
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
this.SetDirty();
|
||||
}
|
||||
|
||||
// Token: 0x17000116 RID: 278
|
||||
// (get) Token: 0x06000401 RID: 1025 RVA: 0x0001709C File Offset: 0x0001549C
|
||||
private bool hScrollingNeeded
|
||||
{
|
||||
get
|
||||
{
|
||||
return !Application.isPlaying || this.m_ContentBounds.size.x > this.m_ViewBounds.size.x + 0.01f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000117 RID: 279
|
||||
// (get) Token: 0x06000402 RID: 1026 RVA: 0x000170F0 File Offset: 0x000154F0
|
||||
private bool vScrollingNeeded
|
||||
{
|
||||
get
|
||||
{
|
||||
return !Application.isPlaying || this.m_ContentBounds.size.y > this.m_ViewBounds.size.y + 0.01f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000403 RID: 1027 RVA: 0x00017144 File Offset: 0x00015544
|
||||
public virtual void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000404 RID: 1028 RVA: 0x00017147 File Offset: 0x00015547
|
||||
public virtual void CalculateLayoutInputVertical()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000118 RID: 280
|
||||
// (get) Token: 0x06000405 RID: 1029 RVA: 0x0001714C File Offset: 0x0001554C
|
||||
public virtual float minWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000119 RID: 281
|
||||
// (get) Token: 0x06000406 RID: 1030 RVA: 0x00017168 File Offset: 0x00015568
|
||||
public virtual float preferredWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700011A RID: 282
|
||||
// (get) Token: 0x06000407 RID: 1031 RVA: 0x00017184 File Offset: 0x00015584
|
||||
public virtual float flexibleWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700011B RID: 283
|
||||
// (get) Token: 0x06000408 RID: 1032 RVA: 0x000171A0 File Offset: 0x000155A0
|
||||
public virtual float minHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700011C RID: 284
|
||||
// (get) Token: 0x06000409 RID: 1033 RVA: 0x000171BC File Offset: 0x000155BC
|
||||
public virtual float preferredHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700011D RID: 285
|
||||
// (get) Token: 0x0600040A RID: 1034 RVA: 0x000171D8 File Offset: 0x000155D8
|
||||
public virtual float flexibleHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700011E RID: 286
|
||||
// (get) Token: 0x0600040B RID: 1035 RVA: 0x000171F4 File Offset: 0x000155F4
|
||||
public virtual int layoutPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600040C RID: 1036 RVA: 0x0001720C File Offset: 0x0001560C
|
||||
public virtual void SetLayoutHorizontal()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
if (this.m_HSliderExpand || this.m_VSliderExpand)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.viewRect, DrivenTransformProperties.AnchoredPositionX | DrivenTransformProperties.AnchoredPositionY | DrivenTransformProperties.AnchorMinX | DrivenTransformProperties.AnchorMinY | DrivenTransformProperties.AnchorMaxX | DrivenTransformProperties.AnchorMaxY | DrivenTransformProperties.SizeDeltaX | DrivenTransformProperties.SizeDeltaY);
|
||||
this.viewRect.anchorMin = Vector2.zero;
|
||||
this.viewRect.anchorMax = Vector2.one;
|
||||
this.viewRect.sizeDelta = Vector2.zero;
|
||||
this.viewRect.anchoredPosition = Vector2.zero;
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(this.content);
|
||||
this.m_ViewBounds = new Bounds(this.viewRect.rect.center, this.viewRect.rect.size);
|
||||
this.m_ContentBounds = this.GetBounds();
|
||||
}
|
||||
if (this.m_VSliderExpand && this.vScrollingNeeded)
|
||||
{
|
||||
this.viewRect.sizeDelta = new Vector2(-(this.m_VSliderWidth + this.m_VerticalScrollbarSpacing), this.viewRect.sizeDelta.y);
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(this.content);
|
||||
this.m_ViewBounds = new Bounds(this.viewRect.rect.center, this.viewRect.rect.size);
|
||||
this.m_ContentBounds = this.GetBounds();
|
||||
}
|
||||
if (this.m_HSliderExpand && this.hScrollingNeeded)
|
||||
{
|
||||
this.viewRect.sizeDelta = new Vector2(this.viewRect.sizeDelta.x, -(this.m_HSliderHeight + this.m_HorizontalScrollbarSpacing));
|
||||
this.m_ViewBounds = new Bounds(this.viewRect.rect.center, this.viewRect.rect.size);
|
||||
this.m_ContentBounds = this.GetBounds();
|
||||
}
|
||||
if (this.m_VSliderExpand && this.vScrollingNeeded && this.viewRect.sizeDelta.x == 0f && this.viewRect.sizeDelta.y < 0f)
|
||||
{
|
||||
this.viewRect.sizeDelta = new Vector2(-(this.m_VSliderWidth + this.m_VerticalScrollbarSpacing), this.viewRect.sizeDelta.y);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600040D RID: 1037 RVA: 0x0001749C File Offset: 0x0001589C
|
||||
public virtual void SetLayoutVertical()
|
||||
{
|
||||
this.UpdateScrollbarLayout();
|
||||
this.m_ViewBounds = new Bounds(this.viewRect.rect.center, this.viewRect.rect.size);
|
||||
this.m_ContentBounds = this.GetBounds();
|
||||
}
|
||||
|
||||
// Token: 0x0600040E RID: 1038 RVA: 0x000174F7 File Offset: 0x000158F7
|
||||
private void UpdateScrollbarVisibility()
|
||||
{
|
||||
ScrollRect.UpdateOneScrollbarVisibility(this.vScrollingNeeded, this.m_Vertical, this.m_VerticalScrollbarVisibility, this.m_VerticalScrollbar);
|
||||
ScrollRect.UpdateOneScrollbarVisibility(this.hScrollingNeeded, this.m_Horizontal, this.m_HorizontalScrollbarVisibility, this.m_HorizontalScrollbar);
|
||||
}
|
||||
|
||||
// Token: 0x0600040F RID: 1039 RVA: 0x00017534 File Offset: 0x00015934
|
||||
private static void UpdateOneScrollbarVisibility(bool xScrollingNeeded, bool xAxisEnabled, ScrollRect.ScrollbarVisibility scrollbarVisibility, Scrollbar scrollbar)
|
||||
{
|
||||
if (scrollbar)
|
||||
{
|
||||
if (scrollbarVisibility == ScrollRect.ScrollbarVisibility.Permanent)
|
||||
{
|
||||
if (scrollbar.gameObject.activeSelf != xAxisEnabled)
|
||||
{
|
||||
scrollbar.gameObject.SetActive(xAxisEnabled);
|
||||
}
|
||||
}
|
||||
else if (scrollbar.gameObject.activeSelf != xScrollingNeeded)
|
||||
{
|
||||
scrollbar.gameObject.SetActive(xScrollingNeeded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000410 RID: 1040 RVA: 0x00017598 File Offset: 0x00015998
|
||||
private void UpdateScrollbarLayout()
|
||||
{
|
||||
if (this.m_VSliderExpand && this.m_HorizontalScrollbar)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.m_HorizontalScrollbarRect, DrivenTransformProperties.AnchoredPositionX | DrivenTransformProperties.AnchorMinX | DrivenTransformProperties.AnchorMaxX | DrivenTransformProperties.SizeDeltaX);
|
||||
this.m_HorizontalScrollbarRect.anchorMin = new Vector2(0f, this.m_HorizontalScrollbarRect.anchorMin.y);
|
||||
this.m_HorizontalScrollbarRect.anchorMax = new Vector2(1f, this.m_HorizontalScrollbarRect.anchorMax.y);
|
||||
this.m_HorizontalScrollbarRect.anchoredPosition = new Vector2(0f, this.m_HorizontalScrollbarRect.anchoredPosition.y);
|
||||
if (this.vScrollingNeeded)
|
||||
{
|
||||
this.m_HorizontalScrollbarRect.sizeDelta = new Vector2(-(this.m_VSliderWidth + this.m_VerticalScrollbarSpacing), this.m_HorizontalScrollbarRect.sizeDelta.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_HorizontalScrollbarRect.sizeDelta = new Vector2(0f, this.m_HorizontalScrollbarRect.sizeDelta.y);
|
||||
}
|
||||
}
|
||||
if (this.m_HSliderExpand && this.m_VerticalScrollbar)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.m_VerticalScrollbarRect, DrivenTransformProperties.AnchoredPositionY | DrivenTransformProperties.AnchorMinY | DrivenTransformProperties.AnchorMaxY | DrivenTransformProperties.SizeDeltaY);
|
||||
this.m_VerticalScrollbarRect.anchorMin = new Vector2(this.m_VerticalScrollbarRect.anchorMin.x, 0f);
|
||||
this.m_VerticalScrollbarRect.anchorMax = new Vector2(this.m_VerticalScrollbarRect.anchorMax.x, 1f);
|
||||
this.m_VerticalScrollbarRect.anchoredPosition = new Vector2(this.m_VerticalScrollbarRect.anchoredPosition.x, 0f);
|
||||
if (this.hScrollingNeeded)
|
||||
{
|
||||
this.m_VerticalScrollbarRect.sizeDelta = new Vector2(this.m_VerticalScrollbarRect.sizeDelta.x, -(this.m_HSliderHeight + this.m_HorizontalScrollbarSpacing));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_VerticalScrollbarRect.sizeDelta = new Vector2(this.m_VerticalScrollbarRect.sizeDelta.x, 0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000411 RID: 1041 RVA: 0x000177D8 File Offset: 0x00015BD8
|
||||
protected void UpdateBounds()
|
||||
{
|
||||
this.m_ViewBounds = new Bounds(this.viewRect.rect.center, this.viewRect.rect.size);
|
||||
this.m_ContentBounds = this.GetBounds();
|
||||
if (!(this.m_Content == null))
|
||||
{
|
||||
Vector3 size = this.m_ContentBounds.size;
|
||||
Vector3 vector = this.m_ContentBounds.center;
|
||||
Vector2 pivot = this.m_Content.pivot;
|
||||
ScrollRect.AdjustBounds(ref this.m_ViewBounds, ref pivot, ref size, ref vector);
|
||||
this.m_ContentBounds.size = size;
|
||||
this.m_ContentBounds.center = vector;
|
||||
if (this.movementType == ScrollRect.MovementType.Clamped)
|
||||
{
|
||||
Vector2 zero = Vector2.zero;
|
||||
if (this.m_ViewBounds.max.x > this.m_ContentBounds.max.x)
|
||||
{
|
||||
zero.x = Math.Min(this.m_ViewBounds.min.x - this.m_ContentBounds.min.x, this.m_ViewBounds.max.x - this.m_ContentBounds.max.x);
|
||||
}
|
||||
else if (this.m_ViewBounds.min.x < this.m_ContentBounds.min.x)
|
||||
{
|
||||
zero.x = Math.Max(this.m_ViewBounds.min.x - this.m_ContentBounds.min.x, this.m_ViewBounds.max.x - this.m_ContentBounds.max.x);
|
||||
}
|
||||
if (this.m_ViewBounds.min.y < this.m_ContentBounds.min.y)
|
||||
{
|
||||
zero.y = Math.Max(this.m_ViewBounds.min.y - this.m_ContentBounds.min.y, this.m_ViewBounds.max.y - this.m_ContentBounds.max.y);
|
||||
}
|
||||
else if (this.m_ViewBounds.max.y > this.m_ContentBounds.max.y)
|
||||
{
|
||||
zero.y = Math.Min(this.m_ViewBounds.min.y - this.m_ContentBounds.min.y, this.m_ViewBounds.max.y - this.m_ContentBounds.max.y);
|
||||
}
|
||||
if (zero.sqrMagnitude > 1E-45f)
|
||||
{
|
||||
vector = this.m_Content.anchoredPosition + zero;
|
||||
if (!this.m_Horizontal)
|
||||
{
|
||||
vector.x = this.m_Content.anchoredPosition.x;
|
||||
}
|
||||
if (!this.m_Vertical)
|
||||
{
|
||||
vector.y = this.m_Content.anchoredPosition.y;
|
||||
}
|
||||
ScrollRect.AdjustBounds(ref this.m_ViewBounds, ref pivot, ref size, ref vector);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000412 RID: 1042 RVA: 0x00017B6C File Offset: 0x00015F6C
|
||||
internal static void AdjustBounds(ref Bounds viewBounds, ref Vector2 contentPivot, ref Vector3 contentSize, ref Vector3 contentPos)
|
||||
{
|
||||
Vector3 vector = viewBounds.size - contentSize;
|
||||
if (vector.x > 0f)
|
||||
{
|
||||
contentPos.x -= vector.x * (contentPivot.x - 0.5f);
|
||||
contentSize.x = viewBounds.size.x;
|
||||
}
|
||||
if (vector.y > 0f)
|
||||
{
|
||||
contentPos.y -= vector.y * (contentPivot.y - 0.5f);
|
||||
contentSize.y = viewBounds.size.y;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000413 RID: 1043 RVA: 0x00017C1C File Offset: 0x0001601C
|
||||
private Bounds GetBounds()
|
||||
{
|
||||
Bounds bounds;
|
||||
if (this.m_Content == null)
|
||||
{
|
||||
bounds = default(Bounds);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_Content.GetWorldCorners(this.m_Corners);
|
||||
Matrix4x4 worldToLocalMatrix = this.viewRect.worldToLocalMatrix;
|
||||
bounds = ScrollRect.InternalGetBounds(this.m_Corners, ref worldToLocalMatrix);
|
||||
}
|
||||
return bounds;
|
||||
}
|
||||
|
||||
// Token: 0x06000414 RID: 1044 RVA: 0x00017C7C File Offset: 0x0001607C
|
||||
internal static Bounds InternalGetBounds(Vector3[] corners, ref Matrix4x4 viewWorldToLocalMatrix)
|
||||
{
|
||||
Vector3 vector = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue);
|
||||
Vector3 vector2 = new Vector3(float.MinValue, float.MinValue, float.MinValue);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
Vector3 vector3 = viewWorldToLocalMatrix.MultiplyPoint3x4(corners[i]);
|
||||
vector = Vector3.Min(vector3, vector);
|
||||
vector2 = Vector3.Max(vector3, vector2);
|
||||
}
|
||||
Bounds bounds = new Bounds(vector, Vector3.zero);
|
||||
bounds.Encapsulate(vector2);
|
||||
return bounds;
|
||||
}
|
||||
|
||||
// Token: 0x06000415 RID: 1045 RVA: 0x00017D10 File Offset: 0x00016110
|
||||
private Vector2 CalculateOffset(Vector2 delta)
|
||||
{
|
||||
return ScrollRect.InternalCalculateOffset(ref this.m_ViewBounds, ref this.m_ContentBounds, this.m_Horizontal, this.m_Vertical, this.m_MovementType, ref delta);
|
||||
}
|
||||
|
||||
// Token: 0x06000416 RID: 1046 RVA: 0x00017D4C File Offset: 0x0001614C
|
||||
internal static Vector2 InternalCalculateOffset(ref Bounds viewBounds, ref Bounds contentBounds, bool horizontal, bool vertical, ScrollRect.MovementType movementType, ref Vector2 delta)
|
||||
{
|
||||
Vector2 zero = Vector2.zero;
|
||||
Vector2 vector;
|
||||
if (movementType == ScrollRect.MovementType.Unrestricted)
|
||||
{
|
||||
vector = zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector2 vector2 = contentBounds.min;
|
||||
Vector2 vector3 = contentBounds.max;
|
||||
if (horizontal)
|
||||
{
|
||||
vector2.x += delta.x;
|
||||
vector3.x += delta.x;
|
||||
if (vector2.x > viewBounds.min.x)
|
||||
{
|
||||
zero.x = viewBounds.min.x - vector2.x;
|
||||
}
|
||||
else if (vector3.x < viewBounds.max.x)
|
||||
{
|
||||
zero.x = viewBounds.max.x - vector3.x;
|
||||
}
|
||||
}
|
||||
if (vertical)
|
||||
{
|
||||
vector2.y += delta.y;
|
||||
vector3.y += delta.y;
|
||||
if (vector3.y < viewBounds.max.y)
|
||||
{
|
||||
zero.y = viewBounds.max.y - vector3.y;
|
||||
}
|
||||
else if (vector2.y > viewBounds.min.y)
|
||||
{
|
||||
zero.y = viewBounds.min.y - vector2.y;
|
||||
}
|
||||
}
|
||||
vector = zero;
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x06000417 RID: 1047 RVA: 0x00017EE0 File Offset: 0x000162E0
|
||||
protected void SetDirty()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000418 RID: 1048 RVA: 0x00017EFE File Offset: 0x000162FE
|
||||
protected void SetDirtyCaching()
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this);
|
||||
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000419 RID: 1049 RVA: 0x00017F22 File Offset: 0x00016322
|
||||
Transform ICanvasElement.get_transform()
|
||||
{
|
||||
return base.transform;
|
||||
}
|
||||
|
||||
// Token: 0x040001D9 RID: 473
|
||||
[SerializeField]
|
||||
private RectTransform m_Content;
|
||||
|
||||
// Token: 0x040001DA RID: 474
|
||||
[SerializeField]
|
||||
private bool m_Horizontal = true;
|
||||
|
||||
// Token: 0x040001DB RID: 475
|
||||
[SerializeField]
|
||||
private bool m_Vertical = true;
|
||||
|
||||
// Token: 0x040001DC RID: 476
|
||||
[SerializeField]
|
||||
private ScrollRect.MovementType m_MovementType = ScrollRect.MovementType.Elastic;
|
||||
|
||||
// Token: 0x040001DD RID: 477
|
||||
[SerializeField]
|
||||
private float m_Elasticity = 0.1f;
|
||||
|
||||
// Token: 0x040001DE RID: 478
|
||||
[SerializeField]
|
||||
private bool m_Inertia = true;
|
||||
|
||||
// Token: 0x040001DF RID: 479
|
||||
[SerializeField]
|
||||
private float m_DecelerationRate = 0.135f;
|
||||
|
||||
// Token: 0x040001E0 RID: 480
|
||||
[SerializeField]
|
||||
private float m_ScrollSensitivity = 1f;
|
||||
|
||||
// Token: 0x040001E1 RID: 481
|
||||
[SerializeField]
|
||||
private RectTransform m_Viewport;
|
||||
|
||||
// Token: 0x040001E2 RID: 482
|
||||
[SerializeField]
|
||||
private Scrollbar m_HorizontalScrollbar;
|
||||
|
||||
// Token: 0x040001E3 RID: 483
|
||||
[SerializeField]
|
||||
private Scrollbar m_VerticalScrollbar;
|
||||
|
||||
// Token: 0x040001E4 RID: 484
|
||||
[SerializeField]
|
||||
private ScrollRect.ScrollbarVisibility m_HorizontalScrollbarVisibility;
|
||||
|
||||
// Token: 0x040001E5 RID: 485
|
||||
[SerializeField]
|
||||
private ScrollRect.ScrollbarVisibility m_VerticalScrollbarVisibility;
|
||||
|
||||
// Token: 0x040001E6 RID: 486
|
||||
[SerializeField]
|
||||
private float m_HorizontalScrollbarSpacing;
|
||||
|
||||
// Token: 0x040001E7 RID: 487
|
||||
[SerializeField]
|
||||
private float m_VerticalScrollbarSpacing;
|
||||
|
||||
// Token: 0x040001E8 RID: 488
|
||||
[SerializeField]
|
||||
private ScrollRect.ScrollRectEvent m_OnValueChanged = new ScrollRect.ScrollRectEvent();
|
||||
|
||||
// Token: 0x040001E9 RID: 489
|
||||
private Vector2 m_PointerStartLocalCursor = Vector2.zero;
|
||||
|
||||
// Token: 0x040001EA RID: 490
|
||||
protected Vector2 m_ContentStartPosition = Vector2.zero;
|
||||
|
||||
// Token: 0x040001EB RID: 491
|
||||
private RectTransform m_ViewRect;
|
||||
|
||||
// Token: 0x040001EC RID: 492
|
||||
protected Bounds m_ContentBounds;
|
||||
|
||||
// Token: 0x040001ED RID: 493
|
||||
private Bounds m_ViewBounds;
|
||||
|
||||
// Token: 0x040001EE RID: 494
|
||||
private Vector2 m_Velocity;
|
||||
|
||||
// Token: 0x040001EF RID: 495
|
||||
private bool m_Dragging;
|
||||
|
||||
// Token: 0x040001F0 RID: 496
|
||||
private Vector2 m_PrevPosition = Vector2.zero;
|
||||
|
||||
// Token: 0x040001F1 RID: 497
|
||||
private Bounds m_PrevContentBounds;
|
||||
|
||||
// Token: 0x040001F2 RID: 498
|
||||
private Bounds m_PrevViewBounds;
|
||||
|
||||
// Token: 0x040001F3 RID: 499
|
||||
[NonSerialized]
|
||||
private bool m_HasRebuiltLayout = false;
|
||||
|
||||
// Token: 0x040001F4 RID: 500
|
||||
private bool m_HSliderExpand;
|
||||
|
||||
// Token: 0x040001F5 RID: 501
|
||||
private bool m_VSliderExpand;
|
||||
|
||||
// Token: 0x040001F6 RID: 502
|
||||
private float m_HSliderHeight;
|
||||
|
||||
// Token: 0x040001F7 RID: 503
|
||||
private float m_VSliderWidth;
|
||||
|
||||
// Token: 0x040001F8 RID: 504
|
||||
[NonSerialized]
|
||||
private RectTransform m_Rect;
|
||||
|
||||
// Token: 0x040001F9 RID: 505
|
||||
private RectTransform m_HorizontalScrollbarRect;
|
||||
|
||||
// Token: 0x040001FA RID: 506
|
||||
private RectTransform m_VerticalScrollbarRect;
|
||||
|
||||
// Token: 0x040001FB RID: 507
|
||||
private DrivenRectTransformTracker m_Tracker;
|
||||
|
||||
// Token: 0x040001FC RID: 508
|
||||
private readonly Vector3[] m_Corners = new Vector3[4];
|
||||
|
||||
// Token: 0x0200006F RID: 111
|
||||
public enum MovementType
|
||||
{
|
||||
// Token: 0x040001FE RID: 510
|
||||
Unrestricted,
|
||||
// Token: 0x040001FF RID: 511
|
||||
Elastic,
|
||||
// Token: 0x04000200 RID: 512
|
||||
Clamped
|
||||
}
|
||||
|
||||
// Token: 0x02000070 RID: 112
|
||||
public enum ScrollbarVisibility
|
||||
{
|
||||
// Token: 0x04000202 RID: 514
|
||||
Permanent,
|
||||
// Token: 0x04000203 RID: 515
|
||||
AutoHide,
|
||||
// Token: 0x04000204 RID: 516
|
||||
AutoHideAndExpandViewport
|
||||
}
|
||||
|
||||
// Token: 0x02000071 RID: 113
|
||||
[Serializable]
|
||||
public class ScrollRectEvent : UnityEvent<Vector2>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,596 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200006A RID: 106
|
||||
[AddComponentMenu("UI/Scrollbar", 34)]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class Scrollbar : Selectable, IBeginDragHandler, IDragHandler, IInitializePotentialDragHandler, ICanvasElement, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x06000395 RID: 917 RVA: 0x000150C0 File Offset: 0x000134C0
|
||||
protected Scrollbar()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x170000F7 RID: 247
|
||||
// (get) Token: 0x06000396 RID: 918 RVA: 0x00015100 File Offset: 0x00013500
|
||||
// (set) Token: 0x06000397 RID: 919 RVA: 0x0001511B File Offset: 0x0001351B
|
||||
public RectTransform handleRect
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HandleRect;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<RectTransform>(ref this.m_HandleRect, value))
|
||||
{
|
||||
this.UpdateCachedReferences();
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F8 RID: 248
|
||||
// (get) Token: 0x06000398 RID: 920 RVA: 0x00015140 File Offset: 0x00013540
|
||||
// (set) Token: 0x06000399 RID: 921 RVA: 0x0001515B File Offset: 0x0001355B
|
||||
public Scrollbar.Direction direction
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Direction;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<Scrollbar.Direction>(ref this.m_Direction, value))
|
||||
{
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F9 RID: 249
|
||||
// (get) Token: 0x0600039A RID: 922 RVA: 0x00015178 File Offset: 0x00013578
|
||||
// (set) Token: 0x0600039B RID: 923 RVA: 0x000151BC File Offset: 0x000135BC
|
||||
public float value
|
||||
{
|
||||
get
|
||||
{
|
||||
float num = this.m_Value;
|
||||
if (this.m_NumberOfSteps > 1)
|
||||
{
|
||||
num = Mathf.Round(num * (float)(this.m_NumberOfSteps - 1)) / (float)(this.m_NumberOfSteps - 1);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.Set(value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000FA RID: 250
|
||||
// (get) Token: 0x0600039C RID: 924 RVA: 0x000151C8 File Offset: 0x000135C8
|
||||
// (set) Token: 0x0600039D RID: 925 RVA: 0x000151E3 File Offset: 0x000135E3
|
||||
public float size
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Size;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_Size, Mathf.Clamp01(value)))
|
||||
{
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000FB RID: 251
|
||||
// (get) Token: 0x0600039E RID: 926 RVA: 0x00015204 File Offset: 0x00013604
|
||||
// (set) Token: 0x0600039F RID: 927 RVA: 0x0001521F File Offset: 0x0001361F
|
||||
public int numberOfSteps
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_NumberOfSteps;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<int>(ref this.m_NumberOfSteps, value))
|
||||
{
|
||||
this.Set(this.m_Value);
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000FC RID: 252
|
||||
// (get) Token: 0x060003A0 RID: 928 RVA: 0x00015248 File Offset: 0x00013648
|
||||
// (set) Token: 0x060003A1 RID: 929 RVA: 0x00015263 File Offset: 0x00013663
|
||||
public Scrollbar.ScrollEvent onValueChanged
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnValueChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_OnValueChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000FD RID: 253
|
||||
// (get) Token: 0x060003A2 RID: 930 RVA: 0x00015270 File Offset: 0x00013670
|
||||
private float stepSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return (this.m_NumberOfSteps <= 1) ? 0.1f : (1f / (float)(this.m_NumberOfSteps - 1));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003A3 RID: 931 RVA: 0x000152AA File Offset: 0x000136AA
|
||||
public virtual void Rebuild(CanvasUpdate executing)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003A4 RID: 932 RVA: 0x000152AD File Offset: 0x000136AD
|
||||
public virtual void LayoutComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003A5 RID: 933 RVA: 0x000152B0 File Offset: 0x000136B0
|
||||
public virtual void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003A6 RID: 934 RVA: 0x000152B3 File Offset: 0x000136B3
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.UpdateCachedReferences();
|
||||
this.Set(this.m_Value, false);
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
|
||||
// Token: 0x060003A7 RID: 935 RVA: 0x000152D5 File Offset: 0x000136D5
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x060003A8 RID: 936 RVA: 0x000152EC File Offset: 0x000136EC
|
||||
private void UpdateCachedReferences()
|
||||
{
|
||||
if (this.m_HandleRect && this.m_HandleRect.parent != null)
|
||||
{
|
||||
this.m_ContainerRect = this.m_HandleRect.parent.GetComponent<RectTransform>();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_ContainerRect = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003A9 RID: 937 RVA: 0x00015342 File Offset: 0x00013742
|
||||
private void Set(float input)
|
||||
{
|
||||
this.Set(input, true);
|
||||
}
|
||||
|
||||
// Token: 0x060003AA RID: 938 RVA: 0x00015350 File Offset: 0x00013750
|
||||
private void Set(float input, bool sendCallback)
|
||||
{
|
||||
float value = this.m_Value;
|
||||
this.m_Value = Mathf.Clamp01(input);
|
||||
if (value != this.value)
|
||||
{
|
||||
this.UpdateVisuals();
|
||||
if (sendCallback)
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("Scrollbar.value", this);
|
||||
this.m_OnValueChanged.Invoke(this.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003AB RID: 939 RVA: 0x000153AC File Offset: 0x000137AC
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
base.OnRectTransformDimensionsChange();
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000FE RID: 254
|
||||
// (get) Token: 0x060003AC RID: 940 RVA: 0x000153CC File Offset: 0x000137CC
|
||||
private Scrollbar.Axis axis
|
||||
{
|
||||
get
|
||||
{
|
||||
return (this.m_Direction != Scrollbar.Direction.LeftToRight && this.m_Direction != Scrollbar.Direction.RightToLeft) ? Scrollbar.Axis.Vertical : Scrollbar.Axis.Horizontal;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000FF RID: 255
|
||||
// (get) Token: 0x060003AD RID: 941 RVA: 0x00015400 File Offset: 0x00013800
|
||||
private bool reverseValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Direction == Scrollbar.Direction.RightToLeft || this.m_Direction == Scrollbar.Direction.TopToBottom;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003AE RID: 942 RVA: 0x00015430 File Offset: 0x00013830
|
||||
private void UpdateVisuals()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
if (this.m_ContainerRect != null)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.m_HandleRect, DrivenTransformProperties.Anchors);
|
||||
Vector2 zero = Vector2.zero;
|
||||
Vector2 one = Vector2.one;
|
||||
float num = this.value * (1f - this.size);
|
||||
if (this.reverseValue)
|
||||
{
|
||||
zero[(int)this.axis] = 1f - num - this.size;
|
||||
one[(int)this.axis] = 1f - num;
|
||||
}
|
||||
else
|
||||
{
|
||||
zero[(int)this.axis] = num;
|
||||
one[(int)this.axis] = num + this.size;
|
||||
}
|
||||
this.m_HandleRect.anchorMin = zero;
|
||||
this.m_HandleRect.anchorMax = one;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003AF RID: 943 RVA: 0x00015514 File Offset: 0x00013914
|
||||
private void UpdateDrag(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
if (!(this.m_ContainerRect == null))
|
||||
{
|
||||
Vector2 vector;
|
||||
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(this.m_ContainerRect, eventData.position, eventData.pressEventCamera, out vector))
|
||||
{
|
||||
Vector2 vector2 = vector - this.m_Offset - this.m_ContainerRect.rect.position;
|
||||
Vector2 vector3 = vector2 - (this.m_HandleRect.rect.size - this.m_HandleRect.sizeDelta) * 0.5f;
|
||||
float num = ((this.axis != Scrollbar.Axis.Horizontal) ? this.m_ContainerRect.rect.height : this.m_ContainerRect.rect.width);
|
||||
float num2 = num * (1f - this.size);
|
||||
if (num2 > 0f)
|
||||
{
|
||||
switch (this.m_Direction)
|
||||
{
|
||||
case Scrollbar.Direction.LeftToRight:
|
||||
this.Set(vector3.x / num2);
|
||||
break;
|
||||
case Scrollbar.Direction.RightToLeft:
|
||||
this.Set(1f - vector3.x / num2);
|
||||
break;
|
||||
case Scrollbar.Direction.BottomToTop:
|
||||
this.Set(vector3.y / num2);
|
||||
break;
|
||||
case Scrollbar.Direction.TopToBottom:
|
||||
this.Set(1f - vector3.y / num2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003B0 RID: 944 RVA: 0x000156A8 File Offset: 0x00013AA8
|
||||
private bool MayDrag(PointerEventData eventData)
|
||||
{
|
||||
return this.IsActive() && this.IsInteractable() && eventData.button == PointerEventData.InputButton.Left;
|
||||
}
|
||||
|
||||
// Token: 0x060003B1 RID: 945 RVA: 0x000156E0 File Offset: 0x00013AE0
|
||||
public virtual void OnBeginDrag(PointerEventData eventData)
|
||||
{
|
||||
this.isPointerDownAndNotDragging = false;
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
if (!(this.m_ContainerRect == null))
|
||||
{
|
||||
this.m_Offset = Vector2.zero;
|
||||
if (RectTransformUtility.RectangleContainsScreenPoint(this.m_HandleRect, eventData.position, eventData.enterEventCamera))
|
||||
{
|
||||
Vector2 vector;
|
||||
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(this.m_HandleRect, eventData.position, eventData.pressEventCamera, out vector))
|
||||
{
|
||||
this.m_Offset = vector - this.m_HandleRect.rect.center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003B2 RID: 946 RVA: 0x00015782 File Offset: 0x00013B82
|
||||
public virtual void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
if (this.m_ContainerRect != null)
|
||||
{
|
||||
this.UpdateDrag(eventData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003B3 RID: 947 RVA: 0x000157AE File Offset: 0x00013BAE
|
||||
public override void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
base.OnPointerDown(eventData);
|
||||
this.isPointerDownAndNotDragging = true;
|
||||
this.m_PointerDownRepeat = base.StartCoroutine(this.ClickRepeat(eventData));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003B4 RID: 948 RVA: 0x000157E4 File Offset: 0x00013BE4
|
||||
protected IEnumerator ClickRepeat(PointerEventData eventData)
|
||||
{
|
||||
while (this.isPointerDownAndNotDragging)
|
||||
{
|
||||
if (!RectTransformUtility.RectangleContainsScreenPoint(this.m_HandleRect, eventData.position, eventData.enterEventCamera))
|
||||
{
|
||||
Vector2 vector;
|
||||
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(this.m_HandleRect, eventData.position, eventData.pressEventCamera, out vector))
|
||||
{
|
||||
float num = ((this.axis != Scrollbar.Axis.Horizontal) ? vector.y : vector.x);
|
||||
if (num < 0f)
|
||||
{
|
||||
this.value -= this.size;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.value += this.size;
|
||||
}
|
||||
}
|
||||
}
|
||||
yield return new WaitForEndOfFrame();
|
||||
}
|
||||
base.StopCoroutine(this.m_PointerDownRepeat);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x060003B5 RID: 949 RVA: 0x0001580D File Offset: 0x00013C0D
|
||||
public override void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
base.OnPointerUp(eventData);
|
||||
this.isPointerDownAndNotDragging = false;
|
||||
}
|
||||
|
||||
// Token: 0x060003B6 RID: 950 RVA: 0x00015820 File Offset: 0x00013C20
|
||||
public override void OnMove(AxisEventData eventData)
|
||||
{
|
||||
if (!this.IsActive() || !this.IsInteractable())
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (eventData.moveDir)
|
||||
{
|
||||
case MoveDirection.Left:
|
||||
if (this.axis == Scrollbar.Axis.Horizontal && this.FindSelectableOnLeft() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value - this.stepSize) : (this.value + this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
case MoveDirection.Up:
|
||||
if (this.axis == Scrollbar.Axis.Vertical && this.FindSelectableOnUp() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value + this.stepSize) : (this.value - this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
case MoveDirection.Right:
|
||||
if (this.axis == Scrollbar.Axis.Horizontal && this.FindSelectableOnRight() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value + this.stepSize) : (this.value - this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
case MoveDirection.Down:
|
||||
if (this.axis == Scrollbar.Axis.Vertical && this.FindSelectableOnDown() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value - this.stepSize) : (this.value + this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003B7 RID: 951 RVA: 0x000159EC File Offset: 0x00013DEC
|
||||
public override Selectable FindSelectableOnLeft()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Scrollbar.Axis.Horizontal)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnLeft();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x060003B8 RID: 952 RVA: 0x00015A30 File Offset: 0x00013E30
|
||||
public override Selectable FindSelectableOnRight()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Scrollbar.Axis.Horizontal)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnRight();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x060003B9 RID: 953 RVA: 0x00015A74 File Offset: 0x00013E74
|
||||
public override Selectable FindSelectableOnUp()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Scrollbar.Axis.Vertical)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnUp();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x060003BA RID: 954 RVA: 0x00015AB8 File Offset: 0x00013EB8
|
||||
public override Selectable FindSelectableOnDown()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Scrollbar.Axis.Vertical)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnDown();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x060003BB RID: 955 RVA: 0x00015AFA File Offset: 0x00013EFA
|
||||
public virtual void OnInitializePotentialDrag(PointerEventData eventData)
|
||||
{
|
||||
eventData.useDragThreshold = false;
|
||||
}
|
||||
|
||||
// Token: 0x060003BC RID: 956 RVA: 0x00015B04 File Offset: 0x00013F04
|
||||
public void SetDirection(Scrollbar.Direction direction, bool includeRectLayouts)
|
||||
{
|
||||
Scrollbar.Axis axis = this.axis;
|
||||
bool reverseValue = this.reverseValue;
|
||||
this.direction = direction;
|
||||
if (includeRectLayouts)
|
||||
{
|
||||
if (this.axis != axis)
|
||||
{
|
||||
RectTransformUtility.FlipLayoutAxes(base.transform as RectTransform, true, true);
|
||||
}
|
||||
if (this.reverseValue != reverseValue)
|
||||
{
|
||||
RectTransformUtility.FlipLayoutOnAxis(base.transform as RectTransform, (int)this.axis, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003BD RID: 957 RVA: 0x00015B74 File Offset: 0x00013F74
|
||||
Transform ICanvasElement.get_transform()
|
||||
{
|
||||
return base.transform;
|
||||
}
|
||||
|
||||
// Token: 0x040001C6 RID: 454
|
||||
[SerializeField]
|
||||
private RectTransform m_HandleRect;
|
||||
|
||||
// Token: 0x040001C7 RID: 455
|
||||
[SerializeField]
|
||||
private Scrollbar.Direction m_Direction = Scrollbar.Direction.LeftToRight;
|
||||
|
||||
// Token: 0x040001C8 RID: 456
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
private float m_Value;
|
||||
|
||||
// Token: 0x040001C9 RID: 457
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField]
|
||||
private float m_Size = 0.2f;
|
||||
|
||||
// Token: 0x040001CA RID: 458
|
||||
[Range(0f, 11f)]
|
||||
[SerializeField]
|
||||
private int m_NumberOfSteps = 0;
|
||||
|
||||
// Token: 0x040001CB RID: 459
|
||||
[Space(6f)]
|
||||
[SerializeField]
|
||||
private Scrollbar.ScrollEvent m_OnValueChanged = new Scrollbar.ScrollEvent();
|
||||
|
||||
// Token: 0x040001CC RID: 460
|
||||
private RectTransform m_ContainerRect;
|
||||
|
||||
// Token: 0x040001CD RID: 461
|
||||
private Vector2 m_Offset = Vector2.zero;
|
||||
|
||||
// Token: 0x040001CE RID: 462
|
||||
private DrivenRectTransformTracker m_Tracker;
|
||||
|
||||
// Token: 0x040001CF RID: 463
|
||||
private Coroutine m_PointerDownRepeat;
|
||||
|
||||
// Token: 0x040001D0 RID: 464
|
||||
private bool isPointerDownAndNotDragging = false;
|
||||
|
||||
// Token: 0x0200006B RID: 107
|
||||
public enum Direction
|
||||
{
|
||||
// Token: 0x040001D2 RID: 466
|
||||
LeftToRight,
|
||||
// Token: 0x040001D3 RID: 467
|
||||
RightToLeft,
|
||||
// Token: 0x040001D4 RID: 468
|
||||
BottomToTop,
|
||||
// Token: 0x040001D5 RID: 469
|
||||
TopToBottom
|
||||
}
|
||||
|
||||
// Token: 0x0200006C RID: 108
|
||||
[Serializable]
|
||||
public class ScrollEvent : UnityEvent<float>
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0200006D RID: 109
|
||||
private enum Axis
|
||||
{
|
||||
// Token: 0x040001D7 RID: 471
|
||||
Horizontal,
|
||||
// Token: 0x040001D8 RID: 472
|
||||
Vertical
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,788 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000072 RID: 114
|
||||
[AddComponentMenu("UI/Selectable", 70)]
|
||||
[ExecuteInEditMode]
|
||||
[SelectionBase]
|
||||
[DisallowMultipleComponent]
|
||||
public class Selectable : UIBehaviour, IMoveHandler, IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler, IPointerExitHandler, ISelectHandler, IDeselectHandler, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x0600041B RID: 1051 RVA: 0x00006C9C File Offset: 0x0000509C
|
||||
protected Selectable()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700011F RID: 287
|
||||
// (get) Token: 0x0600041C RID: 1052 RVA: 0x00006CF4 File Offset: 0x000050F4
|
||||
public static List<Selectable> allSelectables
|
||||
{
|
||||
get
|
||||
{
|
||||
return Selectable.s_List;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000120 RID: 288
|
||||
// (get) Token: 0x0600041D RID: 1053 RVA: 0x00006D10 File Offset: 0x00005110
|
||||
// (set) Token: 0x0600041E RID: 1054 RVA: 0x00006D2B File Offset: 0x0000512B
|
||||
public Navigation navigation
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Navigation;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<Navigation>(ref this.m_Navigation, value))
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000121 RID: 289
|
||||
// (get) Token: 0x0600041F RID: 1055 RVA: 0x00006D48 File Offset: 0x00005148
|
||||
// (set) Token: 0x06000420 RID: 1056 RVA: 0x00006D63 File Offset: 0x00005163
|
||||
public Selectable.Transition transition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Transition;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<Selectable.Transition>(ref this.m_Transition, value))
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000122 RID: 290
|
||||
// (get) Token: 0x06000421 RID: 1057 RVA: 0x00006D80 File Offset: 0x00005180
|
||||
// (set) Token: 0x06000422 RID: 1058 RVA: 0x00006D9B File Offset: 0x0000519B
|
||||
public ColorBlock colors
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Colors;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<ColorBlock>(ref this.m_Colors, value))
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000123 RID: 291
|
||||
// (get) Token: 0x06000423 RID: 1059 RVA: 0x00006DB8 File Offset: 0x000051B8
|
||||
// (set) Token: 0x06000424 RID: 1060 RVA: 0x00006DD3 File Offset: 0x000051D3
|
||||
public SpriteState spriteState
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_SpriteState;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<SpriteState>(ref this.m_SpriteState, value))
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000124 RID: 292
|
||||
// (get) Token: 0x06000425 RID: 1061 RVA: 0x00006DF0 File Offset: 0x000051F0
|
||||
// (set) Token: 0x06000426 RID: 1062 RVA: 0x00006E0B File Offset: 0x0000520B
|
||||
public AnimationTriggers animationTriggers
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AnimationTriggers;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<AnimationTriggers>(ref this.m_AnimationTriggers, value))
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000125 RID: 293
|
||||
// (get) Token: 0x06000427 RID: 1063 RVA: 0x00006E28 File Offset: 0x00005228
|
||||
// (set) Token: 0x06000428 RID: 1064 RVA: 0x00006E43 File Offset: 0x00005243
|
||||
public Graphic targetGraphic
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_TargetGraphic;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<Graphic>(ref this.m_TargetGraphic, value))
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000126 RID: 294
|
||||
// (get) Token: 0x06000429 RID: 1065 RVA: 0x00006E60 File Offset: 0x00005260
|
||||
// (set) Token: 0x0600042A RID: 1066 RVA: 0x00006E7C File Offset: 0x0000527C
|
||||
public bool interactable
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Interactable;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<bool>(ref this.m_Interactable, value))
|
||||
{
|
||||
if (!this.m_Interactable && EventSystem.current != null && EventSystem.current.currentSelectedGameObject == base.gameObject)
|
||||
{
|
||||
EventSystem.current.SetSelectedGameObject(null);
|
||||
}
|
||||
if (this.m_Interactable)
|
||||
{
|
||||
this.UpdateSelectionState(null);
|
||||
}
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000127 RID: 295
|
||||
// (get) Token: 0x0600042B RID: 1067 RVA: 0x00006EF8 File Offset: 0x000052F8
|
||||
// (set) Token: 0x0600042C RID: 1068 RVA: 0x00006F12 File Offset: 0x00005312
|
||||
private bool isPointerInside { get; set; }
|
||||
|
||||
// Token: 0x17000128 RID: 296
|
||||
// (get) Token: 0x0600042D RID: 1069 RVA: 0x00006F1C File Offset: 0x0000531C
|
||||
// (set) Token: 0x0600042E RID: 1070 RVA: 0x00006F36 File Offset: 0x00005336
|
||||
private bool isPointerDown { get; set; }
|
||||
|
||||
// Token: 0x17000129 RID: 297
|
||||
// (get) Token: 0x0600042F RID: 1071 RVA: 0x00006F40 File Offset: 0x00005340
|
||||
// (set) Token: 0x06000430 RID: 1072 RVA: 0x00006F5A File Offset: 0x0000535A
|
||||
private bool hasSelection { get; set; }
|
||||
|
||||
// Token: 0x1700012A RID: 298
|
||||
// (get) Token: 0x06000431 RID: 1073 RVA: 0x00006F64 File Offset: 0x00005364
|
||||
// (set) Token: 0x06000432 RID: 1074 RVA: 0x00006F84 File Offset: 0x00005384
|
||||
public Image image
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_TargetGraphic as Image;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_TargetGraphic = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700012B RID: 299
|
||||
// (get) Token: 0x06000433 RID: 1075 RVA: 0x00006F90 File Offset: 0x00005390
|
||||
public Animator animator
|
||||
{
|
||||
get
|
||||
{
|
||||
return base.GetComponent<Animator>();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000434 RID: 1076 RVA: 0x00006FAB File Offset: 0x000053AB
|
||||
protected override void Awake()
|
||||
{
|
||||
if (this.m_TargetGraphic == null)
|
||||
{
|
||||
this.m_TargetGraphic = base.GetComponent<Graphic>();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000435 RID: 1077 RVA: 0x00006FCC File Offset: 0x000053CC
|
||||
protected override void OnCanvasGroupChanged()
|
||||
{
|
||||
bool flag = true;
|
||||
Transform transform = base.transform;
|
||||
while (transform != null)
|
||||
{
|
||||
transform.GetComponents<CanvasGroup>(this.m_CanvasGroupCache);
|
||||
bool flag2 = false;
|
||||
for (int i = 0; i < this.m_CanvasGroupCache.Count; i++)
|
||||
{
|
||||
if (!this.m_CanvasGroupCache[i].interactable)
|
||||
{
|
||||
flag = false;
|
||||
flag2 = true;
|
||||
}
|
||||
if (this.m_CanvasGroupCache[i].ignoreParentGroups)
|
||||
{
|
||||
flag2 = true;
|
||||
}
|
||||
}
|
||||
if (flag2)
|
||||
{
|
||||
break;
|
||||
}
|
||||
transform = transform.parent;
|
||||
}
|
||||
if (flag != this.m_GroupsAllowInteraction)
|
||||
{
|
||||
this.m_GroupsAllowInteraction = flag;
|
||||
this.OnSetProperty();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000436 RID: 1078 RVA: 0x00007084 File Offset: 0x00005484
|
||||
public virtual bool IsInteractable()
|
||||
{
|
||||
return this.m_GroupsAllowInteraction && this.m_Interactable;
|
||||
}
|
||||
|
||||
// Token: 0x06000437 RID: 1079 RVA: 0x000070AD File Offset: 0x000054AD
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
this.OnSetProperty();
|
||||
}
|
||||
|
||||
// Token: 0x06000438 RID: 1080 RVA: 0x000070B8 File Offset: 0x000054B8
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
Selectable.s_List.Add(this);
|
||||
Selectable.SelectionState selectionState = Selectable.SelectionState.Normal;
|
||||
if (this.hasSelection)
|
||||
{
|
||||
selectionState = Selectable.SelectionState.Highlighted;
|
||||
}
|
||||
this.m_CurrentSelectionState = selectionState;
|
||||
this.InternalEvaluateAndTransitionToSelectionState(true);
|
||||
}
|
||||
|
||||
// Token: 0x06000439 RID: 1081 RVA: 0x000070F4 File Offset: 0x000054F4
|
||||
private void OnSetProperty()
|
||||
{
|
||||
this.InternalEvaluateAndTransitionToSelectionState(false);
|
||||
}
|
||||
|
||||
// Token: 0x0600043A RID: 1082 RVA: 0x000070FE File Offset: 0x000054FE
|
||||
protected override void OnDisable()
|
||||
{
|
||||
Selectable.s_List.Remove(this);
|
||||
this.InstantClearState();
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x1700012C RID: 300
|
||||
// (get) Token: 0x0600043B RID: 1083 RVA: 0x0000711C File Offset: 0x0000551C
|
||||
protected Selectable.SelectionState currentSelectionState
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_CurrentSelectionState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600043C RID: 1084 RVA: 0x00007138 File Offset: 0x00005538
|
||||
protected virtual void InstantClearState()
|
||||
{
|
||||
string normalTrigger = this.m_AnimationTriggers.normalTrigger;
|
||||
this.isPointerInside = false;
|
||||
this.isPointerDown = false;
|
||||
this.hasSelection = false;
|
||||
Selectable.Transition transition = this.m_Transition;
|
||||
if (transition != Selectable.Transition.ColorTint)
|
||||
{
|
||||
if (transition != Selectable.Transition.SpriteSwap)
|
||||
{
|
||||
if (transition == Selectable.Transition.Animation)
|
||||
{
|
||||
this.TriggerAnimation(normalTrigger);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DoSpriteSwap(null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.StartColorTween(Color.white, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600043D RID: 1085 RVA: 0x000071B4 File Offset: 0x000055B4
|
||||
protected virtual void DoStateTransition(Selectable.SelectionState state, bool instant)
|
||||
{
|
||||
Color color;
|
||||
Sprite sprite;
|
||||
string text;
|
||||
switch (state)
|
||||
{
|
||||
case Selectable.SelectionState.Normal:
|
||||
color = this.m_Colors.normalColor;
|
||||
sprite = null;
|
||||
text = this.m_AnimationTriggers.normalTrigger;
|
||||
break;
|
||||
case Selectable.SelectionState.Highlighted:
|
||||
color = this.m_Colors.highlightedColor;
|
||||
sprite = this.m_SpriteState.highlightedSprite;
|
||||
text = this.m_AnimationTriggers.highlightedTrigger;
|
||||
break;
|
||||
case Selectable.SelectionState.Pressed:
|
||||
color = this.m_Colors.pressedColor;
|
||||
sprite = this.m_SpriteState.pressedSprite;
|
||||
text = this.m_AnimationTriggers.pressedTrigger;
|
||||
break;
|
||||
case Selectable.SelectionState.Disabled:
|
||||
color = this.m_Colors.disabledColor;
|
||||
sprite = this.m_SpriteState.disabledSprite;
|
||||
text = this.m_AnimationTriggers.disabledTrigger;
|
||||
break;
|
||||
default:
|
||||
color = Color.black;
|
||||
sprite = null;
|
||||
text = string.Empty;
|
||||
break;
|
||||
}
|
||||
if (base.gameObject.activeInHierarchy)
|
||||
{
|
||||
Selectable.Transition transition = this.m_Transition;
|
||||
if (transition != Selectable.Transition.ColorTint)
|
||||
{
|
||||
if (transition != Selectable.Transition.SpriteSwap)
|
||||
{
|
||||
if (transition == Selectable.Transition.Animation)
|
||||
{
|
||||
this.TriggerAnimation(text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DoSpriteSwap(sprite);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.StartColorTween(color * this.m_Colors.colorMultiplier, instant);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600043E RID: 1086 RVA: 0x000072F4 File Offset: 0x000056F4
|
||||
public Selectable FindSelectable(Vector3 dir)
|
||||
{
|
||||
dir = dir.normalized;
|
||||
Vector3 vector = Quaternion.Inverse(base.transform.rotation) * dir;
|
||||
Vector3 vector2 = base.transform.TransformPoint(Selectable.GetPointOnRectEdge(base.transform as RectTransform, vector));
|
||||
float num = float.NegativeInfinity;
|
||||
Selectable selectable = null;
|
||||
for (int i = 0; i < Selectable.s_List.Count; i++)
|
||||
{
|
||||
Selectable selectable2 = Selectable.s_List[i];
|
||||
if (!(selectable2 == this) && !(selectable2 == null))
|
||||
{
|
||||
if (selectable2.IsInteractable() && selectable2.navigation.mode != Navigation.Mode.None)
|
||||
{
|
||||
RectTransform rectTransform = selectable2.transform as RectTransform;
|
||||
Vector3 vector3 = ((!(rectTransform != null)) ? Vector3.zero : rectTransform.rect.center);
|
||||
Vector3 vector4 = selectable2.transform.TransformPoint(vector3) - vector2;
|
||||
float num2 = Vector3.Dot(dir, vector4);
|
||||
if (num2 > 0f)
|
||||
{
|
||||
float num3 = num2 / vector4.sqrMagnitude;
|
||||
if (num3 > num)
|
||||
{
|
||||
num = num3;
|
||||
selectable = selectable2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x0600043F RID: 1087 RVA: 0x00007454 File Offset: 0x00005854
|
||||
private static Vector3 GetPointOnRectEdge(RectTransform rect, Vector2 dir)
|
||||
{
|
||||
Vector3 vector;
|
||||
if (rect == null)
|
||||
{
|
||||
vector = Vector3.zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dir != Vector2.zero)
|
||||
{
|
||||
dir /= Mathf.Max(Mathf.Abs(dir.x), Mathf.Abs(dir.y));
|
||||
}
|
||||
dir = rect.rect.center + Vector2.Scale(rect.rect.size, dir * 0.5f);
|
||||
vector = dir;
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x06000440 RID: 1088 RVA: 0x000074EE File Offset: 0x000058EE
|
||||
private void Navigate(AxisEventData eventData, Selectable sel)
|
||||
{
|
||||
if (sel != null && sel.IsActive())
|
||||
{
|
||||
eventData.selectedObject = sel.gameObject;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000441 RID: 1089 RVA: 0x00007514 File Offset: 0x00005914
|
||||
public virtual Selectable FindSelectableOnLeft()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (this.m_Navigation.mode == Navigation.Mode.Explicit)
|
||||
{
|
||||
selectable = this.m_Navigation.selectOnLeft;
|
||||
}
|
||||
else if ((this.m_Navigation.mode & Navigation.Mode.Horizontal) != Navigation.Mode.None)
|
||||
{
|
||||
selectable = this.FindSelectable(base.transform.rotation * Vector3.left);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000442 RID: 1090 RVA: 0x00007584 File Offset: 0x00005984
|
||||
public virtual Selectable FindSelectableOnRight()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (this.m_Navigation.mode == Navigation.Mode.Explicit)
|
||||
{
|
||||
selectable = this.m_Navigation.selectOnRight;
|
||||
}
|
||||
else if ((this.m_Navigation.mode & Navigation.Mode.Horizontal) != Navigation.Mode.None)
|
||||
{
|
||||
selectable = this.FindSelectable(base.transform.rotation * Vector3.right);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000443 RID: 1091 RVA: 0x000075F4 File Offset: 0x000059F4
|
||||
public virtual Selectable FindSelectableOnUp()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (this.m_Navigation.mode == Navigation.Mode.Explicit)
|
||||
{
|
||||
selectable = this.m_Navigation.selectOnUp;
|
||||
}
|
||||
else if ((this.m_Navigation.mode & Navigation.Mode.Vertical) != Navigation.Mode.None)
|
||||
{
|
||||
selectable = this.FindSelectable(base.transform.rotation * Vector3.up);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000444 RID: 1092 RVA: 0x00007664 File Offset: 0x00005A64
|
||||
public virtual Selectable FindSelectableOnDown()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (this.m_Navigation.mode == Navigation.Mode.Explicit)
|
||||
{
|
||||
selectable = this.m_Navigation.selectOnDown;
|
||||
}
|
||||
else if ((this.m_Navigation.mode & Navigation.Mode.Vertical) != Navigation.Mode.None)
|
||||
{
|
||||
selectable = this.FindSelectable(base.transform.rotation * Vector3.down);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000445 RID: 1093 RVA: 0x000076D4 File Offset: 0x00005AD4
|
||||
public virtual void OnMove(AxisEventData eventData)
|
||||
{
|
||||
switch (eventData.moveDir)
|
||||
{
|
||||
case MoveDirection.Left:
|
||||
this.Navigate(eventData, this.FindSelectableOnLeft());
|
||||
break;
|
||||
case MoveDirection.Up:
|
||||
this.Navigate(eventData, this.FindSelectableOnUp());
|
||||
break;
|
||||
case MoveDirection.Right:
|
||||
this.Navigate(eventData, this.FindSelectableOnRight());
|
||||
break;
|
||||
case MoveDirection.Down:
|
||||
this.Navigate(eventData, this.FindSelectableOnDown());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000446 RID: 1094 RVA: 0x0000774C File Offset: 0x00005B4C
|
||||
private void StartColorTween(Color targetColor, bool instant)
|
||||
{
|
||||
if (!(this.m_TargetGraphic == null))
|
||||
{
|
||||
this.m_TargetGraphic.CrossFadeColor(targetColor, (!instant) ? this.m_Colors.fadeDuration : 0f, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000447 RID: 1095 RVA: 0x00007799 File Offset: 0x00005B99
|
||||
private void DoSpriteSwap(Sprite newSprite)
|
||||
{
|
||||
if (!(this.image == null))
|
||||
{
|
||||
this.image.overrideSprite = newSprite;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000448 RID: 1096 RVA: 0x000077C0 File Offset: 0x00005BC0
|
||||
private void TriggerAnimation(string triggername)
|
||||
{
|
||||
if (this.transition == Selectable.Transition.Animation && !(this.animator == null) && this.animator.isActiveAndEnabled && this.animator.hasBoundPlayables && !string.IsNullOrEmpty(triggername))
|
||||
{
|
||||
this.animator.ResetTrigger(this.m_AnimationTriggers.normalTrigger);
|
||||
this.animator.ResetTrigger(this.m_AnimationTriggers.pressedTrigger);
|
||||
this.animator.ResetTrigger(this.m_AnimationTriggers.highlightedTrigger);
|
||||
this.animator.ResetTrigger(this.m_AnimationTriggers.disabledTrigger);
|
||||
this.animator.SetTrigger(triggername);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000449 RID: 1097 RVA: 0x00007880 File Offset: 0x00005C80
|
||||
protected bool IsHighlighted(BaseEventData eventData)
|
||||
{
|
||||
bool flag;
|
||||
if (!this.IsActive())
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else if (this.IsPressed())
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
bool flag2 = this.hasSelection;
|
||||
if (eventData is PointerEventData)
|
||||
{
|
||||
PointerEventData pointerEventData = eventData as PointerEventData;
|
||||
flag2 |= (this.isPointerDown && !this.isPointerInside && pointerEventData.pointerPress == base.gameObject) || (!this.isPointerDown && this.isPointerInside && pointerEventData.pointerPress == base.gameObject) || (!this.isPointerDown && this.isPointerInside && pointerEventData.pointerPress == null);
|
||||
}
|
||||
else
|
||||
{
|
||||
flag2 |= this.isPointerInside;
|
||||
}
|
||||
flag = flag2;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600044A RID: 1098 RVA: 0x00007968 File Offset: 0x00005D68
|
||||
[Obsolete("Is Pressed no longer requires eventData", false)]
|
||||
protected bool IsPressed(BaseEventData eventData)
|
||||
{
|
||||
return this.IsPressed();
|
||||
}
|
||||
|
||||
// Token: 0x0600044B RID: 1099 RVA: 0x00007984 File Offset: 0x00005D84
|
||||
protected bool IsPressed()
|
||||
{
|
||||
return this.IsActive() && this.isPointerInside && this.isPointerDown;
|
||||
}
|
||||
|
||||
// Token: 0x0600044C RID: 1100 RVA: 0x000079BF File Offset: 0x00005DBF
|
||||
protected void UpdateSelectionState(BaseEventData eventData)
|
||||
{
|
||||
if (this.IsPressed())
|
||||
{
|
||||
this.m_CurrentSelectionState = Selectable.SelectionState.Pressed;
|
||||
}
|
||||
else if (this.IsHighlighted(eventData))
|
||||
{
|
||||
this.m_CurrentSelectionState = Selectable.SelectionState.Highlighted;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_CurrentSelectionState = Selectable.SelectionState.Normal;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600044D RID: 1101 RVA: 0x000079FA File Offset: 0x00005DFA
|
||||
private void EvaluateAndTransitionToSelectionState(BaseEventData eventData)
|
||||
{
|
||||
if (this.IsActive() && this.IsInteractable())
|
||||
{
|
||||
this.UpdateSelectionState(eventData);
|
||||
this.InternalEvaluateAndTransitionToSelectionState(false);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600044E RID: 1102 RVA: 0x00007A28 File Offset: 0x00005E28
|
||||
private void InternalEvaluateAndTransitionToSelectionState(bool instant)
|
||||
{
|
||||
Selectable.SelectionState selectionState = this.m_CurrentSelectionState;
|
||||
if (this.IsActive() && !this.IsInteractable())
|
||||
{
|
||||
selectionState = Selectable.SelectionState.Disabled;
|
||||
}
|
||||
this.DoStateTransition(selectionState, instant);
|
||||
}
|
||||
|
||||
// Token: 0x0600044F RID: 1103 RVA: 0x00007A60 File Offset: 0x00005E60
|
||||
public virtual void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
if (this.IsInteractable() && this.navigation.mode != Navigation.Mode.None && EventSystem.current != null)
|
||||
{
|
||||
EventSystem.current.SetSelectedGameObject(base.gameObject, eventData);
|
||||
}
|
||||
this.isPointerDown = true;
|
||||
this.EvaluateAndTransitionToSelectionState(eventData);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000450 RID: 1104 RVA: 0x00007ACB File Offset: 0x00005ECB
|
||||
public virtual void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
this.isPointerDown = false;
|
||||
this.EvaluateAndTransitionToSelectionState(eventData);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000451 RID: 1105 RVA: 0x00007AEC File Offset: 0x00005EEC
|
||||
public virtual void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
this.isPointerInside = true;
|
||||
this.EvaluateAndTransitionToSelectionState(eventData);
|
||||
}
|
||||
|
||||
// Token: 0x06000452 RID: 1106 RVA: 0x00007AFD File Offset: 0x00005EFD
|
||||
public virtual void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
this.isPointerInside = false;
|
||||
this.EvaluateAndTransitionToSelectionState(eventData);
|
||||
}
|
||||
|
||||
// Token: 0x06000453 RID: 1107 RVA: 0x00007B0E File Offset: 0x00005F0E
|
||||
public virtual void OnSelect(BaseEventData eventData)
|
||||
{
|
||||
this.hasSelection = true;
|
||||
this.EvaluateAndTransitionToSelectionState(eventData);
|
||||
}
|
||||
|
||||
// Token: 0x06000454 RID: 1108 RVA: 0x00007B1F File Offset: 0x00005F1F
|
||||
public virtual void OnDeselect(BaseEventData eventData)
|
||||
{
|
||||
this.hasSelection = false;
|
||||
this.EvaluateAndTransitionToSelectionState(eventData);
|
||||
}
|
||||
|
||||
// Token: 0x06000455 RID: 1109 RVA: 0x00007B30 File Offset: 0x00005F30
|
||||
public virtual void Select()
|
||||
{
|
||||
if (!(EventSystem.current == null) && !EventSystem.current.alreadySelecting)
|
||||
{
|
||||
EventSystem.current.SetSelectedGameObject(base.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000205 RID: 517
|
||||
private static List<Selectable> s_List = new List<Selectable>();
|
||||
|
||||
// Token: 0x04000206 RID: 518
|
||||
[FormerlySerializedAs("navigation")]
|
||||
[SerializeField]
|
||||
private Navigation m_Navigation = Navigation.defaultNavigation;
|
||||
|
||||
// Token: 0x04000207 RID: 519
|
||||
[FormerlySerializedAs("transition")]
|
||||
[SerializeField]
|
||||
private Selectable.Transition m_Transition = Selectable.Transition.ColorTint;
|
||||
|
||||
// Token: 0x04000208 RID: 520
|
||||
[FormerlySerializedAs("colors")]
|
||||
[SerializeField]
|
||||
private ColorBlock m_Colors = ColorBlock.defaultColorBlock;
|
||||
|
||||
// Token: 0x04000209 RID: 521
|
||||
[FormerlySerializedAs("spriteState")]
|
||||
[SerializeField]
|
||||
private SpriteState m_SpriteState;
|
||||
|
||||
// Token: 0x0400020A RID: 522
|
||||
[FormerlySerializedAs("animationTriggers")]
|
||||
[SerializeField]
|
||||
private AnimationTriggers m_AnimationTriggers = new AnimationTriggers();
|
||||
|
||||
// Token: 0x0400020B RID: 523
|
||||
[Tooltip("Can the Selectable be interacted with?")]
|
||||
[SerializeField]
|
||||
private bool m_Interactable = true;
|
||||
|
||||
// Token: 0x0400020C RID: 524
|
||||
[FormerlySerializedAs("highlightGraphic")]
|
||||
[FormerlySerializedAs("m_HighlightGraphic")]
|
||||
[SerializeField]
|
||||
private Graphic m_TargetGraphic;
|
||||
|
||||
// Token: 0x0400020D RID: 525
|
||||
private bool m_GroupsAllowInteraction = true;
|
||||
|
||||
// Token: 0x0400020E RID: 526
|
||||
private Selectable.SelectionState m_CurrentSelectionState;
|
||||
|
||||
// Token: 0x04000212 RID: 530
|
||||
private readonly List<CanvasGroup> m_CanvasGroupCache = new List<CanvasGroup>();
|
||||
|
||||
// Token: 0x02000073 RID: 115
|
||||
public enum Transition
|
||||
{
|
||||
// Token: 0x04000214 RID: 532
|
||||
None,
|
||||
// Token: 0x04000215 RID: 533
|
||||
ColorTint,
|
||||
// Token: 0x04000216 RID: 534
|
||||
SpriteSwap,
|
||||
// Token: 0x04000217 RID: 535
|
||||
Animation
|
||||
}
|
||||
|
||||
// Token: 0x02000074 RID: 116
|
||||
protected enum SelectionState
|
||||
{
|
||||
// Token: 0x04000219 RID: 537
|
||||
Normal,
|
||||
// Token: 0x0400021A RID: 538
|
||||
Highlighted,
|
||||
// Token: 0x0400021B RID: 539
|
||||
Pressed,
|
||||
// Token: 0x0400021C RID: 540
|
||||
Disabled
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000075 RID: 117
|
||||
internal static class SetPropertyUtility
|
||||
{
|
||||
// Token: 0x06000457 RID: 1111 RVA: 0x00017F34 File Offset: 0x00016334
|
||||
public static bool SetColor(ref Color currentValue, Color newValue)
|
||||
{
|
||||
bool flag;
|
||||
if (currentValue.r == newValue.r && currentValue.g == newValue.g && currentValue.b == newValue.b && currentValue.a == newValue.a)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentValue = newValue;
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000458 RID: 1112 RVA: 0x00017FA0 File Offset: 0x000163A0
|
||||
public static bool SetStruct<T>(ref T currentValue, T newValue) where T : struct
|
||||
{
|
||||
bool flag;
|
||||
if (EqualityComparer<T>.Default.Equals(currentValue, newValue))
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentValue = newValue;
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000459 RID: 1113 RVA: 0x00017FDC File Offset: 0x000163DC
|
||||
public static bool SetClass<T>(ref T currentValue, T newValue) where T : class
|
||||
{
|
||||
bool flag;
|
||||
if ((currentValue == null && newValue == null) || (currentValue != null && currentValue.Equals(newValue)))
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentValue = newValue;
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000AF RID: 175
|
||||
[AddComponentMenu("UI/Effects/Shadow", 14)]
|
||||
public class Shadow : BaseMeshEffect
|
||||
{
|
||||
// Token: 0x06000626 RID: 1574 RVA: 0x0001E664 File Offset: 0x0001CA64
|
||||
protected Shadow()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700019C RID: 412
|
||||
// (get) Token: 0x06000627 RID: 1575 RVA: 0x0001E6B4 File Offset: 0x0001CAB4
|
||||
// (set) Token: 0x06000628 RID: 1576 RVA: 0x0001E6CF File Offset: 0x0001CACF
|
||||
public Color effectColor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_EffectColor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_EffectColor = value;
|
||||
if (base.graphic != null)
|
||||
{
|
||||
base.graphic.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700019D RID: 413
|
||||
// (get) Token: 0x06000629 RID: 1577 RVA: 0x0001E6F8 File Offset: 0x0001CAF8
|
||||
// (set) Token: 0x0600062A RID: 1578 RVA: 0x0001E714 File Offset: 0x0001CB14
|
||||
public Vector2 effectDistance
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_EffectDistance;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value.x > 600f)
|
||||
{
|
||||
value.x = 600f;
|
||||
}
|
||||
if (value.x < -600f)
|
||||
{
|
||||
value.x = -600f;
|
||||
}
|
||||
if (value.y > 600f)
|
||||
{
|
||||
value.y = 600f;
|
||||
}
|
||||
if (value.y < -600f)
|
||||
{
|
||||
value.y = -600f;
|
||||
}
|
||||
if (!(this.m_EffectDistance == value))
|
||||
{
|
||||
this.m_EffectDistance = value;
|
||||
if (base.graphic != null)
|
||||
{
|
||||
base.graphic.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700019E RID: 414
|
||||
// (get) Token: 0x0600062B RID: 1579 RVA: 0x0001E7D0 File Offset: 0x0001CBD0
|
||||
// (set) Token: 0x0600062C RID: 1580 RVA: 0x0001E7EB File Offset: 0x0001CBEB
|
||||
public bool useGraphicAlpha
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_UseGraphicAlpha;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_UseGraphicAlpha = value;
|
||||
if (base.graphic != null)
|
||||
{
|
||||
base.graphic.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600062D RID: 1581 RVA: 0x0001E814 File Offset: 0x0001CC14
|
||||
protected void ApplyShadowZeroAlloc(List<UIVertex> verts, Color32 color, int start, int end, float x, float y)
|
||||
{
|
||||
int num = verts.Count + end - start;
|
||||
if (verts.Capacity < num)
|
||||
{
|
||||
verts.Capacity = num;
|
||||
}
|
||||
for (int i = start; i < end; i++)
|
||||
{
|
||||
UIVertex uivertex = verts[i];
|
||||
verts.Add(uivertex);
|
||||
Vector3 position = uivertex.position;
|
||||
position.x += x;
|
||||
position.y += y;
|
||||
uivertex.position = position;
|
||||
Color32 color2 = color;
|
||||
if (this.m_UseGraphicAlpha)
|
||||
{
|
||||
color2.a = color2.a * verts[i].color.a / byte.MaxValue;
|
||||
}
|
||||
uivertex.color = color2;
|
||||
verts[i] = uivertex;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600062E RID: 1582 RVA: 0x0001E8DF File Offset: 0x0001CCDF
|
||||
protected void ApplyShadow(List<UIVertex> verts, Color32 color, int start, int end, float x, float y)
|
||||
{
|
||||
this.ApplyShadowZeroAlloc(verts, color, start, end, x, y);
|
||||
}
|
||||
|
||||
// Token: 0x0600062F RID: 1583 RVA: 0x0001E8F4 File Offset: 0x0001CCF4
|
||||
public override void ModifyMesh(VertexHelper vh)
|
||||
{
|
||||
if (this.IsActive())
|
||||
{
|
||||
List<UIVertex> list = ListPool<UIVertex>.Get();
|
||||
vh.GetUIVertexStream(list);
|
||||
this.ApplyShadow(list, this.effectColor, 0, list.Count, this.effectDistance.x, this.effectDistance.y);
|
||||
vh.Clear();
|
||||
vh.AddUIVertexTriangleStream(list);
|
||||
ListPool<UIVertex>.Release(list);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040002D7 RID: 727
|
||||
[SerializeField]
|
||||
private Color m_EffectColor = new Color(0f, 0f, 0f, 0.5f);
|
||||
|
||||
// Token: 0x040002D8 RID: 728
|
||||
[SerializeField]
|
||||
private Vector2 m_EffectDistance = new Vector2(1f, -1f);
|
||||
|
||||
// Token: 0x040002D9 RID: 729
|
||||
[SerializeField]
|
||||
private bool m_UseGraphicAlpha = true;
|
||||
|
||||
// Token: 0x040002DA RID: 730
|
||||
private const float kMaxEffectDistance = 600f;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,676 @@
|
||||
using System;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000076 RID: 118
|
||||
[AddComponentMenu("UI/Slider", 33)]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class Slider : Selectable, IDragHandler, IInitializePotentialDragHandler, ICanvasElement, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x0600045A RID: 1114 RVA: 0x00018044 File Offset: 0x00016444
|
||||
protected Slider()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700012D RID: 301
|
||||
// (get) Token: 0x0600045B RID: 1115 RVA: 0x00018094 File Offset: 0x00016494
|
||||
// (set) Token: 0x0600045C RID: 1116 RVA: 0x000180AF File Offset: 0x000164AF
|
||||
public RectTransform fillRect
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FillRect;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<RectTransform>(ref this.m_FillRect, value))
|
||||
{
|
||||
this.UpdateCachedReferences();
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700012E RID: 302
|
||||
// (get) Token: 0x0600045D RID: 1117 RVA: 0x000180D4 File Offset: 0x000164D4
|
||||
// (set) Token: 0x0600045E RID: 1118 RVA: 0x000180EF File Offset: 0x000164EF
|
||||
public RectTransform handleRect
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HandleRect;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetClass<RectTransform>(ref this.m_HandleRect, value))
|
||||
{
|
||||
this.UpdateCachedReferences();
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700012F RID: 303
|
||||
// (get) Token: 0x0600045F RID: 1119 RVA: 0x00018114 File Offset: 0x00016514
|
||||
// (set) Token: 0x06000460 RID: 1120 RVA: 0x0001812F File Offset: 0x0001652F
|
||||
public Slider.Direction direction
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Direction;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<Slider.Direction>(ref this.m_Direction, value))
|
||||
{
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000130 RID: 304
|
||||
// (get) Token: 0x06000461 RID: 1121 RVA: 0x0001814C File Offset: 0x0001654C
|
||||
// (set) Token: 0x06000462 RID: 1122 RVA: 0x00018167 File Offset: 0x00016567
|
||||
public float minValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MinValue;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_MinValue, value))
|
||||
{
|
||||
this.Set(this.m_Value);
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000131 RID: 305
|
||||
// (get) Token: 0x06000463 RID: 1123 RVA: 0x00018190 File Offset: 0x00016590
|
||||
// (set) Token: 0x06000464 RID: 1124 RVA: 0x000181AB File Offset: 0x000165AB
|
||||
public float maxValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_MaxValue;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<float>(ref this.m_MaxValue, value))
|
||||
{
|
||||
this.Set(this.m_Value);
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000132 RID: 306
|
||||
// (get) Token: 0x06000465 RID: 1125 RVA: 0x000181D4 File Offset: 0x000165D4
|
||||
// (set) Token: 0x06000466 RID: 1126 RVA: 0x000181EF File Offset: 0x000165EF
|
||||
public bool wholeNumbers
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_WholeNumbers;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (SetPropertyUtility.SetStruct<bool>(ref this.m_WholeNumbers, value))
|
||||
{
|
||||
this.Set(this.m_Value);
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000133 RID: 307
|
||||
// (get) Token: 0x06000467 RID: 1127 RVA: 0x00018218 File Offset: 0x00016618
|
||||
// (set) Token: 0x06000468 RID: 1128 RVA: 0x0001824F File Offset: 0x0001664F
|
||||
public virtual float value
|
||||
{
|
||||
get
|
||||
{
|
||||
float num;
|
||||
if (this.wholeNumbers)
|
||||
{
|
||||
num = Mathf.Round(this.m_Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
num = this.m_Value;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.Set(value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000134 RID: 308
|
||||
// (get) Token: 0x06000469 RID: 1129 RVA: 0x0001825C File Offset: 0x0001665C
|
||||
// (set) Token: 0x0600046A RID: 1130 RVA: 0x000182A9 File Offset: 0x000166A9
|
||||
public float normalizedValue
|
||||
{
|
||||
get
|
||||
{
|
||||
float num;
|
||||
if (Mathf.Approximately(this.minValue, this.maxValue))
|
||||
{
|
||||
num = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = Mathf.InverseLerp(this.minValue, this.maxValue, this.value);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.value = Mathf.Lerp(this.minValue, this.maxValue, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000135 RID: 309
|
||||
// (get) Token: 0x0600046B RID: 1131 RVA: 0x000182C4 File Offset: 0x000166C4
|
||||
// (set) Token: 0x0600046C RID: 1132 RVA: 0x000182DF File Offset: 0x000166DF
|
||||
public Slider.SliderEvent onValueChanged
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_OnValueChanged;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_OnValueChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000136 RID: 310
|
||||
// (get) Token: 0x0600046D RID: 1133 RVA: 0x000182EC File Offset: 0x000166EC
|
||||
private float stepSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return (!this.wholeNumbers) ? ((this.maxValue - this.minValue) * 0.1f) : 1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600046E RID: 1134 RVA: 0x00018329 File Offset: 0x00016729
|
||||
public virtual void Rebuild(CanvasUpdate executing)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600046F RID: 1135 RVA: 0x0001832C File Offset: 0x0001672C
|
||||
public virtual void LayoutComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000470 RID: 1136 RVA: 0x0001832F File Offset: 0x0001672F
|
||||
public virtual void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000471 RID: 1137 RVA: 0x00018332 File Offset: 0x00016732
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.UpdateCachedReferences();
|
||||
this.Set(this.m_Value, false);
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
|
||||
// Token: 0x06000472 RID: 1138 RVA: 0x00018354 File Offset: 0x00016754
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x06000473 RID: 1139 RVA: 0x00018368 File Offset: 0x00016768
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
this.m_Value = this.ClampValue(this.m_Value);
|
||||
float num = this.normalizedValue;
|
||||
if (this.m_FillContainerRect != null)
|
||||
{
|
||||
if (this.m_FillImage != null && this.m_FillImage.type == Image.Type.Filled)
|
||||
{
|
||||
num = this.m_FillImage.fillAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = ((!this.reverseValue) ? this.m_FillRect.anchorMax[(int)this.axis] : (1f - this.m_FillRect.anchorMin[(int)this.axis]));
|
||||
}
|
||||
}
|
||||
else if (this.m_HandleContainerRect != null)
|
||||
{
|
||||
num = ((!this.reverseValue) ? this.m_HandleRect.anchorMin[(int)this.axis] : (1f - this.m_HandleRect.anchorMin[(int)this.axis]));
|
||||
}
|
||||
this.UpdateVisuals();
|
||||
if (num != this.normalizedValue)
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("Slider.value", this);
|
||||
this.onValueChanged.Invoke(this.m_Value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000474 RID: 1140 RVA: 0x000184B0 File Offset: 0x000168B0
|
||||
private void UpdateCachedReferences()
|
||||
{
|
||||
if (this.m_FillRect)
|
||||
{
|
||||
this.m_FillTransform = this.m_FillRect.transform;
|
||||
this.m_FillImage = this.m_FillRect.GetComponent<Image>();
|
||||
if (this.m_FillTransform.parent != null)
|
||||
{
|
||||
this.m_FillContainerRect = this.m_FillTransform.parent.GetComponent<RectTransform>();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_FillContainerRect = null;
|
||||
this.m_FillImage = null;
|
||||
}
|
||||
if (this.m_HandleRect)
|
||||
{
|
||||
this.m_HandleTransform = this.m_HandleRect.transform;
|
||||
if (this.m_HandleTransform.parent != null)
|
||||
{
|
||||
this.m_HandleContainerRect = this.m_HandleTransform.parent.GetComponent<RectTransform>();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_HandleContainerRect = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000475 RID: 1141 RVA: 0x00018590 File Offset: 0x00016990
|
||||
private float ClampValue(float input)
|
||||
{
|
||||
float num = Mathf.Clamp(input, this.minValue, this.maxValue);
|
||||
if (this.wholeNumbers)
|
||||
{
|
||||
num = Mathf.Round(num);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000476 RID: 1142 RVA: 0x000185CB File Offset: 0x000169CB
|
||||
private void Set(float input)
|
||||
{
|
||||
this.Set(input, true);
|
||||
}
|
||||
|
||||
// Token: 0x06000477 RID: 1143 RVA: 0x000185D8 File Offset: 0x000169D8
|
||||
protected virtual void Set(float input, bool sendCallback)
|
||||
{
|
||||
float num = this.ClampValue(input);
|
||||
if (this.m_Value != num)
|
||||
{
|
||||
this.m_Value = num;
|
||||
this.UpdateVisuals();
|
||||
if (sendCallback)
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("Slider.value", this);
|
||||
this.m_OnValueChanged.Invoke(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000478 RID: 1144 RVA: 0x0001862B File Offset: 0x00016A2B
|
||||
protected override void OnRectTransformDimensionsChange()
|
||||
{
|
||||
base.OnRectTransformDimensionsChange();
|
||||
if (this.IsActive())
|
||||
{
|
||||
this.UpdateVisuals();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000137 RID: 311
|
||||
// (get) Token: 0x06000479 RID: 1145 RVA: 0x0001864C File Offset: 0x00016A4C
|
||||
private Slider.Axis axis
|
||||
{
|
||||
get
|
||||
{
|
||||
return (this.m_Direction != Slider.Direction.LeftToRight && this.m_Direction != Slider.Direction.RightToLeft) ? Slider.Axis.Vertical : Slider.Axis.Horizontal;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000138 RID: 312
|
||||
// (get) Token: 0x0600047A RID: 1146 RVA: 0x00018680 File Offset: 0x00016A80
|
||||
private bool reverseValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Direction == Slider.Direction.RightToLeft || this.m_Direction == Slider.Direction.TopToBottom;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600047B RID: 1147 RVA: 0x000186B0 File Offset: 0x00016AB0
|
||||
private void UpdateVisuals()
|
||||
{
|
||||
this.m_Tracker.Clear();
|
||||
if (this.m_FillContainerRect != null)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.m_FillRect, DrivenTransformProperties.Anchors);
|
||||
Vector2 zero = Vector2.zero;
|
||||
Vector2 one = Vector2.one;
|
||||
if (this.m_FillImage != null && this.m_FillImage.type == Image.Type.Filled)
|
||||
{
|
||||
this.m_FillImage.fillAmount = this.normalizedValue;
|
||||
}
|
||||
else if (this.reverseValue)
|
||||
{
|
||||
zero[(int)this.axis] = 1f - this.normalizedValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
one[(int)this.axis] = this.normalizedValue;
|
||||
}
|
||||
this.m_FillRect.anchorMin = zero;
|
||||
this.m_FillRect.anchorMax = one;
|
||||
}
|
||||
if (this.m_HandleContainerRect != null)
|
||||
{
|
||||
this.m_Tracker.Add(this, this.m_HandleRect, DrivenTransformProperties.Anchors);
|
||||
Vector2 zero2 = Vector2.zero;
|
||||
Vector2 one2 = Vector2.one;
|
||||
int axis = (int)this.axis;
|
||||
float num = ((!this.reverseValue) ? this.normalizedValue : (1f - this.normalizedValue));
|
||||
one2[(int)this.axis] = num;
|
||||
zero2[axis] = num;
|
||||
this.m_HandleRect.anchorMin = zero2;
|
||||
this.m_HandleRect.anchorMax = one2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600047C RID: 1148 RVA: 0x00018820 File Offset: 0x00016C20
|
||||
private void UpdateDrag(PointerEventData eventData, Camera cam)
|
||||
{
|
||||
RectTransform rectTransform = this.m_HandleContainerRect ?? this.m_FillContainerRect;
|
||||
if (rectTransform != null && rectTransform.rect.size[(int)this.axis] > 0f)
|
||||
{
|
||||
Vector2 vector;
|
||||
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, eventData.position, cam, out vector))
|
||||
{
|
||||
vector -= rectTransform.rect.position;
|
||||
float num = Mathf.Clamp01((vector - this.m_Offset)[(int)this.axis] / rectTransform.rect.size[(int)this.axis]);
|
||||
this.normalizedValue = ((!this.reverseValue) ? num : (1f - num));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600047D RID: 1149 RVA: 0x00018908 File Offset: 0x00016D08
|
||||
private bool MayDrag(PointerEventData eventData)
|
||||
{
|
||||
return this.IsActive() && this.IsInteractable() && eventData.button == PointerEventData.InputButton.Left;
|
||||
}
|
||||
|
||||
// Token: 0x0600047E RID: 1150 RVA: 0x00018940 File Offset: 0x00016D40
|
||||
public override void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
base.OnPointerDown(eventData);
|
||||
this.m_Offset = Vector2.zero;
|
||||
if (this.m_HandleContainerRect != null && RectTransformUtility.RectangleContainsScreenPoint(this.m_HandleRect, eventData.position, eventData.enterEventCamera))
|
||||
{
|
||||
Vector2 vector;
|
||||
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(this.m_HandleRect, eventData.position, eventData.pressEventCamera, out vector))
|
||||
{
|
||||
this.m_Offset = vector;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.UpdateDrag(eventData, eventData.pressEventCamera);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600047F RID: 1151 RVA: 0x000189D9 File Offset: 0x00016DD9
|
||||
public virtual void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
if (this.MayDrag(eventData))
|
||||
{
|
||||
this.UpdateDrag(eventData, eventData.pressEventCamera);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000480 RID: 1152 RVA: 0x000189FC File Offset: 0x00016DFC
|
||||
public override void OnMove(AxisEventData eventData)
|
||||
{
|
||||
if (!this.IsActive() || !this.IsInteractable())
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (eventData.moveDir)
|
||||
{
|
||||
case MoveDirection.Left:
|
||||
if (this.axis == Slider.Axis.Horizontal && this.FindSelectableOnLeft() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value - this.stepSize) : (this.value + this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
case MoveDirection.Up:
|
||||
if (this.axis == Slider.Axis.Vertical && this.FindSelectableOnUp() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value + this.stepSize) : (this.value - this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
case MoveDirection.Right:
|
||||
if (this.axis == Slider.Axis.Horizontal && this.FindSelectableOnRight() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value + this.stepSize) : (this.value - this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
case MoveDirection.Down:
|
||||
if (this.axis == Slider.Axis.Vertical && this.FindSelectableOnDown() == null)
|
||||
{
|
||||
this.Set((!this.reverseValue) ? (this.value - this.stepSize) : (this.value + this.stepSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnMove(eventData);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000481 RID: 1153 RVA: 0x00018BC8 File Offset: 0x00016FC8
|
||||
public override Selectable FindSelectableOnLeft()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Slider.Axis.Horizontal)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnLeft();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000482 RID: 1154 RVA: 0x00018C0C File Offset: 0x0001700C
|
||||
public override Selectable FindSelectableOnRight()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Slider.Axis.Horizontal)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnRight();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000483 RID: 1155 RVA: 0x00018C50 File Offset: 0x00017050
|
||||
public override Selectable FindSelectableOnUp()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Slider.Axis.Vertical)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnUp();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000484 RID: 1156 RVA: 0x00018C94 File Offset: 0x00017094
|
||||
public override Selectable FindSelectableOnDown()
|
||||
{
|
||||
Selectable selectable;
|
||||
if (base.navigation.mode == Navigation.Mode.Automatic && this.axis == Slider.Axis.Vertical)
|
||||
{
|
||||
selectable = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectable = base.FindSelectableOnDown();
|
||||
}
|
||||
return selectable;
|
||||
}
|
||||
|
||||
// Token: 0x06000485 RID: 1157 RVA: 0x00018CD6 File Offset: 0x000170D6
|
||||
public virtual void OnInitializePotentialDrag(PointerEventData eventData)
|
||||
{
|
||||
eventData.useDragThreshold = false;
|
||||
}
|
||||
|
||||
// Token: 0x06000486 RID: 1158 RVA: 0x00018CE0 File Offset: 0x000170E0
|
||||
public void SetDirection(Slider.Direction direction, bool includeRectLayouts)
|
||||
{
|
||||
Slider.Axis axis = this.axis;
|
||||
bool reverseValue = this.reverseValue;
|
||||
this.direction = direction;
|
||||
if (includeRectLayouts)
|
||||
{
|
||||
if (this.axis != axis)
|
||||
{
|
||||
RectTransformUtility.FlipLayoutAxes(base.transform as RectTransform, true, true);
|
||||
}
|
||||
if (this.reverseValue != reverseValue)
|
||||
{
|
||||
RectTransformUtility.FlipLayoutOnAxis(base.transform as RectTransform, (int)this.axis, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000487 RID: 1159 RVA: 0x00018D50 File Offset: 0x00017150
|
||||
Transform ICanvasElement.get_transform()
|
||||
{
|
||||
return base.transform;
|
||||
}
|
||||
|
||||
// Token: 0x0400021D RID: 541
|
||||
[SerializeField]
|
||||
private RectTransform m_FillRect;
|
||||
|
||||
// Token: 0x0400021E RID: 542
|
||||
[SerializeField]
|
||||
private RectTransform m_HandleRect;
|
||||
|
||||
// Token: 0x0400021F RID: 543
|
||||
[Space]
|
||||
[SerializeField]
|
||||
private Slider.Direction m_Direction = Slider.Direction.LeftToRight;
|
||||
|
||||
// Token: 0x04000220 RID: 544
|
||||
[SerializeField]
|
||||
private float m_MinValue = 0f;
|
||||
|
||||
// Token: 0x04000221 RID: 545
|
||||
[SerializeField]
|
||||
private float m_MaxValue = 1f;
|
||||
|
||||
// Token: 0x04000222 RID: 546
|
||||
[SerializeField]
|
||||
private bool m_WholeNumbers = false;
|
||||
|
||||
// Token: 0x04000223 RID: 547
|
||||
[SerializeField]
|
||||
protected float m_Value;
|
||||
|
||||
// Token: 0x04000224 RID: 548
|
||||
[Space]
|
||||
[SerializeField]
|
||||
private Slider.SliderEvent m_OnValueChanged = new Slider.SliderEvent();
|
||||
|
||||
// Token: 0x04000225 RID: 549
|
||||
private Image m_FillImage;
|
||||
|
||||
// Token: 0x04000226 RID: 550
|
||||
private Transform m_FillTransform;
|
||||
|
||||
// Token: 0x04000227 RID: 551
|
||||
private RectTransform m_FillContainerRect;
|
||||
|
||||
// Token: 0x04000228 RID: 552
|
||||
private Transform m_HandleTransform;
|
||||
|
||||
// Token: 0x04000229 RID: 553
|
||||
private RectTransform m_HandleContainerRect;
|
||||
|
||||
// Token: 0x0400022A RID: 554
|
||||
private Vector2 m_Offset = Vector2.zero;
|
||||
|
||||
// Token: 0x0400022B RID: 555
|
||||
private DrivenRectTransformTracker m_Tracker;
|
||||
|
||||
// Token: 0x02000077 RID: 119
|
||||
public enum Direction
|
||||
{
|
||||
// Token: 0x0400022D RID: 557
|
||||
LeftToRight,
|
||||
// Token: 0x0400022E RID: 558
|
||||
RightToLeft,
|
||||
// Token: 0x0400022F RID: 559
|
||||
BottomToTop,
|
||||
// Token: 0x04000230 RID: 560
|
||||
TopToBottom
|
||||
}
|
||||
|
||||
// Token: 0x02000078 RID: 120
|
||||
[Serializable]
|
||||
public class SliderEvent : UnityEvent<float>
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x02000079 RID: 121
|
||||
private enum Axis
|
||||
{
|
||||
// Token: 0x04000232 RID: 562
|
||||
Horizontal,
|
||||
// Token: 0x04000233 RID: 563
|
||||
Vertical
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200007A RID: 122
|
||||
[Serializable]
|
||||
public struct SpriteState : IEquatable<SpriteState>
|
||||
{
|
||||
// Token: 0x17000139 RID: 313
|
||||
// (get) Token: 0x06000489 RID: 1161 RVA: 0x00018D60 File Offset: 0x00017160
|
||||
// (set) Token: 0x0600048A RID: 1162 RVA: 0x00018D7B File Offset: 0x0001717B
|
||||
public Sprite highlightedSprite
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_HighlightedSprite;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_HighlightedSprite = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700013A RID: 314
|
||||
// (get) Token: 0x0600048B RID: 1163 RVA: 0x00018D88 File Offset: 0x00017188
|
||||
// (set) Token: 0x0600048C RID: 1164 RVA: 0x00018DA3 File Offset: 0x000171A3
|
||||
public Sprite pressedSprite
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_PressedSprite;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_PressedSprite = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700013B RID: 315
|
||||
// (get) Token: 0x0600048D RID: 1165 RVA: 0x00018DB0 File Offset: 0x000171B0
|
||||
// (set) Token: 0x0600048E RID: 1166 RVA: 0x00018DCB File Offset: 0x000171CB
|
||||
public Sprite disabledSprite
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_DisabledSprite;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_DisabledSprite = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600048F RID: 1167 RVA: 0x00018DD8 File Offset: 0x000171D8
|
||||
public bool Equals(SpriteState other)
|
||||
{
|
||||
return this.highlightedSprite == other.highlightedSprite && this.pressedSprite == other.pressedSprite && this.disabledSprite == other.disabledSprite;
|
||||
}
|
||||
|
||||
// Token: 0x04000234 RID: 564
|
||||
[FormerlySerializedAs("highlightedSprite")]
|
||||
[FormerlySerializedAs("m_SelectedSprite")]
|
||||
[SerializeField]
|
||||
private Sprite m_HighlightedSprite;
|
||||
|
||||
// Token: 0x04000235 RID: 565
|
||||
[FormerlySerializedAs("pressedSprite")]
|
||||
[SerializeField]
|
||||
private Sprite m_PressedSprite;
|
||||
|
||||
// Token: 0x04000236 RID: 566
|
||||
[FormerlySerializedAs("disabledSprite")]
|
||||
[SerializeField]
|
||||
private Sprite m_DisabledSprite;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200007B RID: 123
|
||||
public static class StencilMaterial
|
||||
{
|
||||
// Token: 0x06000490 RID: 1168 RVA: 0x00018E30 File Offset: 0x00017230
|
||||
[Obsolete("Use Material.Add instead.", true)]
|
||||
public static Material Add(Material baseMat, int stencilID)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Token: 0x06000491 RID: 1169 RVA: 0x00018E48 File Offset: 0x00017248
|
||||
public static Material Add(Material baseMat, int stencilID, StencilOp operation, CompareFunction compareFunction, ColorWriteMask colorWriteMask)
|
||||
{
|
||||
return StencilMaterial.Add(baseMat, stencilID, operation, compareFunction, colorWriteMask, 255, 255);
|
||||
}
|
||||
|
||||
// Token: 0x06000492 RID: 1170 RVA: 0x00018E74 File Offset: 0x00017274
|
||||
public static Material Add(Material baseMat, int stencilID, StencilOp operation, CompareFunction compareFunction, ColorWriteMask colorWriteMask, int readMask, int writeMask)
|
||||
{
|
||||
Material material;
|
||||
if ((stencilID <= 0 && colorWriteMask == ColorWriteMask.All) || baseMat == null)
|
||||
{
|
||||
material = baseMat;
|
||||
}
|
||||
else if (!baseMat.HasProperty("_Stencil"))
|
||||
{
|
||||
Debug.LogWarning("Material " + baseMat.name + " doesn't have _Stencil property", baseMat);
|
||||
material = baseMat;
|
||||
}
|
||||
else if (!baseMat.HasProperty("_StencilOp"))
|
||||
{
|
||||
Debug.LogWarning("Material " + baseMat.name + " doesn't have _StencilOp property", baseMat);
|
||||
material = baseMat;
|
||||
}
|
||||
else if (!baseMat.HasProperty("_StencilComp"))
|
||||
{
|
||||
Debug.LogWarning("Material " + baseMat.name + " doesn't have _StencilComp property", baseMat);
|
||||
material = baseMat;
|
||||
}
|
||||
else if (!baseMat.HasProperty("_StencilReadMask"))
|
||||
{
|
||||
Debug.LogWarning("Material " + baseMat.name + " doesn't have _StencilReadMask property", baseMat);
|
||||
material = baseMat;
|
||||
}
|
||||
else if (!baseMat.HasProperty("_StencilWriteMask"))
|
||||
{
|
||||
Debug.LogWarning("Material " + baseMat.name + " doesn't have _StencilWriteMask property", baseMat);
|
||||
material = baseMat;
|
||||
}
|
||||
else if (!baseMat.HasProperty("_ColorMask"))
|
||||
{
|
||||
Debug.LogWarning("Material " + baseMat.name + " doesn't have _ColorMask property", baseMat);
|
||||
material = baseMat;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < StencilMaterial.m_List.Count; i++)
|
||||
{
|
||||
StencilMaterial.MatEntry matEntry = StencilMaterial.m_List[i];
|
||||
if (matEntry.baseMat == baseMat && matEntry.stencilId == stencilID && matEntry.operation == operation && matEntry.compareFunction == compareFunction && matEntry.readMask == readMask && matEntry.writeMask == writeMask && matEntry.colorMask == colorWriteMask)
|
||||
{
|
||||
matEntry.count++;
|
||||
return matEntry.customMat;
|
||||
}
|
||||
}
|
||||
StencilMaterial.MatEntry matEntry2 = new StencilMaterial.MatEntry();
|
||||
matEntry2.count = 1;
|
||||
matEntry2.baseMat = baseMat;
|
||||
matEntry2.customMat = new Material(baseMat);
|
||||
matEntry2.customMat.hideFlags = HideFlags.HideAndDontSave;
|
||||
matEntry2.stencilId = stencilID;
|
||||
matEntry2.operation = operation;
|
||||
matEntry2.compareFunction = compareFunction;
|
||||
matEntry2.readMask = readMask;
|
||||
matEntry2.writeMask = writeMask;
|
||||
matEntry2.colorMask = colorWriteMask;
|
||||
matEntry2.useAlphaClip = operation != StencilOp.Keep && writeMask > 0;
|
||||
matEntry2.customMat.name = string.Format("Stencil Id:{0}, Op:{1}, Comp:{2}, WriteMask:{3}, ReadMask:{4}, ColorMask:{5} AlphaClip:{6} ({7})", new object[] { stencilID, operation, compareFunction, writeMask, readMask, colorWriteMask, matEntry2.useAlphaClip, baseMat.name });
|
||||
matEntry2.customMat.SetInt("_Stencil", stencilID);
|
||||
matEntry2.customMat.SetInt("_StencilOp", (int)operation);
|
||||
matEntry2.customMat.SetInt("_StencilComp", (int)compareFunction);
|
||||
matEntry2.customMat.SetInt("_StencilReadMask", readMask);
|
||||
matEntry2.customMat.SetInt("_StencilWriteMask", writeMask);
|
||||
matEntry2.customMat.SetInt("_ColorMask", (int)colorWriteMask);
|
||||
if (matEntry2.customMat.HasProperty("_UseAlphaClip"))
|
||||
{
|
||||
matEntry2.customMat.SetInt("_UseAlphaClip", (!matEntry2.useAlphaClip) ? 0 : 1);
|
||||
}
|
||||
if (matEntry2.useAlphaClip)
|
||||
{
|
||||
matEntry2.customMat.EnableKeyword("UNITY_UI_ALPHACLIP");
|
||||
}
|
||||
else
|
||||
{
|
||||
matEntry2.customMat.DisableKeyword("UNITY_UI_ALPHACLIP");
|
||||
}
|
||||
StencilMaterial.m_List.Add(matEntry2);
|
||||
material = matEntry2.customMat;
|
||||
}
|
||||
return material;
|
||||
}
|
||||
|
||||
// Token: 0x06000493 RID: 1171 RVA: 0x00019238 File Offset: 0x00017638
|
||||
public static void Remove(Material customMat)
|
||||
{
|
||||
if (!(customMat == null))
|
||||
{
|
||||
for (int i = 0; i < StencilMaterial.m_List.Count; i++)
|
||||
{
|
||||
StencilMaterial.MatEntry matEntry = StencilMaterial.m_List[i];
|
||||
if (!(matEntry.customMat != customMat))
|
||||
{
|
||||
if (--matEntry.count == 0)
|
||||
{
|
||||
Misc.DestroyImmediate(matEntry.customMat);
|
||||
matEntry.baseMat = null;
|
||||
StencilMaterial.m_List.RemoveAt(i);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000494 RID: 1172 RVA: 0x000192D0 File Offset: 0x000176D0
|
||||
public static void ClearAll()
|
||||
{
|
||||
for (int i = 0; i < StencilMaterial.m_List.Count; i++)
|
||||
{
|
||||
StencilMaterial.MatEntry matEntry = StencilMaterial.m_List[i];
|
||||
Misc.DestroyImmediate(matEntry.customMat);
|
||||
matEntry.baseMat = null;
|
||||
}
|
||||
StencilMaterial.m_List.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x04000237 RID: 567
|
||||
private static List<StencilMaterial.MatEntry> m_List = new List<StencilMaterial.MatEntry>();
|
||||
|
||||
// Token: 0x0200007C RID: 124
|
||||
private class MatEntry
|
||||
{
|
||||
// Token: 0x04000238 RID: 568
|
||||
public Material baseMat;
|
||||
|
||||
// Token: 0x04000239 RID: 569
|
||||
public Material customMat;
|
||||
|
||||
// Token: 0x0400023A RID: 570
|
||||
public int count;
|
||||
|
||||
// Token: 0x0400023B RID: 571
|
||||
public int stencilId;
|
||||
|
||||
// Token: 0x0400023C RID: 572
|
||||
public StencilOp operation = StencilOp.Keep;
|
||||
|
||||
// Token: 0x0400023D RID: 573
|
||||
public CompareFunction compareFunction = CompareFunction.Always;
|
||||
|
||||
// Token: 0x0400023E RID: 574
|
||||
public int readMask;
|
||||
|
||||
// Token: 0x0400023F RID: 575
|
||||
public int writeMask;
|
||||
|
||||
// Token: 0x04000240 RID: 576
|
||||
public bool useAlphaClip;
|
||||
|
||||
// Token: 0x04000241 RID: 577
|
||||
public ColorWriteMask colorMask;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,647 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200007D RID: 125
|
||||
[AddComponentMenu("UI/Text", 10)]
|
||||
public class Text : MaskableGraphic, ILayoutElement
|
||||
{
|
||||
// Token: 0x06000497 RID: 1175 RVA: 0x00019345 File Offset: 0x00017745
|
||||
protected Text()
|
||||
{
|
||||
base.useLegacyMeshGeneration = false;
|
||||
}
|
||||
|
||||
// Token: 0x1700013C RID: 316
|
||||
// (get) Token: 0x06000498 RID: 1176 RVA: 0x00019380 File Offset: 0x00017780
|
||||
public TextGenerator cachedTextGenerator
|
||||
{
|
||||
get
|
||||
{
|
||||
TextGenerator textGenerator;
|
||||
if ((textGenerator = this.m_TextCache) == null)
|
||||
{
|
||||
textGenerator = (this.m_TextCache = ((this.m_Text.Length == 0) ? new TextGenerator() : new TextGenerator(this.m_Text.Length)));
|
||||
}
|
||||
return textGenerator;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700013D RID: 317
|
||||
// (get) Token: 0x06000499 RID: 1177 RVA: 0x000193D8 File Offset: 0x000177D8
|
||||
public TextGenerator cachedTextGeneratorForLayout
|
||||
{
|
||||
get
|
||||
{
|
||||
TextGenerator textGenerator;
|
||||
if ((textGenerator = this.m_TextCacheForLayout) == null)
|
||||
{
|
||||
textGenerator = (this.m_TextCacheForLayout = new TextGenerator());
|
||||
}
|
||||
return textGenerator;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700013E RID: 318
|
||||
// (get) Token: 0x0600049A RID: 1178 RVA: 0x00019408 File Offset: 0x00017808
|
||||
public override Texture mainTexture
|
||||
{
|
||||
get
|
||||
{
|
||||
Texture texture;
|
||||
if (this.font != null && this.font.material != null && this.font.material.mainTexture != null)
|
||||
{
|
||||
texture = this.font.material.mainTexture;
|
||||
}
|
||||
else if (this.m_Material != null)
|
||||
{
|
||||
texture = this.m_Material.mainTexture;
|
||||
}
|
||||
else
|
||||
{
|
||||
texture = base.mainTexture;
|
||||
}
|
||||
return texture;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600049B RID: 1179 RVA: 0x000194A0 File Offset: 0x000178A0
|
||||
public void FontTextureChanged()
|
||||
{
|
||||
if (this)
|
||||
{
|
||||
if (!this.m_DisableFontTextureRebuiltCallback)
|
||||
{
|
||||
this.cachedTextGenerator.Invalidate();
|
||||
if (this.IsActive())
|
||||
{
|
||||
if (CanvasUpdateRegistry.IsRebuildingGraphics() || CanvasUpdateRegistry.IsRebuildingLayout())
|
||||
{
|
||||
this.UpdateGeometry();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.SetAllDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700013F RID: 319
|
||||
// (get) Token: 0x0600049C RID: 1180 RVA: 0x00019510 File Offset: 0x00017910
|
||||
// (set) Token: 0x0600049D RID: 1181 RVA: 0x00019530 File Offset: 0x00017930
|
||||
public Font font
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.font;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!(this.m_FontData.font == value))
|
||||
{
|
||||
FontUpdateTracker.UntrackText(this);
|
||||
this.m_FontData.font = value;
|
||||
FontUpdateTracker.TrackText(this);
|
||||
this.SetAllDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000140 RID: 320
|
||||
// (get) Token: 0x0600049E RID: 1182 RVA: 0x0001956C File Offset: 0x0001796C
|
||||
// (set) Token: 0x0600049F RID: 1183 RVA: 0x00019588 File Offset: 0x00017988
|
||||
public virtual string text
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (string.IsNullOrEmpty(value))
|
||||
{
|
||||
if (!string.IsNullOrEmpty(this.m_Text))
|
||||
{
|
||||
this.m_Text = "";
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
else if (this.m_Text != value)
|
||||
{
|
||||
this.m_Text = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000141 RID: 321
|
||||
// (get) Token: 0x060004A0 RID: 1184 RVA: 0x000195F4 File Offset: 0x000179F4
|
||||
// (set) Token: 0x060004A1 RID: 1185 RVA: 0x00019614 File Offset: 0x00017A14
|
||||
public bool supportRichText
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.richText;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.richText != value)
|
||||
{
|
||||
this.m_FontData.richText = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000142 RID: 322
|
||||
// (get) Token: 0x060004A2 RID: 1186 RVA: 0x00019648 File Offset: 0x00017A48
|
||||
// (set) Token: 0x060004A3 RID: 1187 RVA: 0x00019668 File Offset: 0x00017A68
|
||||
public bool resizeTextForBestFit
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.bestFit;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.bestFit != value)
|
||||
{
|
||||
this.m_FontData.bestFit = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000143 RID: 323
|
||||
// (get) Token: 0x060004A4 RID: 1188 RVA: 0x0001969C File Offset: 0x00017A9C
|
||||
// (set) Token: 0x060004A5 RID: 1189 RVA: 0x000196BC File Offset: 0x00017ABC
|
||||
public int resizeTextMinSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.minSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.minSize != value)
|
||||
{
|
||||
this.m_FontData.minSize = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000144 RID: 324
|
||||
// (get) Token: 0x060004A6 RID: 1190 RVA: 0x000196F0 File Offset: 0x00017AF0
|
||||
// (set) Token: 0x060004A7 RID: 1191 RVA: 0x00019710 File Offset: 0x00017B10
|
||||
public int resizeTextMaxSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.maxSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.maxSize != value)
|
||||
{
|
||||
this.m_FontData.maxSize = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000145 RID: 325
|
||||
// (get) Token: 0x060004A8 RID: 1192 RVA: 0x00019744 File Offset: 0x00017B44
|
||||
// (set) Token: 0x060004A9 RID: 1193 RVA: 0x00019764 File Offset: 0x00017B64
|
||||
public TextAnchor alignment
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.alignment;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.alignment != value)
|
||||
{
|
||||
this.m_FontData.alignment = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000146 RID: 326
|
||||
// (get) Token: 0x060004AA RID: 1194 RVA: 0x00019798 File Offset: 0x00017B98
|
||||
// (set) Token: 0x060004AB RID: 1195 RVA: 0x000197B8 File Offset: 0x00017BB8
|
||||
public bool alignByGeometry
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.alignByGeometry;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.alignByGeometry != value)
|
||||
{
|
||||
this.m_FontData.alignByGeometry = value;
|
||||
this.SetVerticesDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000147 RID: 327
|
||||
// (get) Token: 0x060004AC RID: 1196 RVA: 0x000197E4 File Offset: 0x00017BE4
|
||||
// (set) Token: 0x060004AD RID: 1197 RVA: 0x00019804 File Offset: 0x00017C04
|
||||
public int fontSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.fontSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.fontSize != value)
|
||||
{
|
||||
this.m_FontData.fontSize = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000148 RID: 328
|
||||
// (get) Token: 0x060004AE RID: 1198 RVA: 0x00019838 File Offset: 0x00017C38
|
||||
// (set) Token: 0x060004AF RID: 1199 RVA: 0x00019858 File Offset: 0x00017C58
|
||||
public HorizontalWrapMode horizontalOverflow
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.horizontalOverflow;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.horizontalOverflow != value)
|
||||
{
|
||||
this.m_FontData.horizontalOverflow = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000149 RID: 329
|
||||
// (get) Token: 0x060004B0 RID: 1200 RVA: 0x0001988C File Offset: 0x00017C8C
|
||||
// (set) Token: 0x060004B1 RID: 1201 RVA: 0x000198AC File Offset: 0x00017CAC
|
||||
public VerticalWrapMode verticalOverflow
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.verticalOverflow;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.verticalOverflow != value)
|
||||
{
|
||||
this.m_FontData.verticalOverflow = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700014A RID: 330
|
||||
// (get) Token: 0x060004B2 RID: 1202 RVA: 0x000198E0 File Offset: 0x00017CE0
|
||||
// (set) Token: 0x060004B3 RID: 1203 RVA: 0x00019900 File Offset: 0x00017D00
|
||||
public float lineSpacing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.lineSpacing;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.lineSpacing != value)
|
||||
{
|
||||
this.m_FontData.lineSpacing = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700014B RID: 331
|
||||
// (get) Token: 0x060004B4 RID: 1204 RVA: 0x00019934 File Offset: 0x00017D34
|
||||
// (set) Token: 0x060004B5 RID: 1205 RVA: 0x00019954 File Offset: 0x00017D54
|
||||
public FontStyle fontStyle
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FontData.fontStyle;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.m_FontData.fontStyle != value)
|
||||
{
|
||||
this.m_FontData.fontStyle = value;
|
||||
this.SetVerticesDirty();
|
||||
this.SetLayoutDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700014C RID: 332
|
||||
// (get) Token: 0x060004B6 RID: 1206 RVA: 0x00019988 File Offset: 0x00017D88
|
||||
public float pixelsPerUnit
|
||||
{
|
||||
get
|
||||
{
|
||||
Canvas canvas = base.canvas;
|
||||
float num;
|
||||
if (!canvas)
|
||||
{
|
||||
num = 1f;
|
||||
}
|
||||
else if (!this.font || this.font.dynamic)
|
||||
{
|
||||
num = canvas.scaleFactor;
|
||||
}
|
||||
else if (this.m_FontData.fontSize <= 0 || this.font.fontSize <= 0)
|
||||
{
|
||||
num = 1f;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = (float)this.font.fontSize / (float)this.m_FontData.fontSize;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004B7 RID: 1207 RVA: 0x00019A2C File Offset: 0x00017E2C
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.cachedTextGenerator.Invalidate();
|
||||
FontUpdateTracker.TrackText(this);
|
||||
}
|
||||
|
||||
// Token: 0x060004B8 RID: 1208 RVA: 0x00019A46 File Offset: 0x00017E46
|
||||
protected override void OnDisable()
|
||||
{
|
||||
FontUpdateTracker.UntrackText(this);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x060004B9 RID: 1209 RVA: 0x00019A55 File Offset: 0x00017E55
|
||||
protected override void UpdateGeometry()
|
||||
{
|
||||
if (this.font != null)
|
||||
{
|
||||
base.UpdateGeometry();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004BA RID: 1210 RVA: 0x00019A71 File Offset: 0x00017E71
|
||||
internal void AssignDefaultFont()
|
||||
{
|
||||
this.font = Resources.GetBuiltinResource<Font>("Arial.ttf");
|
||||
}
|
||||
|
||||
// Token: 0x060004BB RID: 1211 RVA: 0x00019A84 File Offset: 0x00017E84
|
||||
public TextGenerationSettings GetGenerationSettings(Vector2 extents)
|
||||
{
|
||||
TextGenerationSettings textGenerationSettings = default(TextGenerationSettings);
|
||||
textGenerationSettings.generationExtents = extents;
|
||||
if (this.font != null && this.font.dynamic)
|
||||
{
|
||||
textGenerationSettings.fontSize = this.m_FontData.fontSize;
|
||||
textGenerationSettings.resizeTextMinSize = this.m_FontData.minSize;
|
||||
textGenerationSettings.resizeTextMaxSize = this.m_FontData.maxSize;
|
||||
}
|
||||
textGenerationSettings.textAnchor = this.m_FontData.alignment;
|
||||
textGenerationSettings.alignByGeometry = this.m_FontData.alignByGeometry;
|
||||
textGenerationSettings.scaleFactor = this.pixelsPerUnit;
|
||||
textGenerationSettings.color = this.color;
|
||||
textGenerationSettings.font = this.font;
|
||||
textGenerationSettings.pivot = base.rectTransform.pivot;
|
||||
textGenerationSettings.richText = this.m_FontData.richText;
|
||||
textGenerationSettings.lineSpacing = this.m_FontData.lineSpacing;
|
||||
textGenerationSettings.fontStyle = this.m_FontData.fontStyle;
|
||||
textGenerationSettings.resizeTextForBestFit = this.m_FontData.bestFit;
|
||||
textGenerationSettings.updateBounds = false;
|
||||
textGenerationSettings.horizontalOverflow = this.m_FontData.horizontalOverflow;
|
||||
textGenerationSettings.verticalOverflow = this.m_FontData.verticalOverflow;
|
||||
return textGenerationSettings;
|
||||
}
|
||||
|
||||
// Token: 0x060004BC RID: 1212 RVA: 0x00019BD4 File Offset: 0x00017FD4
|
||||
public static Vector2 GetTextAnchorPivot(TextAnchor anchor)
|
||||
{
|
||||
Vector2 vector;
|
||||
switch (anchor)
|
||||
{
|
||||
case TextAnchor.UpperLeft:
|
||||
vector = new Vector2(0f, 1f);
|
||||
break;
|
||||
case TextAnchor.UpperCenter:
|
||||
vector = new Vector2(0.5f, 1f);
|
||||
break;
|
||||
case TextAnchor.UpperRight:
|
||||
vector = new Vector2(1f, 1f);
|
||||
break;
|
||||
case TextAnchor.MiddleLeft:
|
||||
vector = new Vector2(0f, 0.5f);
|
||||
break;
|
||||
case TextAnchor.MiddleCenter:
|
||||
vector = new Vector2(0.5f, 0.5f);
|
||||
break;
|
||||
case TextAnchor.MiddleRight:
|
||||
vector = new Vector2(1f, 0.5f);
|
||||
break;
|
||||
case TextAnchor.LowerLeft:
|
||||
vector = new Vector2(0f, 0f);
|
||||
break;
|
||||
case TextAnchor.LowerCenter:
|
||||
vector = new Vector2(0.5f, 0f);
|
||||
break;
|
||||
case TextAnchor.LowerRight:
|
||||
vector = new Vector2(1f, 0f);
|
||||
break;
|
||||
default:
|
||||
vector = Vector2.zero;
|
||||
break;
|
||||
}
|
||||
return vector;
|
||||
}
|
||||
|
||||
// Token: 0x060004BD RID: 1213 RVA: 0x00019CDC File Offset: 0x000180DC
|
||||
protected override void OnPopulateMesh(VertexHelper toFill)
|
||||
{
|
||||
if (!(this.font == null))
|
||||
{
|
||||
this.m_DisableFontTextureRebuiltCallback = true;
|
||||
Vector2 size = base.rectTransform.rect.size;
|
||||
TextGenerationSettings generationSettings = this.GetGenerationSettings(size);
|
||||
this.cachedTextGenerator.PopulateWithErrors(this.text, generationSettings, base.gameObject);
|
||||
IList<UIVertex> verts = this.cachedTextGenerator.verts;
|
||||
float num = 1f / this.pixelsPerUnit;
|
||||
int num2 = verts.Count - 4;
|
||||
Vector2 vector = new Vector2(verts[0].position.x, verts[0].position.y) * num;
|
||||
vector = base.PixelAdjustPoint(vector) - vector;
|
||||
toFill.Clear();
|
||||
if (vector != Vector2.zero)
|
||||
{
|
||||
for (int i = 0; i < num2; i++)
|
||||
{
|
||||
int num3 = i & 3;
|
||||
this.m_TempVerts[num3] = verts[i];
|
||||
UIVertex[] tempVerts = this.m_TempVerts;
|
||||
int num4 = num3;
|
||||
tempVerts[num4].position = tempVerts[num4].position * num;
|
||||
UIVertex[] tempVerts2 = this.m_TempVerts;
|
||||
int num5 = num3;
|
||||
tempVerts2[num5].position.x = tempVerts2[num5].position.x + vector.x;
|
||||
UIVertex[] tempVerts3 = this.m_TempVerts;
|
||||
int num6 = num3;
|
||||
tempVerts3[num6].position.y = tempVerts3[num6].position.y + vector.y;
|
||||
if (num3 == 3)
|
||||
{
|
||||
toFill.AddUIVertexQuad(this.m_TempVerts);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int j = 0; j < num2; j++)
|
||||
{
|
||||
int num7 = j & 3;
|
||||
this.m_TempVerts[num7] = verts[j];
|
||||
UIVertex[] tempVerts4 = this.m_TempVerts;
|
||||
int num8 = num7;
|
||||
tempVerts4[num8].position = tempVerts4[num8].position * num;
|
||||
if (num7 == 3)
|
||||
{
|
||||
toFill.AddUIVertexQuad(this.m_TempVerts);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.m_DisableFontTextureRebuiltCallback = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004BE RID: 1214 RVA: 0x00019EF2 File Offset: 0x000182F2
|
||||
public virtual void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060004BF RID: 1215 RVA: 0x00019EF5 File Offset: 0x000182F5
|
||||
public virtual void CalculateLayoutInputVertical()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x1700014D RID: 333
|
||||
// (get) Token: 0x060004C0 RID: 1216 RVA: 0x00019EF8 File Offset: 0x000182F8
|
||||
public virtual float minWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700014E RID: 334
|
||||
// (get) Token: 0x060004C1 RID: 1217 RVA: 0x00019F14 File Offset: 0x00018314
|
||||
public virtual float preferredWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
TextGenerationSettings generationSettings = this.GetGenerationSettings(Vector2.zero);
|
||||
return this.cachedTextGeneratorForLayout.GetPreferredWidth(this.m_Text, generationSettings) / this.pixelsPerUnit;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700014F RID: 335
|
||||
// (get) Token: 0x060004C2 RID: 1218 RVA: 0x00019F50 File Offset: 0x00018350
|
||||
public virtual float flexibleWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000150 RID: 336
|
||||
// (get) Token: 0x060004C3 RID: 1219 RVA: 0x00019F6C File Offset: 0x0001836C
|
||||
public virtual float minHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000151 RID: 337
|
||||
// (get) Token: 0x060004C4 RID: 1220 RVA: 0x00019F88 File Offset: 0x00018388
|
||||
public virtual float preferredHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
TextGenerationSettings generationSettings = this.GetGenerationSettings(new Vector2(base.GetPixelAdjustedRect().size.x, 0f));
|
||||
return this.cachedTextGeneratorForLayout.GetPreferredHeight(this.m_Text, generationSettings) / this.pixelsPerUnit;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000152 RID: 338
|
||||
// (get) Token: 0x060004C5 RID: 1221 RVA: 0x00019FE0 File Offset: 0x000183E0
|
||||
public virtual float flexibleHeight
|
||||
{
|
||||
get
|
||||
{
|
||||
return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000153 RID: 339
|
||||
// (get) Token: 0x060004C6 RID: 1222 RVA: 0x00019FFC File Offset: 0x000183FC
|
||||
public virtual int layoutPriority
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000242 RID: 578
|
||||
[SerializeField]
|
||||
private FontData m_FontData = FontData.defaultFontData;
|
||||
|
||||
// Token: 0x04000243 RID: 579
|
||||
[TextArea(3, 10)]
|
||||
[SerializeField]
|
||||
protected string m_Text = string.Empty;
|
||||
|
||||
// Token: 0x04000244 RID: 580
|
||||
private TextGenerator m_TextCache;
|
||||
|
||||
// Token: 0x04000245 RID: 581
|
||||
private TextGenerator m_TextCacheForLayout;
|
||||
|
||||
// Token: 0x04000246 RID: 582
|
||||
protected static Material s_DefaultText = null;
|
||||
|
||||
// Token: 0x04000247 RID: 583
|
||||
[NonSerialized]
|
||||
protected bool m_DisableFontTextureRebuiltCallback = false;
|
||||
|
||||
// Token: 0x04000248 RID: 584
|
||||
private readonly UIVertex[] m_TempVerts = new UIVertex[4];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
using System;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200007E RID: 126
|
||||
[AddComponentMenu("UI/Toggle", 31)]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class Toggle : Selectable, IPointerClickHandler, ISubmitHandler, ICanvasElement, IEventSystemHandler
|
||||
{
|
||||
// Token: 0x060004C8 RID: 1224 RVA: 0x0001A01A File Offset: 0x0001841A
|
||||
protected Toggle()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000154 RID: 340
|
||||
// (get) Token: 0x060004C9 RID: 1225 RVA: 0x0001A038 File Offset: 0x00018438
|
||||
// (set) Token: 0x060004CA RID: 1226 RVA: 0x0001A053 File Offset: 0x00018453
|
||||
public ToggleGroup group
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Group;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_Group = value;
|
||||
this.SetToggleGroup(this.m_Group, true);
|
||||
this.PlayEffect(true);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004CB RID: 1227 RVA: 0x0001A073 File Offset: 0x00018473
|
||||
public virtual void Rebuild(CanvasUpdate executing)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060004CC RID: 1228 RVA: 0x0001A076 File Offset: 0x00018476
|
||||
public virtual void LayoutComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060004CD RID: 1229 RVA: 0x0001A079 File Offset: 0x00018479
|
||||
public virtual void GraphicUpdateComplete()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060004CE RID: 1230 RVA: 0x0001A07C File Offset: 0x0001847C
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
this.SetToggleGroup(this.m_Group, false);
|
||||
this.PlayEffect(true);
|
||||
}
|
||||
|
||||
// Token: 0x060004CF RID: 1231 RVA: 0x0001A099 File Offset: 0x00018499
|
||||
protected override void OnDisable()
|
||||
{
|
||||
this.SetToggleGroup(null, false);
|
||||
base.OnDisable();
|
||||
}
|
||||
|
||||
// Token: 0x060004D0 RID: 1232 RVA: 0x0001A0AC File Offset: 0x000184AC
|
||||
protected override void OnDidApplyAnimationProperties()
|
||||
{
|
||||
if (this.graphic != null)
|
||||
{
|
||||
bool flag = !Mathf.Approximately(this.graphic.canvasRenderer.GetColor().a, 0f);
|
||||
if (this.m_IsOn != flag)
|
||||
{
|
||||
this.m_IsOn = flag;
|
||||
this.Set(!flag);
|
||||
}
|
||||
}
|
||||
base.OnDidApplyAnimationProperties();
|
||||
}
|
||||
|
||||
// Token: 0x060004D1 RID: 1233 RVA: 0x0001A118 File Offset: 0x00018518
|
||||
private void SetToggleGroup(ToggleGroup newGroup, bool setMemberValue)
|
||||
{
|
||||
ToggleGroup group = this.m_Group;
|
||||
if (this.m_Group != null)
|
||||
{
|
||||
this.m_Group.UnregisterToggle(this);
|
||||
}
|
||||
if (setMemberValue)
|
||||
{
|
||||
this.m_Group = newGroup;
|
||||
}
|
||||
if (newGroup != null && this.IsActive())
|
||||
{
|
||||
newGroup.RegisterToggle(this);
|
||||
}
|
||||
if (newGroup != null && newGroup != group && this.isOn && this.IsActive())
|
||||
{
|
||||
newGroup.NotifyToggleOn(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000155 RID: 341
|
||||
// (get) Token: 0x060004D2 RID: 1234 RVA: 0x0001A1AC File Offset: 0x000185AC
|
||||
// (set) Token: 0x060004D3 RID: 1235 RVA: 0x0001A1C7 File Offset: 0x000185C7
|
||||
public bool isOn
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_IsOn;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.Set(value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004D4 RID: 1236 RVA: 0x0001A1D1 File Offset: 0x000185D1
|
||||
private void Set(bool value)
|
||||
{
|
||||
this.Set(value, true);
|
||||
}
|
||||
|
||||
// Token: 0x060004D5 RID: 1237 RVA: 0x0001A1DC File Offset: 0x000185DC
|
||||
private void Set(bool value, bool sendCallback)
|
||||
{
|
||||
if (this.m_IsOn != value)
|
||||
{
|
||||
this.m_IsOn = value;
|
||||
if (this.m_Group != null && this.IsActive())
|
||||
{
|
||||
if (this.m_IsOn || (!this.m_Group.AnyTogglesOn() && !this.m_Group.allowSwitchOff))
|
||||
{
|
||||
this.m_IsOn = true;
|
||||
this.m_Group.NotifyToggleOn(this);
|
||||
}
|
||||
}
|
||||
this.PlayEffect(this.toggleTransition == Toggle.ToggleTransition.None);
|
||||
if (sendCallback)
|
||||
{
|
||||
UISystemProfilerApi.AddMarker("Toggle.value", this);
|
||||
this.onValueChanged.Invoke(this.m_IsOn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004D6 RID: 1238 RVA: 0x0001A294 File Offset: 0x00018694
|
||||
private void PlayEffect(bool instant)
|
||||
{
|
||||
if (!(this.graphic == null))
|
||||
{
|
||||
this.graphic.CrossFadeAlpha((!this.m_IsOn) ? 0f : 1f, (!instant) ? 0.1f : 0f, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004D7 RID: 1239 RVA: 0x0001A2F3 File Offset: 0x000186F3
|
||||
protected override void Start()
|
||||
{
|
||||
this.PlayEffect(true);
|
||||
}
|
||||
|
||||
// Token: 0x060004D8 RID: 1240 RVA: 0x0001A2FD File Offset: 0x000186FD
|
||||
private void InternalToggle()
|
||||
{
|
||||
if (this.IsActive() && this.IsInteractable())
|
||||
{
|
||||
this.isOn = !this.isOn;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004D9 RID: 1241 RVA: 0x0001A32A File Offset: 0x0001872A
|
||||
public virtual void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
this.InternalToggle();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004DA RID: 1242 RVA: 0x0001A343 File Offset: 0x00018743
|
||||
public virtual void OnSubmit(BaseEventData eventData)
|
||||
{
|
||||
this.InternalToggle();
|
||||
}
|
||||
|
||||
// Token: 0x060004DB RID: 1243 RVA: 0x0001A34C File Offset: 0x0001874C
|
||||
Transform ICanvasElement.get_transform()
|
||||
{
|
||||
return base.transform;
|
||||
}
|
||||
|
||||
// Token: 0x04000249 RID: 585
|
||||
public Toggle.ToggleTransition toggleTransition = Toggle.ToggleTransition.Fade;
|
||||
|
||||
// Token: 0x0400024A RID: 586
|
||||
public Graphic graphic;
|
||||
|
||||
// Token: 0x0400024B RID: 587
|
||||
[SerializeField]
|
||||
private ToggleGroup m_Group;
|
||||
|
||||
// Token: 0x0400024C RID: 588
|
||||
public Toggle.ToggleEvent onValueChanged = new Toggle.ToggleEvent();
|
||||
|
||||
// Token: 0x0400024D RID: 589
|
||||
[FormerlySerializedAs("m_IsActive")]
|
||||
[Tooltip("Is the toggle currently on or off?")]
|
||||
[SerializeField]
|
||||
private bool m_IsOn;
|
||||
|
||||
// Token: 0x0200007F RID: 127
|
||||
public enum ToggleTransition
|
||||
{
|
||||
// Token: 0x0400024F RID: 591
|
||||
None,
|
||||
// Token: 0x04000250 RID: 592
|
||||
Fade
|
||||
}
|
||||
|
||||
// Token: 0x02000080 RID: 128
|
||||
[Serializable]
|
||||
public class ToggleEvent : UnityEvent<bool>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x02000081 RID: 129
|
||||
[AddComponentMenu("UI/Toggle Group", 32)]
|
||||
[DisallowMultipleComponent]
|
||||
public class ToggleGroup : UIBehaviour
|
||||
{
|
||||
// Token: 0x060004DD RID: 1245 RVA: 0x0001A35C File Offset: 0x0001875C
|
||||
protected ToggleGroup()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17000156 RID: 342
|
||||
// (get) Token: 0x060004DE RID: 1246 RVA: 0x0001A378 File Offset: 0x00018778
|
||||
// (set) Token: 0x060004DF RID: 1247 RVA: 0x0001A393 File Offset: 0x00018793
|
||||
public bool allowSwitchOff
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_AllowSwitchOff;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_AllowSwitchOff = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004E0 RID: 1248 RVA: 0x0001A39D File Offset: 0x0001879D
|
||||
private void ValidateToggleIsInGroup(Toggle toggle)
|
||||
{
|
||||
if (toggle == null || !this.m_Toggles.Contains(toggle))
|
||||
{
|
||||
throw new ArgumentException(string.Format("Toggle {0} is not part of ToggleGroup {1}", new object[] { toggle, this }));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004E1 RID: 1249 RVA: 0x0001A3DC File Offset: 0x000187DC
|
||||
public void NotifyToggleOn(Toggle toggle)
|
||||
{
|
||||
this.ValidateToggleIsInGroup(toggle);
|
||||
for (int i = 0; i < this.m_Toggles.Count; i++)
|
||||
{
|
||||
if (!(this.m_Toggles[i] == toggle))
|
||||
{
|
||||
this.m_Toggles[i].isOn = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004E2 RID: 1250 RVA: 0x0001A43D File Offset: 0x0001883D
|
||||
public void UnregisterToggle(Toggle toggle)
|
||||
{
|
||||
if (this.m_Toggles.Contains(toggle))
|
||||
{
|
||||
this.m_Toggles.Remove(toggle);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004E3 RID: 1251 RVA: 0x0001A45E File Offset: 0x0001885E
|
||||
public void RegisterToggle(Toggle toggle)
|
||||
{
|
||||
if (!this.m_Toggles.Contains(toggle))
|
||||
{
|
||||
this.m_Toggles.Add(toggle);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060004E4 RID: 1252 RVA: 0x0001A480 File Offset: 0x00018880
|
||||
public bool AnyTogglesOn()
|
||||
{
|
||||
return this.m_Toggles.Find((Toggle x) => x.isOn) != null;
|
||||
}
|
||||
|
||||
// Token: 0x060004E5 RID: 1253 RVA: 0x0001A4C4 File Offset: 0x000188C4
|
||||
public IEnumerable<Toggle> ActiveToggles()
|
||||
{
|
||||
return this.m_Toggles.Where((Toggle x) => x.isOn);
|
||||
}
|
||||
|
||||
// Token: 0x060004E6 RID: 1254 RVA: 0x0001A504 File Offset: 0x00018904
|
||||
public void SetAllTogglesOff()
|
||||
{
|
||||
bool allowSwitchOff = this.m_AllowSwitchOff;
|
||||
this.m_AllowSwitchOff = true;
|
||||
for (int i = 0; i < this.m_Toggles.Count; i++)
|
||||
{
|
||||
this.m_Toggles[i].isOn = false;
|
||||
}
|
||||
this.m_AllowSwitchOff = allowSwitchOff;
|
||||
}
|
||||
|
||||
// Token: 0x04000251 RID: 593
|
||||
[SerializeField]
|
||||
private bool m_AllowSwitchOff = false;
|
||||
|
||||
// Token: 0x04000252 RID: 594
|
||||
private List<Toggle> m_Toggles = new List<Toggle>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,240 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x020000A8 RID: 168
|
||||
public class VertexHelper : IDisposable
|
||||
{
|
||||
// Token: 0x06000604 RID: 1540 RVA: 0x0001DDC8 File Offset: 0x0001C1C8
|
||||
public VertexHelper()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000605 RID: 1541 RVA: 0x0001DE40 File Offset: 0x0001C240
|
||||
public VertexHelper(Mesh m)
|
||||
{
|
||||
this.m_Positions.AddRange(m.vertices);
|
||||
this.m_Colors.AddRange(m.colors32);
|
||||
this.m_Uv0S.AddRange(m.uv);
|
||||
this.m_Uv1S.AddRange(m.uv2);
|
||||
this.m_Uv2S.AddRange(m.uv3);
|
||||
this.m_Uv3S.AddRange(m.uv4);
|
||||
this.m_Normals.AddRange(m.normals);
|
||||
this.m_Tangents.AddRange(m.tangents);
|
||||
this.m_Indices.AddRange(m.GetIndices(0));
|
||||
}
|
||||
|
||||
// Token: 0x06000606 RID: 1542 RVA: 0x0001DF54 File Offset: 0x0001C354
|
||||
public void Clear()
|
||||
{
|
||||
this.m_Positions.Clear();
|
||||
this.m_Colors.Clear();
|
||||
this.m_Uv0S.Clear();
|
||||
this.m_Uv1S.Clear();
|
||||
this.m_Uv2S.Clear();
|
||||
this.m_Uv3S.Clear();
|
||||
this.m_Normals.Clear();
|
||||
this.m_Tangents.Clear();
|
||||
this.m_Indices.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x17000199 RID: 409
|
||||
// (get) Token: 0x06000607 RID: 1543 RVA: 0x0001DFC8 File Offset: 0x0001C3C8
|
||||
public int currentVertCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Positions.Count;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700019A RID: 410
|
||||
// (get) Token: 0x06000608 RID: 1544 RVA: 0x0001DFE8 File Offset: 0x0001C3E8
|
||||
public int currentIndexCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Indices.Count;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000609 RID: 1545 RVA: 0x0001E008 File Offset: 0x0001C408
|
||||
public void PopulateUIVertex(ref UIVertex vertex, int i)
|
||||
{
|
||||
vertex.position = this.m_Positions[i];
|
||||
vertex.color = this.m_Colors[i];
|
||||
vertex.uv0 = this.m_Uv0S[i];
|
||||
vertex.uv1 = this.m_Uv1S[i];
|
||||
vertex.uv2 = this.m_Uv2S[i];
|
||||
vertex.uv3 = this.m_Uv3S[i];
|
||||
vertex.normal = this.m_Normals[i];
|
||||
vertex.tangent = this.m_Tangents[i];
|
||||
}
|
||||
|
||||
// Token: 0x0600060A RID: 1546 RVA: 0x0001E0A8 File Offset: 0x0001C4A8
|
||||
public void SetUIVertex(UIVertex vertex, int i)
|
||||
{
|
||||
this.m_Positions[i] = vertex.position;
|
||||
this.m_Colors[i] = vertex.color;
|
||||
this.m_Uv0S[i] = vertex.uv0;
|
||||
this.m_Uv1S[i] = vertex.uv1;
|
||||
this.m_Uv2S[i] = vertex.uv2;
|
||||
this.m_Uv3S[i] = vertex.uv3;
|
||||
this.m_Normals[i] = vertex.normal;
|
||||
this.m_Tangents[i] = vertex.tangent;
|
||||
}
|
||||
|
||||
// Token: 0x0600060B RID: 1547 RVA: 0x0001E150 File Offset: 0x0001C550
|
||||
public void FillMesh(Mesh mesh)
|
||||
{
|
||||
mesh.Clear();
|
||||
if (this.m_Positions.Count >= 65000)
|
||||
{
|
||||
throw new ArgumentException("Mesh can not have more than 65000 vertices");
|
||||
}
|
||||
mesh.SetVertices(this.m_Positions);
|
||||
mesh.SetColors(this.m_Colors);
|
||||
mesh.SetUVs(0, this.m_Uv0S);
|
||||
mesh.SetUVs(1, this.m_Uv1S);
|
||||
mesh.SetUVs(2, this.m_Uv2S);
|
||||
mesh.SetUVs(3, this.m_Uv3S);
|
||||
mesh.SetNormals(this.m_Normals);
|
||||
mesh.SetTangents(this.m_Tangents);
|
||||
mesh.SetTriangles(this.m_Indices, 0);
|
||||
mesh.RecalculateBounds();
|
||||
}
|
||||
|
||||
// Token: 0x0600060C RID: 1548 RVA: 0x0001E1FC File Offset: 0x0001C5FC
|
||||
public void Dispose()
|
||||
{
|
||||
ListPool<Vector3>.Release(this.m_Positions);
|
||||
ListPool<Color32>.Release(this.m_Colors);
|
||||
ListPool<Vector2>.Release(this.m_Uv0S);
|
||||
ListPool<Vector2>.Release(this.m_Uv1S);
|
||||
ListPool<Vector2>.Release(this.m_Uv2S);
|
||||
ListPool<Vector2>.Release(this.m_Uv3S);
|
||||
ListPool<Vector3>.Release(this.m_Normals);
|
||||
ListPool<Vector4>.Release(this.m_Tangents);
|
||||
ListPool<int>.Release(this.m_Indices);
|
||||
this.m_Positions = null;
|
||||
this.m_Colors = null;
|
||||
this.m_Uv0S = null;
|
||||
this.m_Uv1S = null;
|
||||
this.m_Uv2S = null;
|
||||
this.m_Uv3S = null;
|
||||
this.m_Normals = null;
|
||||
this.m_Tangents = null;
|
||||
this.m_Indices = null;
|
||||
}
|
||||
|
||||
// Token: 0x0600060D RID: 1549 RVA: 0x0001E2AC File Offset: 0x0001C6AC
|
||||
public void AddVert(Vector3 position, Color32 color, Vector2 uv0, Vector2 uv1, Vector3 normal, Vector4 tangent)
|
||||
{
|
||||
this.m_Positions.Add(position);
|
||||
this.m_Colors.Add(color);
|
||||
this.m_Uv0S.Add(uv0);
|
||||
this.m_Uv1S.Add(uv1);
|
||||
this.m_Uv2S.Add(Vector2.zero);
|
||||
this.m_Uv3S.Add(Vector2.zero);
|
||||
this.m_Normals.Add(normal);
|
||||
this.m_Tangents.Add(tangent);
|
||||
}
|
||||
|
||||
// Token: 0x0600060E RID: 1550 RVA: 0x0001E325 File Offset: 0x0001C725
|
||||
public void AddVert(Vector3 position, Color32 color, Vector2 uv0)
|
||||
{
|
||||
this.AddVert(position, color, uv0, Vector2.zero, VertexHelper.s_DefaultNormal, VertexHelper.s_DefaultTangent);
|
||||
}
|
||||
|
||||
// Token: 0x0600060F RID: 1551 RVA: 0x0001E340 File Offset: 0x0001C740
|
||||
public void AddVert(UIVertex v)
|
||||
{
|
||||
this.AddVert(v.position, v.color, v.uv0, v.uv1, v.normal, v.tangent);
|
||||
}
|
||||
|
||||
// Token: 0x06000610 RID: 1552 RVA: 0x0001E373 File Offset: 0x0001C773
|
||||
public void AddTriangle(int idx0, int idx1, int idx2)
|
||||
{
|
||||
this.m_Indices.Add(idx0);
|
||||
this.m_Indices.Add(idx1);
|
||||
this.m_Indices.Add(idx2);
|
||||
}
|
||||
|
||||
// Token: 0x06000611 RID: 1553 RVA: 0x0001E39C File Offset: 0x0001C79C
|
||||
public void AddUIVertexQuad(UIVertex[] verts)
|
||||
{
|
||||
int currentVertCount = this.currentVertCount;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
this.AddVert(verts[i].position, verts[i].color, verts[i].uv0, verts[i].uv1, verts[i].normal, verts[i].tangent);
|
||||
}
|
||||
this.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2);
|
||||
this.AddTriangle(currentVertCount + 2, currentVertCount + 3, currentVertCount);
|
||||
}
|
||||
|
||||
// Token: 0x06000612 RID: 1554 RVA: 0x0001E42C File Offset: 0x0001C82C
|
||||
public void AddUIVertexStream(List<UIVertex> verts, List<int> indices)
|
||||
{
|
||||
if (verts != null)
|
||||
{
|
||||
CanvasRenderer.AddUIVertexStream(verts, this.m_Positions, this.m_Colors, this.m_Uv0S, this.m_Uv1S, this.m_Uv2S, this.m_Uv3S, this.m_Normals, this.m_Tangents);
|
||||
}
|
||||
if (indices != null)
|
||||
{
|
||||
this.m_Indices.AddRange(indices);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000613 RID: 1555 RVA: 0x0001E48C File Offset: 0x0001C88C
|
||||
public void AddUIVertexTriangleStream(List<UIVertex> verts)
|
||||
{
|
||||
if (verts != null)
|
||||
{
|
||||
CanvasRenderer.SplitUIVertexStreams(verts, this.m_Positions, this.m_Colors, this.m_Uv0S, this.m_Uv1S, this.m_Uv2S, this.m_Uv3S, this.m_Normals, this.m_Tangents, this.m_Indices);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000614 RID: 1556 RVA: 0x0001E4E4 File Offset: 0x0001C8E4
|
||||
public void GetUIVertexStream(List<UIVertex> stream)
|
||||
{
|
||||
if (stream != null)
|
||||
{
|
||||
CanvasRenderer.CreateUIVertexStream(stream, this.m_Positions, this.m_Colors, this.m_Uv0S, this.m_Uv1S, this.m_Uv2S, this.m_Uv3S, this.m_Normals, this.m_Tangents, this.m_Indices);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040002CB RID: 715
|
||||
private List<Vector3> m_Positions = ListPool<Vector3>.Get();
|
||||
|
||||
// Token: 0x040002CC RID: 716
|
||||
private List<Color32> m_Colors = ListPool<Color32>.Get();
|
||||
|
||||
// Token: 0x040002CD RID: 717
|
||||
private List<Vector2> m_Uv0S = ListPool<Vector2>.Get();
|
||||
|
||||
// Token: 0x040002CE RID: 718
|
||||
private List<Vector2> m_Uv1S = ListPool<Vector2>.Get();
|
||||
|
||||
// Token: 0x040002CF RID: 719
|
||||
private List<Vector2> m_Uv2S = ListPool<Vector2>.Get();
|
||||
|
||||
// Token: 0x040002D0 RID: 720
|
||||
private List<Vector2> m_Uv3S = ListPool<Vector2>.Get();
|
||||
|
||||
// Token: 0x040002D1 RID: 721
|
||||
private List<Vector3> m_Normals = ListPool<Vector3>.Get();
|
||||
|
||||
// Token: 0x040002D2 RID: 722
|
||||
private List<Vector4> m_Tangents = ListPool<Vector4>.Get();
|
||||
|
||||
// Token: 0x040002D3 RID: 723
|
||||
private List<int> m_Indices = ListPool<int>.Get();
|
||||
|
||||
// Token: 0x040002D4 RID: 724
|
||||
private static readonly Vector4 s_DefaultTangent = new Vector4(1f, 0f, 0f, -1f);
|
||||
|
||||
// Token: 0x040002D5 RID: 725
|
||||
private static readonly Vector3 s_DefaultNormal = Vector3.back;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.UI
|
||||
{
|
||||
// Token: 0x0200009E RID: 158
|
||||
[AddComponentMenu("Layout/Vertical Layout Group", 151)]
|
||||
public class VerticalLayoutGroup : HorizontalOrVerticalLayoutGroup
|
||||
{
|
||||
// Token: 0x060005CE RID: 1486 RVA: 0x0001D67A File Offset: 0x0001BA7A
|
||||
protected VerticalLayoutGroup()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060005CF RID: 1487 RVA: 0x0001D683 File Offset: 0x0001BA83
|
||||
public override void CalculateLayoutInputHorizontal()
|
||||
{
|
||||
base.CalculateLayoutInputHorizontal();
|
||||
base.CalcAlongAxis(0, true);
|
||||
}
|
||||
|
||||
// Token: 0x060005D0 RID: 1488 RVA: 0x0001D694 File Offset: 0x0001BA94
|
||||
public override void CalculateLayoutInputVertical()
|
||||
{
|
||||
base.CalcAlongAxis(1, true);
|
||||
}
|
||||
|
||||
// Token: 0x060005D1 RID: 1489 RVA: 0x0001D69F File Offset: 0x0001BA9F
|
||||
public override void SetLayoutHorizontal()
|
||||
{
|
||||
base.SetChildrenAlongAxis(0, true);
|
||||
}
|
||||
|
||||
// Token: 0x060005D2 RID: 1490 RVA: 0x0001D6AA File Offset: 0x0001BAAA
|
||||
public override void SetLayoutVertical()
|
||||
{
|
||||
base.SetChildrenAlongAxis(1, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user