参考来源
跟来源的电子图书翻页多了点细节上的变化。
using UnityEngine; using System.Collections; using System.Resources;public class MovePic : MonoBehaviour {public Texture2D[] texAll; //图片序列储存的图片组,注意需要定义这个组的size大小为图片序列的数量public GameObject plane; //指定为图片序列需要在哪个gameobject物体播放public string path="img"; //图片序列存放的路径,注意只能存放在Assets的Resources文件夹中,如果没有就自己建立一个。如果是放在Resources文件夹中的img文件夹中,这个填写为img.// 如果是放在Resources文件夹中的img文件夹中的1文件夹中,这个填写为img/1. public string fileName = "3DExample7 "; //图片序列文件的文件名称, 比如图片序列为 camera1-1。png camera1-2。png camera1-3。png...... 等等 这个地方就填写名称不变的内容,camera1- //不需要加后缀名.png 另外需要注意序列图片的命名格式 需要以0开始计数,同时 不要在序列号前位数加0. // 比如 camera1-001。png 这需要修改为 camera1-1.pngpublic bool xuhuan = true; //定义是否是循环播放public int buff = 4; //定义加载几张图片后清理缓存int index = 0;int index2 = 0;int suliang = 0;float T;string picNum;void Start(){texAll=new Texture2D[100];texAll[0] = (Texture2D)Resources.Load(path + "/" + fileName + "001", typeof(Texture2D)); //首先加载第一张图片显示 }void Update(){#if UNITY_IPHONEforeach (Touch touch in Input.touches){ if (touch.phase == TouchPhase.Moved ) {T = -Input.GetAxis("Mouse X"); if(xuhuan==true) {index=(index+(int)(T*0.5f))%texAll.Length;Mathf.Abs(index);if (index<0){index2=(texAll.Length-1)+index; }else{index2=index;}}else{ index=index+(int)(T*0.5f);if (index<=0){index2=0;index=0;}else if(index>=texAll.Length){index2=texAll.Length-1;index=texAll.Length-1;}else {index2=index;} } }}#elseif (Input.GetMouseButton(0))//当鼠标左键点击时候 {T = Input.GetAxis("Mouse X");//获取鼠标x轴移动增量if (xuhuan == true)//如果定义是循环播放 {index = (index + (int)(T * 3f)) % texAll.Length;//取图片数量的余数if (index < 0){index2 = texAll.Length + index;//如果小于0那么就取最大值 }else{index2 = index;//其他的相等 }}else//如果不是循环 {index = index + (int)(T * 3f);//获取序号if (index <= 0){index2 = 0;//小于0就赋值为0index = 0;}else if (index >= texAll.Length){index2 = texAll.Length - 1; //大于最大值就赋值为最大值index = texAll.Length - 1;}else{index2 = index; //其余的相等 }}}#endifif (texAll[index2] == null){picNum=RepairZero(index2.ToString (),3);texAll[index2] = (Texture2D)Resources.Load(path + "/" + fileName + picNum, typeof(Texture2D));//给图片序列加载当前图片suliang++;//加载图片计数增加1 }if (suliang > buff)//如果图片计数大于设定值 {for (var i = 0; i < texAll.Length; i++){if (i != index2){texAll[i] = null;}}Resources.UnloadUnusedAssets();//清理缓存suliang = 1;//重新计数图片数量 }renderer.material.mainTexture = texAll[index2];//赋值图片序列给物体中的材质 }/// <summary>/// 指定字符串的固定长度,如果字符串小于固定长度,/// 则在字符串的前面补足零,可设置的固定长度最大为9位/// </summary>/// <param name="text">原始字符串</param>/// <param name="limitedLength">字符串的固定长度</param>public static string RepairZero(string text, int limitedLength){//补足0的字符串string temp = "";//补足0for (int i = 0; i < limitedLength - text.Length; i++){temp += "0";}//连接texttemp += text;//返回补足0的字符串return temp;}}