DESKTOP-SAJ6RKV\Administrator 379fe412f5 层级特殊处理
2025-06-04 19:22:53 +08:00

73 lines
2.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using DG.Tweening;
using GameConfig.giftConfig;
using TEngine;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace GameLogic
{
public class UIGiftItem : MonoBehaviour
{
// Start is called before the first frame update
public TextMeshProUGUI m_GiftName;
public TextMeshProUGUI m_InfoTex;
public TextMeshProUGUI m_NumTex;
public TextMeshProUGUI m_tmpTeamName;
public RawImage m_HeadIcon;
public Image m_GiftIcon;
//public Image m_Group;
private void Awake()
{
this.gameObject.GetComponent<Canvas>().sortingLayerName = "UI02";
}
public async void OnInit(UnitPlayerData unitPlayerData, GiftConfig giftConfig, int num)
{
//// 随机播放
//GameModule.Audio.Play(TEngine.AudioType.UISound, "礼物UI弹窗" + Random.Range(1, 5));
//m_Group.sprite = GameModule.Resource.LoadAsset<Sprite>("Z_lw_t_box_" + (giftConfig.Id - 1));
Log.Debug("送礼玩家阵营id:" + unitPlayerData.teamId);
m_tmpTeamName.text = DataGameSceneManager.Instance.GetStrs(int.Parse(unitPlayerData.teamId) - 1);
m_GiftName.text = unitPlayerData.protCustMessageData.nickName;
AsyncImageDownload.Instance.SetAsyncImage(unitPlayerData.protCustMessageData.imgURL, m_HeadIcon);
StartCoroutine(ScrollNumber(num)); // Start the number scrolling coroutine
m_InfoTex.text = "送" + giftConfig.Name;
m_GiftIcon.sprite = GameModule.Resource.LoadAsset<Sprite>("1_" + (giftConfig.Id - 1));
//m_GiftIcon.material = GameModule.Resource.LoadAsset<Material>("gift" + giftConfig.Id + "_Left");
await UniTask.Delay(2000);
if (this != null && this.gameObject != null && transform.parent != null)
{
Destroy(gameObject);
}
}
private IEnumerator ScrollNumber(int targetNumber)
{
int currentNumber = 0;
float duration = 1.0f; // Duration of the scrolling effect
float elapsed = 0f;
while (elapsed < duration)
{
elapsed += Time.deltaTime;
currentNumber = (int)Mathf.Lerp(0, targetNumber, elapsed / duration);
m_NumTex.text = "x" + currentNumber;
yield return null;
}
m_NumTex.text = "x" + targetNumber; // Ensure the final number is set
}
}
}