03-初识FairyGUI

同样是关于其中一段代码的理解:

using UnityEngine;
using FairyGUI;
using DG.Tweening;
public class FairyGUIText2 : MonoBehaviour
{
    private GComponent mainUI;
    private GComponent addPower;
    private float startValue;
    private float endValue;
    // Start is called before the first frame update
    void Start()
    {
        mainUI = GetComponent<UIPanel>().ui;
        addPower = UIPackage.CreateObject("Package3", "AddPowerCom").asCom;
        mainUI.GetChild("Button").onClick.Add(() => { onClick(addPower); });
        addPower.GetTransition("t0").SetHook("Add", AddSlowly);
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    void AddSlowly()
    {
        DOTween.To(() => startValue, x => { addPower.GetChild("PowerText").text = Mathf.Floor(x).ToString(); }, endValue, 0.3f).SetEase(Ease.Linear);
    }

    void onClick(GComponent gComponent)
    {
        mainUI.GetChild("Button").visible = false;
        GRoot.inst.AddChild(gComponent);
        Transition t = gComponent.GetTransition("t0");
        startValue = 10000;
        int add = Random.Range(1000, 3000);
        endValue = startValue + add;
        addPower.GetChild("PowerText").text = startValue.ToString();
        addPower.GetChild("AddPowerText").text = "+" + add;
        t.Play(() =>
        {
            mainUI.GetChild("Button").visible = true;
            GRoot.inst.RemoveChild(gComponent);
        });
    }
}

首先是

addPower.GetTransition("t0").SetHook("Add", AddSlowly);

这个是触发addPower组件上的t0动效的Add标签用的,只要播放到了该标签所在帧,就会触发AddSlowly方法

DOTween.To(() => startValue, x => { addPower.GetChild("PowerText").text = Mathf.Floor(x).ToString(); }, endValue, 0.3f).SetEase(Ease.Linear);

缓动方法,startValue表示组件的text开始的值,endValue表示结束的值,0.3f表示缓动时间,x表示程序计算出的在0.3f时间前提下每帧需要改变的值,然后将它赋给text属性,因为是一个float类型的值且我们希望text显示为整数,所以对它进行了Floor和ToString处理,setEase是设置缓动方式的函数,Ease.Linear是一种缓动方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章