【狗刨学习网】class FrameAnimation { private float fps = .0f; private Rect drawPos; private float time = 0; private int currentIndex = 0; public void DrawFrameAnimation(Texture[] frameTex) { int length = frameTex.Length; GUI.DrawTexture(drawPos, frameTex[currentIndex]); time = Time.deltaTime; if(time >= 1.0f/fps) { currentIndex; time = 0; if(currentIndex>= length-1) { currentIndex = length - 1; } } } public FrameAnimation(Rect drawPos,float fps) { this.drawPos = drawPos; this.fps = fps; }}在unity3D中新建一个脚本直接调用该类。using UnityEngine;using System.Collections;public class DrawAnimation : MonoBehaviour { //private Resources resource; private Rect drawPos = new Rect(,0,,); private Object[] texObject; public bool isCanDraw = false; private string path; Texture[] frameTex; private FrameAnimation frameAni; // Use this for initialization void Start () { LoadTexture(texObject,"FrameTex"); frameAni = new FrameAnimation( drawPos, ); } void OnGUI() { if(GUILayout.Button("@#@")) { isCanDraw = true; } if(isCanDraw) { frameAni.DrawFrameAnimation(frameTex); } } void LoadTexture(Object[] texObj, string path) { texObj = Resources.LoadAll(path); frameTex = new Texture[texObj.Length]; texObj.CopyTo(frameTex, 0); }}其实完全没有必要写成类,但是为了方便修改和最近在练习写代码的习惯,希望逐渐面向对象编程,希望可以提高代码的灵活性和复用性,所以就当是练习了!/9/:发现把所有图片一次性全部导入,加载相当的消耗资源,在PC上都会卡上一下,何况在移动平台上,特别有的时候图片稍微多的时候。所以把代码稍作修改:int currentIndex = 0; Texture frameAniTex; // Use this for initialization void Start () { } // Update is called once per frame void FrameAnimation() { //isAnimating = true; frameAniTex = resources.GetTexture("BootAnim/" currentIndex.ToString("D4")); GUI.DrawTexture(frameAnimPos,frameAniTex); if (currentIndex < length - 1) { time = Time.deltaTime; if (time >= 1.0f / fps) { currentIndex; time = 0; if (currentIndex == length - 1) { Resources.UnloadUnusedAssets(); ///加载完成后,即播放完毕后,卸载掉这些资源,好像跟播放序列帧动画扯远了,这是加载资源管理才对、、、、、 } } } }这样做的好处是一张一张的加载资源,不像上面的那样一次性加载完,但是图片的数量即length的数量需要自己手动传入,因为无法根据代码动态获取。声明:此篇文档时来自于【狗刨学习网】社区,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。更多精彩内容:www.gopedu.com
推荐整理分享Unity3D中播放序列帧动画(unityui播放视频),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity3d点击物体播放视频,unity视频播放,unity如何播放动画,unity按钮播放视频,unity如何播放动画,unity如何播放动画,unity播放序列帧,unity 播放,内容如对您有帮助,希望把文章链接给更多的朋友!
unity3d中动态增加、建立场景 在Unity3d中,场景(scene)多半通过在buildsettings中点击addcurrent或者把场景拖进面板实现,假如不这么做,你的场景便不会被加载,哪怕你制定了绝对路径
Unity3d人物的名称与血条的绘制方法 人物的名称与血条的绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移
Unity3D教程:性能优化 1、使用静态类型化在JavaScript中,使用静态类型化(StaticTyping)来代替动态类型化(DynamicTyping)对性能的优化非常重要。unity使用一种叫做类型推导(Typ