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