This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
+103
View File
@@ -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";
}
}
+197
View File
@@ -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
}
}
}
+71
View File
@@ -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;
}
}
+14
View File
@@ -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);
}
}
+88
View File
@@ -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
{
}
}
}
+432
View File
@@ -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
}
}
}
+21
View File
@@ -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
}
}
+273
View File
@@ -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);
}
}
+58
View File
@@ -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>();
}
}
+61
View File
@@ -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;
}
}
}
+186
View File
@@ -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>();
}
}
+179
View File
@@ -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;
}
}
+158
View File
@@ -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;
}
}
+514
View File
@@ -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;
}
}
}
+857
View File
@@ -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>
{
}
}
}
+279
View File
@@ -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;
}
}
+71
View File
@@ -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>>();
}
}
+739
View File
@@ -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;
}
}
+340
View File
@@ -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
}
}
}
+91
View File
@@ -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>();
}
}
+313
View File
@@ -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;
}
}
+24
View File
@@ -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();
}
}
+25
View File
@@ -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);
}
}
+11
View File
@@ -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();
}
}
+14
View File
@@ -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();
}
}
+42
View File
@@ -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; }
}
}
+9
View File
@@ -0,0 +1,9 @@
using System;
namespace UnityEngine.UI
{
// Token: 0x02000097 RID: 151
public interface ILayoutGroup : ILayoutController
{
}
}
+12
View File
@@ -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
{
}
}
+16
View File
@@ -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; }
}
}
+11
View File
@@ -0,0 +1,11 @@
using System;
namespace UnityEngine.UI
{
// Token: 0x02000057 RID: 87
public interface IMaskable
{
// Token: 0x060002AE RID: 686
void RecalculateMasking();
}
}
+11
View File
@@ -0,0 +1,11 @@
using System;
namespace UnityEngine.UI
{
// Token: 0x0200009F RID: 159
public interface IMaterialModifier
{
// Token: 0x060005D3 RID: 1491
Material GetModifiedMaterial(Material baseMaterial);
}
}
+15
View File
@@ -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);
}
}
+14
View File
@@ -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);
}
}
+1379
View File
@@ -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
}
}
}
+2938
View File
@@ -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
}
}
}
+244
View File
@@ -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;
}
}
+372
View File
@@ -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>();
}
}
+266
View File
@@ -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();
});
}
}
+144
View File
@@ -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;
}
}
}
+27
View File
@@ -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();
});
}
}
+190
View File
@@ -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;
}
}
+202
View File
@@ -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);
}
}
}
+254
View File
@@ -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>
{
}
}
}
+45
View File
@@ -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);
}
}
}
}
}
+145
View File
@@ -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
}
}
}
+85
View File
@@ -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;
}
}
+45
View File
@@ -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);
}
}
}
}
+26
View File
@@ -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);
}
}
}
}
+124
View File
@@ -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);
}
}
+179
View File
@@ -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];
}
}
+102
View File
@@ -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);
}
}
+1297
View File
@@ -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>
{
}
}
}
+596
View File
@@ -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
}
}
}
+788
View File
@@ -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
}
}
}
+57
View File
@@ -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;
}
}
}
+152
View File
@@ -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;
}
}
+676
View File
@@ -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
}
}
}
+77
View File
@@ -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;
}
}
+180
View File
@@ -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;
}
}
}
+647
View File
@@ -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];
}
}
+225
View File
@@ -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>
{
}
}
}
+104
View File
@@ -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>();
}
}
+240
View File
@@ -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;
}
}
+39
View File
@@ -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);
}
}
}