157 lines
3.8 KiB
C#
157 lines
3.8 KiB
C#
|
|
using AssetKits.ParticleImage;
|
|||
|
|
using System.Collections;
|
|||
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.Events;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
|
/// </summary>
|
|||
|
|
public class StuffEffects : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private int generateAudioNumber;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private int arriveAudioNumber;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// UI<55><49><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public ParticleImage particleImage;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private UnityAction endAction;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private E_StuffType e_StuffType;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ʼ<EFBFBD><CABC>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sprite">ͼ<><CDBC></param>
|
|||
|
|
/// <param name="targtet">Ŀ<><C4BF></param>
|
|||
|
|
public void Init(E_StuffType e_StuffType, Transform targtet,UnityAction callBack, float number, bool isTrails,int generateAudioNumber,int arriveAudioNumber)
|
|||
|
|
{
|
|||
|
|
this.generateAudioNumber = generateAudioNumber;
|
|||
|
|
this.arriveAudioNumber = arriveAudioNumber;
|
|||
|
|
particleImage.attractorTarget = targtet;
|
|||
|
|
particleImage.rateOverTime = number;
|
|||
|
|
this.e_StuffType = e_StuffType;
|
|||
|
|
endAction = callBack;
|
|||
|
|
SetSprite();
|
|||
|
|
SetScale();
|
|||
|
|
SetTrails(isTrails);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD>ͼƬ
|
|||
|
|
/// </summary>
|
|||
|
|
private void SetSprite()
|
|||
|
|
{
|
|||
|
|
switch (e_StuffType)
|
|||
|
|
{
|
|||
|
|
case E_StuffType.Money:
|
|||
|
|
YooAssetManager.Instance.LoadAssetAsync<Sprite>(PackagesName.GameData, MyConstant.MoneyIcon, (sprite) =>
|
|||
|
|
{
|
|||
|
|
particleImage.sprite = sprite;
|
|||
|
|
});
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β
|
|||
|
|
/// </summary>
|
|||
|
|
private void SetTrails(bool isTrails)
|
|||
|
|
{
|
|||
|
|
particleImage.trailsEnabled = isTrails;
|
|||
|
|
Color color=Color.white;
|
|||
|
|
switch (e_StuffType)
|
|||
|
|
{
|
|||
|
|
case E_StuffType.Money:
|
|||
|
|
color = MyConstant.Green;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
particleImage.trailColorOverLifetime = new ParticleSystem.MinMaxGradient(color);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private void SetScale()
|
|||
|
|
{
|
|||
|
|
Vector3 scale=Vector3.zero;
|
|||
|
|
switch (e_StuffType)
|
|||
|
|
{
|
|||
|
|
case E_StuffType.Money:
|
|||
|
|
scale = Vector3.one;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
transform.localScale = scale;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public void Generate()
|
|||
|
|
{
|
|||
|
|
switch (e_StuffType)
|
|||
|
|
{
|
|||
|
|
case E_StuffType.Money:
|
|||
|
|
PlayAudio(5, MyConstant.GenerateMoneyAudio);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public void ReachEndPoint()
|
|||
|
|
{
|
|||
|
|
switch (e_StuffType)
|
|||
|
|
{
|
|||
|
|
case E_StuffType.Money:
|
|||
|
|
PlayAudio(arriveAudioNumber, MyConstant.ArriveMoneyAudio);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
endAction?.Invoke();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="number"></param>
|
|||
|
|
public void PlayAudio(int number, string audio)
|
|||
|
|
{
|
|||
|
|
StartCoroutine(E_PlayAudio(number, YooAssetManager.Instance.LoadAssetSync<AudioClip>(PackagesName.GameData, audio)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ЧЭ<D0A7><D0AD>
|
|||
|
|
/// </summary>
|
|||
|
|
private IEnumerator E_PlayAudio(int number, AudioClip audioClip)
|
|||
|
|
{
|
|||
|
|
for (int i = 0; i < number; i++)
|
|||
|
|
{
|
|||
|
|
AudioManager.Instance.PlaySound(audioClip);
|
|||
|
|
yield return new WaitForSeconds(0.08f);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public void Reclaim()
|
|||
|
|
{
|
|||
|
|
CachePoolManager.Instance.Put(this.gameObject);
|
|||
|
|
}
|
|||
|
|
}
|