Unity實現(xiàn)領(lǐng)取獎勵特效
更新時間:2020年10月28日 10:05:53 作者:LLLLL__
這篇文章主要為大家詳細介紹了Unity實現(xiàn)領(lǐng)取獎勵特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Unity實現(xiàn)領(lǐng)取獎勵特效的具體代碼,供大家參考,具體內(nèi)容如下
一、效果演示

二、實現(xiàn)
導(dǎo)入Dotween插件
完整代碼
using System;
using UnityEngine;
using DG.Tweening;
/// <summary>
/// 特效管理
/// </summary>
public class EffectManager : MonoBehaviour
{
//單例
private static EffectManager _instance;
public static EffectManager Instance
{
get
{
if (_instance == null)
{
GameObject go = new GameObject(typeof(EffectManager).ToString());
DontDestroyOnLoad(go);
_instance = go.AddComponent<EffectManager>();
}
return _instance;
}
}
/// <summary>
/// 顯示獎勵特效
/// </summary>
/// <param name="startPos">實例化出來的位置</param>
/// <param name="targetPos">目標位置</param>
/// <param name="parent">父物體</param>
/// <param name="prefabName">預(yù)制體名稱</param>
/// <param name="siblingIndex">子層級下的索引</param>
/// <param name="num">實例化的數(shù)量</param>
/// <param name="onFinish">回調(diào)</param>
public void ShowAwardEffect(Vector3 startPos, Vector3 targetPos, Transform parent, string prefabName, int siblingIndex = -1, int num = 10, Action onFinish = null)
{
//渲染UI的相機名稱和畫布名稱
Camera uiCamera = GameObject.Find("UICamera").GetComponent<Camera>();
Canvas uiCanvas = GameObject.Find("Canvas").GetComponent<Canvas>();
if (uiCamera == null || uiCanvas == null)
{
return;
}
var seq = DOTween.Sequence();
for (int i = 0; i < num; i++)
{
GameObject prefab = Instantiate(Resources.Load<GameObject>(prefabName));//根據(jù)項目路徑進行修改
prefab.transform.SetParent(parent, false);
if (siblingIndex != -1)
{
prefab.transform.SetSiblingIndex(siblingIndex);
}
float randomTime = UnityEngine.Random.Range(0.4f, 0.6f);
prefab.transform.position = startPos;
seq.Insert(0, prefab.transform.DOMove(startPos + UnityEngine.Random.insideUnitSphere, randomTime)).SetEase(Ease.OutSine);
seq.Insert(randomTime, prefab.transform.DOMove(targetPos, UnityEngine.Random.Range(0.8f, 1.2f)).SetEase(Ease.InOutSine).OnComplete
(() =>
{
Destroy(prefab);
}));
}
seq.SetUpdate(true);
seq.AppendCallback(() =>
{
onFinish?.Invoke();
});
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
實現(xiàn)ASP.NET無刷新下載并提示下載完成的開發(fā)思路
這篇文章主要介紹了實現(xiàn)ASP.NET無刷新下載并提示下載完成的開發(fā)思路的相關(guān)資料,需要的朋友可以參考下2015-10-10
C#實現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進制字符串的方法
這篇文章主要介紹了C#實現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進制字符串的方法,涉及C#字符串遍歷、加密與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限
本文主要介紹了asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02

