Unity3D 动态加载 图片序列正反播放

 

参考来源

跟来源的电子图书翻页多了点细节上的变化。

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;}}

 

转载于:https://www.cnblogs.com/bkycjj/p/3914931.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【IT笔试面试题整理】寻找二叉树两节点的最近的公共祖先

【试题描述】 求二叉树中任意两个节点的最近公共祖先也称为LCA问题&#xff08;Lowest Common Ancestor&#xff09;。 二叉查找树 如果该二叉树是二叉查找树&#xff0c;那么求解LCA十分简单。 基本思想为&#xff1a;从树根开始&#xff0c;该节点的值为t&#xff0c;如果t大…

解释spring,struts,hibernate优缺点

解释spring,struts,hibernate优缺点 Struts优点&#xff1a;对视图层进行封装 更好的分离视图层和控制层 对数据进行封装 缺点: 1 、转到展示层时&#xff0c;需要配置forward&#xff0c;每一次转到展示层&#xff0c;相信大多数都是直接转到jsp&#xff0c;而涉及到转向&…

java单例模式的七种写法_Java设计模式之单例模式的七种写法

什么是单例模式&#xff1f;单例模式是一种常见的设计模式&#xff0c;单例模式的写法有很多种&#xff0c;这里主要介绍三种&#xff1a; 懒汉式单例模式、饿汉式单例模式、登记式单例 。单例模式有以下特点&#xff1a;1、单例类只能有一个实例。2、单例类必须自己创建自己唯…

在Hadoop集群上,搭建HBase集群

(1)下载Hbase包,并解压:这里下载的是0.98.4版本,对应的hadoop-1.2.1集群 (2)覆盖相关的包:在这个版本里,Hbase刚好和Hadoop集群完美配合,不需要进行覆盖. 不过这里写了个覆盖的脚本,可以留着备用. find -name hadoop*jar | sed s/2.2.0/2.3.0/g | sed s/.\///g > f.log rm .…

java js跳出循环_[Java教程]js循环的总结

[Java教程]js循环的总结02016-10-07 15:00:14js原生的循环有两种&#xff0c;一般的for循环和for...in循环。还有一种常用jQuery.each()循环。一. js原生循环a. for循环&#xff0c;代码如下&#xff1a;var myArray [1,2,3];for (var i 0; i < myArray.length; i) {conso…

Beta版本冲刺

1.凡事预则立&#xff0c;在Beta开始前&#xff0c;以小组为单位&#xff0c;在敏捷冲刺前发布一篇博客&#xff0c;描述&#xff1a; a. 下一阶段需要改进完善的功能&#xff1a; 无 b. 下一阶段新增的功能 修改密码功能 管理员功能 生成表格的优化 c. 需要改进的团队分工&…

Struts2国际化

一&#xff1a;简单理解 国际化简称i18n&#xff0c;其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。 随着全球经济的一体化&#xff0c;软件开发者应该开发出支持多国语言、国际化的Web应用。对于Web应用来说&#xff0c;同样的页面在不同的语言环…

NOI经验谈

对于NOI来说&#xff0c;甚至比硬实力更加重要。我觉得一场考试这么几件事要做&#xff1a;看题&#xff0c;选题&#xff0c;分析&#xff0c;编码&#xff0c;调试&#xff0c;测试&#xff0c;骗分。 1、看题 拿到试卷以后的第一件事就是看题。看题不是看小说&#xff0c;要…

ReactiveCocoa源码拆分解析(四)

&#xff08;整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载&#xff09; 上一章节简要的说明了如何实现的热信号。但是像那么写&#xff0c;貌似不是非常优雅。这一章节我们会把冷热信号转换写的跟ReactiveCocoa一样优雅。 Reactive…

用Emacs编写mybatis

<?xml version"1.0" encoding"utf-8"?> 用Emacs编写mybatis用Emacs编写mybatis Table of Contents 1. 效果图2. 配置1 效果图 2 配置 现在web开发&#xff0c;最流行的orm框架非mybatis莫属了&#xff0c;它功能强大&#xff0c;编写简单灵活&…

lambda显式声明返回值

10.21 编写一个lambda&#xff0c;捕获一个局部int变量&#xff0c;并递减变量值&#xff0c;直至它变为0.一旦变量变为0&#xff0c;再调用lambda应该不再递减变量。lambda应该返回一个bool值&#xff0c;指出捕获的变量是否为0. #include<iostream> #include<algori…

【Codeforces Round #452 (Div. 2) C】 Dividing the numbers

【链接】 我是链接,点我呀:) 【题意】 在这里输入题意 【题解】 n为偶数。 l 1, r n (l,r)放在一组 l,r-- 新的l,r放在另外一组 直到l1r 这个时候,判断两组的和,如果一样的话,分散在两组 差为1否则差为0n为奇数 l 2,r n (l,r)放在一组 l,r-- 新的l,r放在另外一组 直到l1r…

java中reject方法作用_Java BindingResult.rejectValue方法代碼示例

本文整理匯總了Java中org.springframework.validation.BindingResult.rejectValue方法的典型用法代碼示例。如果您正苦於以下問題&#xff1a;Java BindingResult.rejectValue方法的具體用法&#xff1f;Java BindingResult.rejectValue怎麽用&#xff1f;Java BindingResult.r…

java方法参数

Java程序设计语言总是采用值调用。也就是说&#xff0c;方法得到的是所有参数的一个拷贝&#xff0c;特别是方法不能修改传递给它的任何参数变量的内容。 基本类型参数 1&#xff09;X被初始化为percent值的一个拷贝&#xff1b; 2&#xff09;X被乘以3等于30。但是percent仍然…

SaltStack源码分析之:master端执行salt模块大致流程

2019独角兽企业重金招聘Python工程师标准>>> ##JOB执行流程 先看下官网对于master端的工作流程的介绍&#xff1a; The Salt master works by always publishing commands to all connected minions and the minions decide if the command is meant for them by ch…

myecplise新建Maven项目Filter选什么,使用myeclipse建立maven项目

myecplise新建Maven项目Filter选什么 使用myeclipse建立maven项目 1234567分步阅读maven是管理项目的&#xff0c;myeclipse是编写代码的。第一次写项目都要配置好多东西&#xff0c;很麻烦&#xff0c;now 来看看怎样新建一个maven项目。 工具/原料 myeclipsemaven方法/步骤 1…

python参数传递时不构造新数据对象_关于函数的参数传递(parameter passing),以下选项中描述错误的是_学小易找答案...

【单选题】下面代码的输出结果是: a [] for i in range(2,10): count 0 for x in range(2,i-1): if i % x 0: count 1 if count 0: a.append(i) print(a)【单选题】Python3.0正式发布的年份是【单选题】以下选项中,对于函数的定义错误的是【单选题】关于函数的参数传递(pa…

关于TCP/IP与数据传输

一、TCP/IP的具体含义&#xff1a; 从字面意思来讲&#xff0c;很多人会认为TCP/IP是指TCP与IP这两种协议。有时确实也可以说是这两种协议&#xff0c;但是大部分情况下所说的是利用IP进行通信时所必须用到的协议群的统称。具体来说IP,ICMP,TCP,UDP,FTP以及HTTP等都属于TCP/IP协…

geohash php_空间索引-geohash算法实现

算法简介geohash是实现空间索引的一种算法,其他实现空间索引的算法有:R树和其变种GIST树、四叉树、网格索引等算法基本原理geohash算法将地球理解为一个二维平面&#xff0c;将平面递归分解成更小的子块&#xff0c;每个子块在一定经纬度范围内拥有相同的编码&#xff0c;这种方…