83 lines
1.9 KiB
C#
83 lines
1.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
/// <summary>
|
|
/// 技能车
|
|
/// </summary>
|
|
public class SkillCar : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// 原本的材质球
|
|
/// </summary>
|
|
public Material thisMaterial;
|
|
|
|
/// <summary>
|
|
/// 闪烁材质球
|
|
/// </summary>
|
|
public Material flashingMaterial;
|
|
|
|
/// <summary>
|
|
/// 材质渲染
|
|
/// </summary>
|
|
public MeshRenderer[] meshRenderers;
|
|
|
|
/// <summary>
|
|
/// 闪烁特效
|
|
/// </summary>
|
|
private Coroutine flashingCoroutine;
|
|
|
|
private void OnDisable()
|
|
{
|
|
if(flashingCoroutine!=null)
|
|
{
|
|
StopCoroutine(flashingCoroutine);
|
|
flashingCoroutine = null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 闪烁
|
|
/// </summary>
|
|
public void Flashing(UnityAction callBack)
|
|
{
|
|
flashingCoroutine= StartCoroutine(IE_Flashing(callBack));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 停止闪烁
|
|
/// </summary>
|
|
public void StopFlashing()
|
|
{
|
|
if (flashingCoroutine != null)
|
|
{
|
|
StopCoroutine(flashingCoroutine);
|
|
flashingCoroutine = null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 闪烁协程
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private IEnumerator IE_Flashing(UnityAction callBack)
|
|
{
|
|
UIManager.Instance.GetUI<GameUI>().SetShimmerCountDownSetActive(true);
|
|
for (int i = 0; i < 10; i++)
|
|
{
|
|
for (int j = 0; j < meshRenderers.Length; j++)
|
|
{
|
|
meshRenderers[j].material = flashingMaterial;
|
|
}
|
|
yield return new WaitForSeconds(0.2f);
|
|
for (int j = 0; j < meshRenderers.Length; j++)
|
|
{
|
|
meshRenderers[j].material = thisMaterial;
|
|
}
|
|
yield return new WaitForSeconds(0.2f);
|
|
}
|
|
callBack?.Invoke();
|
|
}
|
|
}
|