/// 基礎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(1f, 1.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();
}
}