unity 序列帧播放

    [SerializeField]
    private Image m_ScreenImage;             //序列帧播放的image
    [SerializeField]
    private int m_FrameRate = 30;                  // 一秒播放的帧数
    [SerializeField]
    private string m_strFolder= "";       // 序列帧通过Resource.load的加载,所以序列帧文件要放在Resource目录下,此变量为Resource下序列帧的存放目录
    [SerializeField]
    private string m_strPreName= "";    //每一序列帧文件名字相同部分,如第四十帧文件全名为9_Bumper_00040,则此处应为9_Bumper_000
    [SerializeField]
    private int m_nFromNo=0;  //开始播放帧
    [SerializeField]
    private int m_nEndNo=244;//结束帧
    [SerializeField]
    private int m_nFixLen = -1; //序列帧名字补全位数,-1为不补全,如第四十帧文件全名为9_Bumper_00040,m_strPreName为9_Bumper_000,则补全位数为2

    public void StartPlay(string id)
    {
        StartCoroutine(Play());
    }

   private IEnumerator Play()
    {int nCurrentTextureIndex = m_nFromNo;
        while (true)
        {
            // So long as the textures should be playing...
            Sprite t;
            //
            string strImagePath = "";
            string strNum = "";
            if (m_nFixLen == -1)
            {
                strNum = nCurrentTextureIndex.ToString();
            }
            else
            {
                string strFormat = "{0:";
                for (int i = 0; i < m_nFixLen; ++i)
                {
                    strFormat += "0";
                }
                strFormat += "}";
                strNum = string.Format(strFormat, nCurrentTextureIndex);
            }

            strImagePath = m_strFolder + "/" + m_strPreName + strNum;
            t = Resources.Load<Sprite>(strImagePath);
            m_ScreenImage.sprite = t;// Then increment the texture index (looping once it reaches the length of the textures array.
            //nCurrentTextureIndex = m_nFromNo + (nCurrentTextureIndex - m_nFromNo + 1) % (m_nEndNo - m_nFromNo + 1);//m_AnimTextures.Length;
            nCurrentTextureIndex++;
// Wait for the next frame.
            yield return m_FrameRateWait;
        }
    }

    void Start()    {        m_FrameRateWait = new WaitForSeconds(1f / m_FrameRate);    }

原文地址:https://www.cnblogs.com/llstart-new0201/p/8258429.html

时间: 2024-11-08 22:43:15

unity 序列帧播放的相关文章

Unity自定义组件之序列帧播放组件

我们知道在unity中播放序列帧动画有两种方式,第一种是利用Unity自带的animation组件来播放,我们只需要在工程目录中全选选中所有我们需要播放的图片,将其拖动到Hiercarchy上,Unity就会帮我们自动创建一个animation片段,我们就可以用animation组件来控制我们的动画,不过这种方式创建的图片Sprite Renderer类型的.第二种方式就是创建一个Image组件,利用代码创建一个sprite,写一段代码利用Update函数来逐帧替换Image的sprite来实现

unity 中播放视频

Unity视频播放有很多种实现方式,可根据要求来选择适当的实现,这里总结一下: 1. MovieTexture Unity标准接口,支持的播放视频格式有.mov..mpg..mpeg..mp4..avi和.asf.仅支持PC端的本地视频播放. 1. 在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上 在新建的一个plane平面,将其纹理绑定为电影纹理即可 //设置当前对象的主纹理为电影纹理 renderer.material.mainTexture = mo

Unity Shader播放序列帧动画

1 Shader "LordShader/AnimateSprite" { 2 Properties { 3 _MainTint ("Diffuse Color", Color) = (1,1,1,1) //颜色属性,可以在u3d inspector面板控制该变量 4 _MainTex("Base (RGB)",2D) = "white" {} //贴图 5 _TexWidth("Sheet Width",

Unity中播放带有alpha通道格式为Mp4的视频

问题: Unity中实现播放透明的MP4视频时出现黑点 解决办法:    使用Unity自带的shader去除黑点 1:shader代码如下所示 Shader "Unlit/NewUnlitShader" { Properties { _Color("Color", Color) = (1,1,1,1) //_MainTex ("Albedo (RGB)", 2D) = "white" {} _AlphaVideo("

Unity 音乐播放全局类

今天晚了LOL, 发现里面的声音系统做得很不错,于是最近就写了一份反正以后也用的到,2D音乐全局播放. 项目跟PoolManager对象池插件结合了. 解决的问题: 1. 已经播放的声音,可以马上暂停或者减少音量等等 2. 实现音乐全局控制 3. 音乐和音效分开控制 4. 音乐重叠播放 类如下: AudioShot 音乐实体类 SoundController 全局音乐控制类 SoundPanel 音乐面板 代码如下: AudioShot实体类: using UnityEngine; using

UI序列帧播放Shader

1:UI动画序列帧shader=======================================分割线========================================Shader "Custom/ImageAnim" {Properties{[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}_Color("Tint", Colo

关于图片序列帧播放,干净整洁版

html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>序列帧</title> <meta name="format-detection" content="telephone=no"> <meta name="viewport&quo

【转】unity自带寻路Navmesh入门教程(一)

http://liweizhaolili.blog.163.com/blog/static/16230744201271161310135/ 说明:从今天开始,我阿赵打算写一些简单的教程,方便自己日后回顾,或者方便刚入门的朋友学习.水平有限请勿见怪.不过请尊重码字截图录屏的劳动,如需转载请先告诉我.谢谢! unity自从3.5版本之后,增加了NavMesh寻路的功能.在此之前,unity用户只能通过第三方插件(如Astar寻路插件)等做寻路功能.阿赵我也使用过A*寻路插件,A*的原理并不复杂,有

Unity 视频播放杂谈

http://www.cnblogs.com/zsb517/p/4060814.html 背景: 游戏机中想加入舞蹈元素,最先的想法是开发舞蹈游戏,然后通过动画来表现舞蹈,给用户提供舞蹈教学方面的体验,但是舞蹈游戏本身的开发就需要很长的时间(就人太少),不用谈后续的舞蹈和音乐的版权啦,所以现在想走另外一条途径,在unity中播放舞蹈教学视频,加上UI和一些检测来实现舞蹈教学,而且这套框架写完之后,内容很容易扩展,毕竟不需要针对每个舞蹈设计动画.但是Unity中视频播放就是各种蛋疼,尤其是在and