74 lines
1.8 KiB
C#
74 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Coolape;
|
|
|
|
namespace Coolape
|
|
{
|
|
public class CLUIJumpLabel : UILabel
|
|
{
|
|
public bool isPlayJump = false;
|
|
|
|
public string orgStr = "";
|
|
public float speed = 0.25f;
|
|
|
|
int index = 0;
|
|
float timeCount = 0;
|
|
|
|
new public string text
|
|
{
|
|
get
|
|
{
|
|
return base.text;
|
|
}
|
|
set
|
|
{
|
|
base.text = value;
|
|
orgStr = base.processedText;
|
|
isPlayJump = true;
|
|
index = 0;
|
|
timeCount = Time.time;
|
|
base.text = PStr.b().a("[sub]").a(text).a("[/sub]").e();
|
|
}
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
if (!isPlayJump || string.IsNullOrEmpty(orgStr)) return;
|
|
if (timeCount <= Time.time)
|
|
{
|
|
jump();
|
|
}
|
|
}
|
|
|
|
public void jump()
|
|
{
|
|
int len = orgStr.Length;
|
|
if (len < 2) {
|
|
return;
|
|
}
|
|
index++;
|
|
if (index >= len)
|
|
{
|
|
index = 0;
|
|
}
|
|
string left = StrEx.Left(orgStr, index);
|
|
string mid = StrEx.Mid(orgStr, index, 1);
|
|
string right = StrEx.Right(orgStr, len - index - 1);
|
|
string str = PStr.b()
|
|
.a("[sub]")
|
|
.a(left)
|
|
.a("[/sup]")
|
|
.a("[sup]").a(mid).a("[/sup]")
|
|
.a("[sub]")
|
|
.a(right)
|
|
.a("[/sup]")
|
|
.e();
|
|
base.text = str;
|
|
timeCount = Time.time + speed;
|
|
}
|
|
|
|
}
|
|
}
|