177 lines
4.4 KiB
C#
177 lines
4.4 KiB
C#
using System;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
|
|
// Token: 0x0200018E RID: 398
|
|
[RequireComponent(typeof(TMP_Text))]
|
|
public class TextMoveEffect : UIBehaviour
|
|
{
|
|
// Token: 0x1700015F RID: 351
|
|
// (get) Token: 0x06000E08 RID: 3592 RVA: 0x00042CDB File Offset: 0x00041EDB
|
|
public TextMoveEffect.ControlleMode Mode
|
|
{
|
|
get
|
|
{
|
|
return this._mode;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000160 RID: 352
|
|
// (get) Token: 0x06000E09 RID: 3593 RVA: 0x00042CE3 File Offset: 0x00041EE3
|
|
public float Frequency
|
|
{
|
|
get
|
|
{
|
|
return this._frequency;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000161 RID: 353
|
|
// (get) Token: 0x06000E0A RID: 3594 RVA: 0x00042CEB File Offset: 0x00041EEB
|
|
// (set) Token: 0x06000E0B RID: 3595 RVA: 0x00042CF3 File Offset: 0x00041EF3
|
|
public float Timer { get; set; }
|
|
|
|
// Token: 0x17000162 RID: 354
|
|
// (get) Token: 0x06000E0C RID: 3596 RVA: 0x00042CFC File Offset: 0x00041EFC
|
|
// (set) Token: 0x06000E0D RID: 3597 RVA: 0x00042D04 File Offset: 0x00041F04
|
|
public bool IsTypewriter { get; set; }
|
|
|
|
// Token: 0x17000163 RID: 355
|
|
// (get) Token: 0x06000E0E RID: 3598 RVA: 0x00042D0D File Offset: 0x00041F0D
|
|
public TMP_Text TmpText
|
|
{
|
|
get
|
|
{
|
|
return this._tmpText ?? base.GetComponent<TMP_Text>();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000E0F RID: 3599 RVA: 0x00042D1F File Offset: 0x00041F1F
|
|
private void Update()
|
|
{
|
|
this.Timer += Time.deltaTime;
|
|
if (this.Timer > this._frequency)
|
|
{
|
|
this.Timer = 0f;
|
|
this.MeshUpdate();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000E10 RID: 3600 RVA: 0x00042D54 File Offset: 0x00041F54
|
|
public void MeshUpdate()
|
|
{
|
|
if (this.TmpText == null)
|
|
{
|
|
return;
|
|
}
|
|
if (!this._distortion)
|
|
{
|
|
this.TmpText.ForceMeshUpdate();
|
|
}
|
|
TMP_TextInfo textInfo = this.TmpText.textInfo;
|
|
int characterCount = textInfo.characterCount;
|
|
Vector3[] array = null;
|
|
if (characterCount == 0)
|
|
{
|
|
return;
|
|
}
|
|
int num = 0;
|
|
while (num < characterCount && (!this.IsTypewriter || num != characterCount - 1) && textInfo.characterInfo.Length >= characterCount)
|
|
{
|
|
if (textInfo.characterInfo[num].isVisible)
|
|
{
|
|
int vertexIndex = textInfo.characterInfo[num].vertexIndex;
|
|
int materialReferenceIndex = textInfo.characterInfo[num].materialReferenceIndex;
|
|
array = textInfo.meshInfo[materialReferenceIndex].vertices;
|
|
this.TextMove(vertexIndex, ref array);
|
|
}
|
|
num++;
|
|
}
|
|
if (array != null && array.Length >= 4)
|
|
{
|
|
this.TmpText.UpdateVertexData();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000E11 RID: 3601 RVA: 0x00042E2C File Offset: 0x0004202C
|
|
public void TextMove(int vertexIndex, ref Vector3[] vertices)
|
|
{
|
|
TextMoveEffect.ControlleMode mode = this._mode;
|
|
if (mode == TextMoveEffect.ControlleMode.Simple)
|
|
{
|
|
this.TextMoveSimple(vertexIndex, ref vertices);
|
|
return;
|
|
}
|
|
if (mode != TextMoveEffect.ControlleMode.Active)
|
|
{
|
|
return;
|
|
}
|
|
this.TextMoveActive(vertexIndex, ref vertices);
|
|
}
|
|
|
|
// Token: 0x06000E12 RID: 3602 RVA: 0x00042E5C File Offset: 0x0004205C
|
|
private void TextMoveSimple(int vertexIndex, ref Vector3[] vertices)
|
|
{
|
|
float num = (float)Random.Range(0, 360) * 0.017453292f;
|
|
Vector3 vector;
|
|
vector..ctor(this._radius * Mathf.Cos(num), this._radius * Mathf.Sin(num), 0f);
|
|
for (int i = 0; i < 4; i++)
|
|
{
|
|
Vector3 vector2 = vertices[vertexIndex + i];
|
|
vector2 += vector;
|
|
vertices[vertexIndex + i] = vector2;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000E13 RID: 3603 RVA: 0x00042ECC File Offset: 0x000420CC
|
|
private void TextMoveActive(int vertexIndex, ref Vector3[] vertices)
|
|
{
|
|
Vector3[] array = new Vector3[4];
|
|
for (int i = 0; i < 4; i++)
|
|
{
|
|
float num = (float)Random.Range(0, 360) * 0.017453292f;
|
|
float num2 = this._radius * Random.value;
|
|
Vector3 vector;
|
|
vector..ctor(num2 * Mathf.Cos(num), num2 * Mathf.Sin(num), 0f);
|
|
array[i] = vector;
|
|
}
|
|
for (int j = 0; j < 4; j++)
|
|
{
|
|
Vector3 vector2 = vertices[vertexIndex + j];
|
|
vector2 += array[j];
|
|
vertices[vertexIndex + j] = vector2;
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000ACC RID: 2764
|
|
[SerializeField]
|
|
private TextMoveEffect.ControlleMode _mode;
|
|
|
|
// Token: 0x04000ACD RID: 2765
|
|
[SerializeField]
|
|
private float _radius = 1.5f;
|
|
|
|
// Token: 0x04000ACE RID: 2766
|
|
[SerializeField]
|
|
private float _frequency = 0.05f;
|
|
|
|
// Token: 0x04000ACF RID: 2767
|
|
[SerializeField]
|
|
private bool _distortion;
|
|
|
|
// Token: 0x04000AD2 RID: 2770
|
|
private readonly TMP_Text _tmpText;
|
|
|
|
// Token: 0x02000A52 RID: 2642
|
|
public enum ControlleMode
|
|
{
|
|
// Token: 0x040063D7 RID: 25559
|
|
None,
|
|
// Token: 0x040063D8 RID: 25560
|
|
Simple,
|
|
// Token: 0x040063D9 RID: 25561
|
|
Active
|
|
}
|
|
}
|