using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
public class Multi_AnimationPlay : MonoBehaviour
{
/// <summary>
/// 动画相机
/// </summary>
public Camera[] cameras;
/// <summary>
/// 相机上 的动画
/// </summary>
[HideInInspector]
public Animation[] ani_Cameras;
/// <summary>
/// 获取每一个动画的时长
/// </summary>
[HideInInspector]
public float[] time_AnimationClips;
/// <summary>
/// 当前播放的动画
/// </summary>
[HideInInspector]
public int currentAni = 0;
/// <summary>
/// 上一个播放的动画
/// </summary>
[HideInInspector]
public int lastAni = 0;
private bool aniIsPlaying = false;
void Awake()
{
InitDatas();
}
void FixedUpdate()
{
if (aniIsPlaying)
{
if (!ani_Cameras[currentAni].isPlaying)
{
aniIsPlaying = false;
int index = currentAni + 1;
NextPlay(index);
}
}
}
private void NextPlay(int index)
{
if (index >= cameras.Length)
{
index = 0;
}
aniIsPlaying = true;
lastAni = currentAni;
currentAni = index;
cameras[lastAni].enabled = false;
ani_Cameras[lastAni].Stop();
cameras[currentAni].enabled = true;
ani_Cameras[currentAni].Play();
}
void InitDatas()
{
if (cameras.Length > 0)
{
ani_Cameras = new Animation[cameras.Length];
for (int i = 0; i < cameras.Length; i++)
{
ani_Cameras[i] = cameras[i].GetComponent<Animation>();
}
time_AnimationClips = new float[ani_Cameras.Length];
for (int j = 0; j < ani_Cameras.Length; j++)
{
time_AnimationClips[j] = ani_Cameras[j].clip.length;
}
for (int m = 0; m < cameras.Length; m++)
{
cameras[m].enabled = false;
}
}
aniIsPlaying = false;
lastAni = currentAni = 0;
}
public void Play()
{
aniIsPlaying = true;
lastAni = currentAni = 0;
cameras[currentAni].enabled = true;
ani_Cameras[currentAni].Play();
}
public void Stop()
{
aniIsPlaying = false;
cameras[currentAni].enabled = false;
ani_Cameras[currentAni].Stop();
lastAni = currentAni = 0;
}
}
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
public class Multi_AnimationPlay : MonoBehaviour
{
/// <summary>
/// 动画相机
/// </summary>
public Camera[] cameras;
/// <summary>
/// 相机上 的动画
/// </summary>
[HideInInspector]
public Animation[] ani_Cameras;
/// <summary>
/// 获取每一个动画的时长
/// </summary>
[HideInInspector]
public float[] time_AnimationClips;
/// <summary>
/// 当前播放的动画
/// </summary>
[HideInInspector]
public int currentAni = 0;
/// <summary>
/// 上一个播放的动画
/// </summary>
[HideInInspector]
public int lastAni = 0;
private bool aniIsPlaying = false;
void Awake()
{
InitDatas();
}
void FixedUpdate()
{
if (aniIsPlaying)
{
if (!ani_Cameras[currentAni].isPlaying)
{
aniIsPlaying = false;
int index = currentAni + 1;
NextPlay(index);
}
}
}
private void NextPlay(int index)
{
if (index >= cameras.Length)
{
index = 0;
}
aniIsPlaying = true;
lastAni = currentAni;
currentAni = index;
cameras[lastAni].enabled = false;
ani_Cameras[lastAni].Stop();
cameras[currentAni].enabled = true;
ani_Cameras[currentAni].Play();
}
void InitDatas()
{
if (cameras.Length > 0)
{
ani_Cameras = new Animation[cameras.Length];
for (int i = 0; i < cameras.Length; i++)
{
ani_Cameras[i] = cameras[i].GetComponent<Animation>();
}
time_AnimationClips = new float[ani_Cameras.Length];
for (int j = 0; j < ani_Cameras.Length; j++)
{
time_AnimationClips[j] = ani_Cameras[j].clip.length;
}
for (int m = 0; m < cameras.Length; m++)
{
cameras[m].enabled = false;
}
}
aniIsPlaying = false;
lastAni = currentAni = 0;
}
public void Play()
{
aniIsPlaying = true;
lastAni = currentAni = 0;
cameras[currentAni].enabled = true;
ani_Cameras[currentAni].Play();
}
public void Stop()
{
aniIsPlaying = false;
cameras[currentAni].enabled = false;
ani_Cameras[currentAni].Stop();
lastAni = currentAni = 0;
}
}