using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using DG.Tweening;
///
/// 右上角菜单
///
public class UI_RightTopMenu : MonoBehaviour
{
private static UI_RightTopMenu pInit = null;
private GameObject btnGemAdd = null;
private GameObject btnGoldAdd = null;
private GameObject btnResAdd = null;
private GameObject gemEffect = null;
private GameObject goldEffect = null;
private GameObject resEffect = null;
private GameObject btnTaskCard = null;
GameObject effectTuoWei = null;
GameObject effectTiShi = null;
private Text txt_Gem = null;
private Text txt_Gold = null;
private Text txt_Res = null;
private const float _spaceTime = 0;
private float _curTime = 0.5f;
private int lastCash = 0;
private int lastGold = 0;
private int lastRes = 0;
///
/// 单例
///
public static UI_RightTopMenu Instance
{
get
{
return pInit;
}
}
///
/// 创建
///
/// 父Transform
public static void Create(Transform parentTran,bool show = false)
{
if (show == false)
{
return;
}
ResourceHelper.Instance.LoadAssetBundle("UI_RightTopMenu", (ab) =>
{
if (ab != null)
{
GameObject uiObj = Instantiate(ab.LoadAsset("UI_RightTopMenu"), parentTran);
pInit = uiObj.AddComponent();
pInit.Init();
}
});
}
///
/// 初始化
///
private void Init()
{
_curTime = _spaceTime;
txt_Gem = transform.Find("GemBG/txt_Gem").GetComponent();
txt_Gold = transform.Find("GoldBG/txt_Gold").GetComponent();
txt_Res = transform.Find("ResBG/txt_Res").GetComponent();
btnGemAdd = transform.Find("GemBG/btn_GemAdd").gameObject;
EventTriggerListener.Get(btnGemAdd).onClick = GemAdd_Click;
btnGoldAdd = transform.Find("GoldBG/btn_GoldAdd").gameObject;
EventTriggerListener.Get(btnGoldAdd).onClick = GoldAdd_Click;
btnResAdd = transform.Find("ResBG/btn_ResAdd").gameObject;
EventTriggerListener.Get(btnResAdd).onClick = ResAdd_Click;
gemEffect = transform.Find("GemBG/UI_kouchu_saoguang").gameObject;
goldEffect = transform.Find("GoldBG/UI_kouchu_saoguang").gameObject;
resEffect = transform.Find("ResBG/UI_kouchu_saoguang").gameObject;
btnTaskCard = transform.Find("btn_TaskCard").gameObject;
effectTuoWei = btnTaskCard.transform.Find("UI_kapai_feiru_tuowei").gameObject;
effectTiShi = btnTaskCard.transform.Find("UI_baoguo_shouqu_tishi").gameObject;
// 任务卡背包
EventTriggerListener.Get(btnTaskCard).onClick = (btnObj) =>
{
PanelHelper.Instance.ShowPanel("UI_PacketWindow", null, 5);
// PanelHelper.Instance.ShowPanel("UI_TaskCardWindow");
};
lastCash = UserProxy.Instance.player.baseInfo.cash;
lastGold = UserProxy.Instance.player.baseInfo.gold;
lastRes = UserProxy.Instance.player.baseInfo.resPoint;
txt_Gem.text = UserProxy.Instance.player.baseInfo.cash.ToString();
txt_Gold.text = UserProxy.Instance.player.baseInfo.gold.ToString();
txt_Res.text = UserProxy.Instance.player.baseInfo.resPoint.ToString();
}
private void Update()
{
_curTime -= Time.deltaTime;
if (_curTime <= 0)
{
_curTime = _spaceTime;
// 宝石
if (lastCash != UserProxy.Instance.player.baseInfo.cash)
{
lastCash = UserProxy.Instance.player.baseInfo.cash;
txt_Gem.text = UserProxy.Instance.player.baseInfo.cash.ToString();
gemEffect.SetActive(false);
gemEffect.SetActive(true);
}
// 金币
if (lastGold != UserProxy.Instance.player.baseInfo.gold)
{
lastGold = UserProxy.Instance.player.baseInfo.gold;
txt_Gold.text = UserProxy.Instance.player.baseInfo.gold.ToString();
goldEffect.SetActive(false);
goldEffect.SetActive(true);
}
//// 资源点
//if (lastRes != UserProxy.Instance.player.baseInfo.resPoint)
//{
// lastRes = UserProxy.Instance.player.baseInfo.resPoint;
// txt_Res.text = UserProxy.Instance.player.baseInfo.resPoint.ToString();
// resEffect.SetActive(false);
// resEffect.SetActive(true);
//}
}
}
///
/// 显示获得新卡特效
///
public void ShowNewCardEffect()
{
effectTuoWei.SetActive(true);
float varH = UnityEngine.Random.Range(-500, 500);
DOTween.To(setter: value =>
{
Debug.Log(value);
effectTuoWei.transform.localPosition = Parabola(new Vector3(-910, -550, 0), Vector3.zero, varH, value);
}, startValue: 0, endValue: 1, duration: 0.5f)
.SetEase(Ease.Linear);
Invoke("LateShowTiShi", 0.5f);
}
///
/// 延时显示提示
///
private void LateShowTiShi()
{
effectTuoWei.SetActive(false);
effectTuoWei.transform.localPosition = new Vector3(-910, -550, 0);
effectTiShi.gameObject.SetActive(false);
effectTiShi.gameObject.SetActive(true);
}
///
/// 增加钻石 点击
///
/// 按钮对象
private void GemAdd_Click(GameObject go)
{
LogHelper.Log("点击增加钻石");
}
///
/// 增加金币 点击
///
/// 按钮对象
private void GoldAdd_Click(GameObject go)
{
LogHelper.Log("点击增加金币");
}
///
/// 增加资源点 点击
///
/// 按钮对象
private void ResAdd_Click(GameObject go)
{
LogHelper.Log("点击增加资源点");
}
public static Vector3 Parabola(Vector3 start, Vector3 end, float height, float t)
{
float Func(float x) => 4 * (-height * x * x + height * x);
var mid = Vector3.Lerp(start, end, t);
return new Vector3(mid.x, Func(t) + Mathf.Lerp(start.y, end.y, t), mid.z);
}
public static Vector2 Parabola(Vector2 start, Vector2 end, float height, float t)
{
float Func(float x) => 4 * (-height * x * x + height * x);
var mid = Vector2.Lerp(start, end, t);
return new Vector2(mid.x, Func(t) + Mathf.Lerp(start.y, end.y, t));
}
}