using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.Events;
using static UnityEngine.ParticleSystem;
///
/// 最上层UI
///
public partial class TopmostLayerUI : UIBaseClass
{
///
/// 提示对象生成点
///
public Transform tipsObjSpawnPos;
///
/// 设置提示内容
///
/// 提示
public void SetTips(string tips)
{
TipsObj tipsObj = CachePoolManager.Instance.Take(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "TipsObj")).GetComponent();
tipsObj.transform.SetParent(tipsObjSpawnPos);
tipsObj.transform.localScale = Vector3.one;
tipsObj.transform.position = Vector3.zero;
tipsObj.SetTips(tips);
RectTransform tipsRectTransform = tipsObj.transform as RectTransform;
tipsRectTransform.anchoredPosition3D = Vector3.zero;
tipsRectTransform.offsetMax = Vector2.zero;
tipsRectTransform.offsetMin = Vector2.zero;
tipsRectTransform.sizeDelta = new Vector2(tipsRectTransform.sizeDelta.x, 300);
}
///
/// 爆材料
///
/// 起点
/// 终点
/// 爆完后做什么
/// 爆多少个
/// 是否有拖尾
/// 生成音效次数
/// 到达音效次数
public void FlyStuff(E_StuffType e_StuffType, Transform strtPos, Transform endPos, UnityAction callBack = null, float number = 50, bool isTrails = false,int generateAudioNumber=5,int arriveAudioNumber=5)
{
Transform recordingStartPoint = strtPos;
Transform recordingEndPoint = endPos;
Color color = Color.yellow;
YooAssetManager.Instance.LoadAssetAsync(PackagesName.GameData, "FlyStuff", (obj) =>
{
StuffEffects stuffEffects = CachePoolManager.Instance.Take(obj).GetComponent();
stuffEffects.transform.SetParent(this.transform);
(stuffEffects.transform.transform as RectTransform).anchoredPosition3D = Vector3.zero;
stuffEffects.transform.localScale = Vector3.one;
stuffEffects.transform.position = recordingStartPoint.position;
stuffEffects.Init(e_StuffType, recordingEndPoint, callBack, number, isTrails, generateAudioNumber, arriveAudioNumber);
});
}
///
/// 爆彩带
///
/// 左
/// 右
public void ColouredRibbon(Transform leftPoint, Transform rightPoint)
{
YooAssetManager.Instance.LoadAssetAsync(PackagesName.GameData, "fx_confetti", (obj) =>
{
GameObject fx_confettiObjOne = CachePoolManager.Instance.Take(obj);
fx_confettiObjOne.transform.SetParent(leftPoint);
fx_confettiObjOne.transform.localPosition = Vector3.zero;
fx_confettiObjOne.transform.localScale = Vector3.one * 800;
fx_confettiObjOne.transform.localEulerAngles = new Vector3(-90,0,0);
GameObject fx_confettiObjTwo = CachePoolManager.Instance.Take(obj);
fx_confettiObjTwo.transform.SetParent(rightPoint);
fx_confettiObjTwo.transform.localPosition = Vector3.zero;
fx_confettiObjTwo.transform.localScale = Vector3.one * 800;
fx_confettiObjTwo.transform.localEulerAngles = new Vector3(-90, 0, 0);
});
}
}