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