//
//方法一 序列帧
// public Texture2D[] TexArray;
//
// private int currentIndex;
//
// private float countTime;
//
// void Start ()
// {
// currentIndex = 0;
// countTime = 0.0f;
// }
//
//
// void OnGUI()
// {
// GUI.DrawTexture (new Rect (10, 10, 100, 100), TexArray [currentIndex]);
//
// countTime++;
//
// if (countTime%50 ==0) // %取余数 当countTime整除50时执行 相当于50帧后换图片 50改成越大间隔越长
// {
// currentIndex++;
// if (currentIndex == TexArray.Length)
// {
// currentIndex = 0;
// countTime = 0;
// }
// }
// }
// 方法二 协同
// public Texture2D[] TexArray;
//
// private int currentIndex;
//
// void Start ()
// {
// StartCoroutine ("WaitForNext");
//
// }
//
// void OnGUI()
// {
// GUI.DrawTexture (new Rect (10, 10, 100, 100), TexArray [currentIndex]);
// }
//
// IEnumerator WaitForNext()
// {
// while (true) //死循环 用于一直执行下去
// {
// yield return new WaitForSeconds(1.0f);
// currentIndex++;
//
//
// if (currentIndex == TexArray.Length)
// {
// currentIndex = 0;
// }
// }
//
//
// }
//方法三 Invoke
//public Texture2D[] TexArray;
//private int currentIndex;
//void Start()
//{
// Invoke("ChangeIndex", 1.0f); //1秒之后执行ChangeIndex()函数
//}
//void OnGUI()
//{
// GUI.DrawTexture(new Rect(10, 10, 100, 100), TexArray[currentIndex]);
//}
//void ChangeIndex()
//{
// currentIndex++;
// if (currentIndex == TexArray.Length)
// {
// currentIndex = 0;
// }
// Invoke("ChangeIndex", 1.0f); //隐约有点递归的味道 执行完后再执行
//}
//方法四 Invoke||material.mainTexture
public Texture2D[] TexArray;
private int currentIndex;
void Start()
{
Invoke("ChangeIndex", 0.1f); //1秒之后执行ChangeIndex()函数
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Y))
{
PlayInvoke();
}
if (Input.GetKeyDown(KeyCode.N))
{
StopInvoke();
}
GetComponent<Renderer>().material.mainTexture = TexArray[currentIndex];
}
void ChangeIndex()
{
currentIndex++;
if (currentIndex == TexArray.Length)
{
currentIndex = 0;
}
Invoke("ChangeIndex", 0.05f);
}
public void PlayInvoke()
{
Invoke("ChangeIndex", 0.05f);
currentIndex = 0;
}
public void StopInvoke()
{
CancelInvoke("ChangeIndex");
currentIndex = 0;
}