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