Unity —— 逐幀播放gif圖片

tm也是服了CSDN的人,搞個(gè)gif那么難!?。。。?/h2>
codes

這個(gè)人也是不明白一些新手難以理解這些代碼,Vector3d搞出Vector2d來,真tm奇葩。

還有這個(gè)家伙:

xs,又一個(gè)憨批

哎,這家伙跟這個(gè)差不多.............

看來CSDN是沒有前途了........

不鬧了!進(jìn)入正題!??!

首先,我們可以圖片查看工具工具將它逐幀,沒有這個(gè)功能下載其他的看圖軟件?。?!

作者這里用的是WPS

然后重命名,這里我用Python代碼來rename的。

import os
files = os.listdir()
for i in range(1, len(files) + 1):
    os.renames(files[i-1], "loading{}.png".format(i))

運(yùn)行它就得了!然后把loading21.png給刪掉,最后在Unity引擎里加載一下,讓它生成meta文件。(Assets文件下依次創(chuàng)建Resources/Textures/Loadings/,loading文件夾創(chuàng)建由你,作者這里是搞開發(fā)順便把學(xué)習(xí)經(jīng)驗(yàn)分享至blog)

之后,我們?cè)賱?chuàng)建一個(gè)(UI/Raw Image)

導(dǎo)入loading1.png

我們?cè)侔训谝粠o貼圖到Texture里。

imgs3.png

接下來,上代碼!這里我創(chuàng)建一個(gè)新的腳本——LoadingImage.cs。(自己看代碼!)

using UnityEngine;
using UnityEngine.UI;

public class LoadingImage : MonoBehaviour
{
    int loadranges = 1;
    GameObject ldimg;
    float stime;
    void Start()
    {
        ldimg = GameObject.Find("LoadingImage");
        stime = Time.time;
    }
    void Update()
    {
        if (loadranges >= 20)
        {
            loadranges = 1;
        } else
        {
            if (Time.time - stime >= 0.055)
            {
                ldimg.GetComponent<RawImage>().texture =
                    (Texture)Resources.Load("Textures/Loadings/loading" + loadranges.ToString());
                loadranges++;
                stime = Time.time;
            }
        }
    }
}

解析:

作者的gif圖片只有20幀,把它分解后給它重命名(Python代碼)。之后,我們用GameObject.Find()函數(shù)查找對(duì)象,為了合理的將圖片每一幀呈現(xiàn)出來,我們得用Time.time(Type = float)將它設(shè)置為開始時(shí)間(變量:stime)我們?cè)谟肨ime.time - stime得出間隔時(shí)間,再將代碼的末尾給它重置變量。之后,我們得判斷它的讀取幀數(shù)是否超過20(if loadranges >= 20),如果不是,逐幀呈現(xiàn)出來(ldimg.GetComponent<RawImage>())來呈現(xiàn)出來,而Resources.Load()時(shí)導(dǎo)入Resources文件夾的內(nèi)容,所以得手動(dòng)創(chuàng)建Resources文件夾,在用Texture關(guān)鍵詞強(qiáng)制轉(zhuǎn)換。最后,我們將loadranges++將每一幀文件名末尾數(shù)字增加。

最后,我們來看一下效果:

呈現(xiàn)效果

怎么樣?是不是比CSDN上的人好多了?

Nice?。?!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容