zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    字符串----不可重叠的最长重复子串
    字符串----最长重复子串
    字符串----HDU-1358
    字符串----hiho字符串(尺取法)
    字符串匹配(二)----KMP算法
    字符串匹配(一)----Rabin-Karp算法
    字符串----最短摘要生成(尺取法)
    【Hibernate 检索策略】
    【Hibernate 多表查询】
    【Hibernate QBC】
  • 原文地址:https://www.cnblogs.com/llstart-new0201/p/8258429.html
Copyright © 2011-2022 走看看