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();
    }

 

}

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