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是一種緩動方式

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