OvertakingLegend/Assets/UIFrameWork/Script/TopmostLayerUI/TopmostLayerUI.cs

83 lines
3.6 KiB
C#

using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.Events;
using static UnityEngine.ParticleSystem;
/// <summary>
/// 最上层UI
/// </summary>
public partial class TopmostLayerUI : UIBaseClass
{
/// <summary>
/// 提示对象生成点
/// </summary>
public Transform tipsObjSpawnPos;
/// <summary>
/// 设置提示内容
/// </summary>
/// <param name="tips">提示</param>
public void SetTips(string tips)
{
TipsObj tipsObj = CachePoolManager.Instance.Take(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "TipsObj")).GetComponent<TipsObj>();
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);
}
/// <summary>
/// 爆材料
/// </summary>
/// <param name="strtPos">起点</param>
/// <param name="endPos">终点</param>
/// <param name="callBack">爆完后做什么</param>
/// <param name="number">爆多少个</param>
/// <param name="isTrails">是否有拖尾</param>
/// <param name="generateAudioNumber">生成音效次数</param>
/// <param name="arriveAudioNumber">到达音效次数</param>
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<GameObject>(PackagesName.GameData, "FlyStuff", (obj) =>
{
StuffEffects stuffEffects = CachePoolManager.Instance.Take(obj).GetComponent<StuffEffects>();
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);
});
}
/// <summary>
/// 爆彩带
/// </summary>
/// <param name="leftPoint">左</param>
/// <param name="rightPoint">右</param>
public void ColouredRibbon(Transform leftPoint, Transform rightPoint)
{
YooAssetManager.Instance.LoadAssetAsync<GameObject>(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);
});
}
}