unity插件DOTween製作假的進度條


    /// 基礎UI窗體
    public class BaseUIForm : MonoBehaviour
    {
        protected string MsgTypeName = "";  // 該類的消息名

        private void Awake()
        {
            //初始化基礎信息
            Initialization();
            //初始化UI信息
            InitUIInfo();
            //初始化UI按鈕點擊事件
            InitButtonClickEvent();

            if (MsgTypeName != "")
            {
                ReceiveMessage(MsgTypeName, ReceiveMsg);
            }

            LanguageManager.Instance.AddRefreshUI(RefreshUIText);
        }

}

-------------------------------------------------------------------------------------------------------------

// 窗體子類

public class MissionInfoUI : BaseUIForm

{

 protected override void InitButtonClickEvent()
    {
        //註冊開始任務按鈕
        RegisterButtonObjectEvent("StartMissionButton", p=> 
        { 
            CloseUIForm();
        });
        //註冊改變任務按鈕
        RegisterButtonObjectEvent("ChangeMissionButton", p =>
        {
            //判斷是否有足夠的錢刷新任務
            if (MainManager.CostCoins(100))
            {
                StartCoroutine(GetMissionIE(true));
            }
        });
    }

    protected override void ReceiveMsg(KeyValuesUpdate KV)
    {
        switch (KV.Key)
        {
            //刷新任務
            case SysDefine.SYS_MSG_KIND_RefreshMission:
                {
                    StartCoroutine( GetMissionIE() );
                }
                break;
        }
    }

 

  IEnumerator GetMissionIE(bool IsChangeMission = false)
    {
        GetMission(IsChangeMission);

        //隱藏背景和任務UI
        GetComponent<Image>().color = new Color(GetComponent<Image>().color.r, 
            GetComponent<Image>().color.g, GetComponent<Image>().color.b, 0);


        trans_MissionBox.Hide();
        //transform.FindChild<Transform>("TTTT").SetSprite();
        FindChild<Image>(this.gameObject, "MissionTitle").Hide();
        ChangeMissionButton.Hide();


        // 顯示接取任務的滑條動畫(只顯示根節點即可)
        trans_MissionSlider.Show();
        Image FillArea = FindChild<Image>(trans_MissionSlider.gameObject, "FillArea");

        // 滑條從0開始填充到1結束用時1.5秒
        FillArea.fillAmount = 0f;

        // 插件DOTween方法 DOFillAmount( this Image target, float endValue, float duration )
        FillArea.DOFillAmount(1f1.5f);
        yield return new WaitForSeconds(1.5f);


        //隱藏任務滑條
        trans_MissionSlider.Hide();


        //顯示任務信息
        GetComponent<Image>().color = new Color(GetComponent<Image>().color.r, GetComponent<Image>().color.g, GetComponent<Image>().color.b, 1);


        trans_MissionBox.Show();
        FindChild<Image>(this.gameObject, "MissionTitle").Show();
        ChangeMissionButton.Show();
    }

 

}

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