1、数字上升滚动
void Start()
{
//理解为存放Tween的队列(先进先出)
mSequence = DOTween.Sequence();
mSequence.SetAutoKill(false);
}
private void Add2Sequence_1()
{
//这种lambda写法每次都会从第一个函数里取,也就是oldS
//所以在这不能将newS直接赋值给oldS。否则会直接加1000没有滚动效果
mSequence.Append(DOTween.To(() => oldS, (int newVal) =>
{
mText.text = newVal.ToString();
oldS = newVal;
}, newS, 2f));
}
private void Add2Sequence_2()
{
//这种委托写法,执行是用第一次传入的oldS和newS。所以之后oldS = newS;不会影响
mSequence.Append(DOTween.To(delegate (float value) {
var temp = Math.Floor(value);
mText.text = temp + "";
print(oldS);
}, oldS, newS, 0.4f));
oldS = newS;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
newS += 1000;
Add2Sequence_1();
}
}
2、常用的对unity类的拓展方法
public Gradient mGradient;
private void Start()
{
Material mMaterial = GetComponent<MeshRenderer>().material;
//旋转
//transform.DORotate(new Vector3(0, 0, 90), 1f);
//transform.DOLocalRotate(new Vector3(0, 0, 90), 1f);
//看向某处
//transform.DOLookAt(Vector3.one, 3);
//材质改变颜色
//mMaterial.DOColor(Color.red, 3f);
//shader设置(没有MainColor的材质也可以)
//mMaterial.DOColor(Color.red, "_Color", 3f);
//补充:如果有2个DOColor直接会执行最后一个
//透明
//mMaterial.SetColor("_Color", Color.clear);
//梯度颜色设置
//mMaterial.DOGradientColor(mGradient, 3f);
//透明度
//mMaterial.DOFade(0, "_Color", 3f);
//材质offset
//mMaterial.DOOffset(new Vector2(0.5f, 0.5f), 3f);
//颜色混合
//mMaterial.DOBlendableColor(Color.red, "_Color", 2);
//mMaterial.DOBlendableColor(Color.green, "_Color", 2);
//摄像机也可以
//Camera.main.DOColor(Color.red, 3f);
//
//Camera.main.DOPixelRect(new Rect(360, 0, 500, 500), 2);
//抖动
//Camera.main.DOShakePosition(2, 10, 10);
}
Sequece补充:
quence.AppendInterval(10)