国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unity每日一記】資源加載相關(guān)你掌握多少?

這篇具有很好參考價值的文章主要介紹了【Unity每日一記】資源加載相關(guān)你掌握多少?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Unity每日一記】資源加載相關(guān)你掌握多少?,# Unity精華一記,unity,游戲引擎,ui,c#


?????個人主頁:@元宇宙-秩沅

????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?!

????? 本文由 秩沅 原創(chuàng)

????? 收錄于專欄unity每日一記

????推薦文章?


?【軟件設(shè)計師高頻考點暴擊】

?【Unityc#專題篇】之c#系統(tǒng)化大禮包】

?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs

?【unity本站最全系列】unity常用API大全一篇文章足以
【Unity每日一記】資源加載相關(guān)你掌握多少?,# Unity精華一記,unity,游戲引擎,ui,c#


??




??Resources資源動態(tài)加載


【Unity每日一記】資源加載相關(guān)你掌握多少?,# Unity精華一記,unity,游戲引擎,ui,c#

同步加載

5種資源加載的方式,Resource加載介紹


  • Resources(只能加載Resources目錄中的資源)
  • AssetBundle(只能加載AB資源,當前設(shè)備允許訪問的路徑都可以)
  • WWW(可以加載任意處資源,包括項目外資源(如遠程服務(wù)器))
  • AssetDatabase(只能加載Assets目錄下的資源,但只能用于Editor)
  • UnityWebRequest(可以加載任意處資源,是WWW的升級版本)

資源加載適用于需要加載資源較多的 情況就不用一個一個的拖拽進去



關(guān)鍵字:@ ,as

卸載AB包的方法: Resource. UnLoadAsset

void Start()
    {

        Object obj= Resources.Load("sound");
        //AudioClip ac = obj as AudioClip;
        AudioClip ac = (AudioClip)obj;
        AudioSource.PlayClipAtPoint(ac, transform.position);
        
        //Resources.LoadAll<AudioClip>("Prefabs");
        AudioClip[] audioClips= Resources.LoadAll<AudioClip>("");
        foreach (var item in audioClips)
        {
            Debug.Log(item);
        }

        //Resources.UnloadAsset
    }
  • C#中的回收機制是系統(tǒng)自動回收的,有多種回收機制,不像其他語言需要手動回收

    注意:
    //預(yù)設(shè)體對象加載需要實例化
    //其它資源加載一般直接用
    #endregion

Resource資源加載操作


加載資源前首先需要在project面板中創(chuàng)建Resource名字的文件夾,為固定文件夾用于資源加載

以加載AudioClip類型的資源為例:

  • 根目錄加載 Resource.Load< AudioClip>(“voice”);
  • 子目錄加載 Resource.Load ( @ " 子目錄名/ voice") ;
  • 另一種形式:
    Object xx = Resource.Load(“voice”);
    AudioClip yy as xx ; // 顯性類型轉(zhuǎn)換 ,前提是二者兼容
  • 加載同類型所有資源的方法:
    ①根目錄加載: AudioClip [] xx = Resource.AllLoad(" “) ;
    ②子目錄加載:AudioClip [] yy = Resource.AllLoad(” 子目錄名");

  • 1.預(yù)設(shè)體對象
        Object obj = Resources.Load("Cube");
        Instantiate(obj);
  • 2.音效資源
        Object obj3 = Resources.Load("Music/BKMusic");
        //我們不需要實例化 音效切片 我們只需要把數(shù)據(jù) 賦值到正確的腳本上即可
        audioS.clip = obj3 as AudioClip;
        audioS.Play();
  • 3.文本資源

文本資源支持的格式——.txt .xml .bytes .json .html .csv …

        TextAsset ta = Resources.Load("Txt/Test") as TextAsset;
        //文本內(nèi)容
         ta.text
        //字節(jié)數(shù)據(jù)組 
         ta.bytes);
  • 4.圖片
        tex = Resources.Load("Tex/TestJPG") as Texture;

異步加載

如果我們加載過大的資源可能會造成程序卡頓
異步加載 就是內(nèi)部新開一個線程進行資源加載 不會造成主線程卡頓

  • Resources.LoadAsync(“XXX”);
  • 注意:

異步加載 不能馬上得到加載的資源 至少要等待一幀

直接異步加載——適用于加載單個資源

//通過事件監(jiān)聽
    ResourceRequest rq = Resources.LoadAsync<Texture>("Tex/TestJPG")
    rq.completed += LoadOver;
    //completed 是 ResourceRequest 中的委托    
    // AsyncOperation 是 ResourceRequest 的父類
    private void LoadOver( AsyncOperation rq)
    {
       //在事件中添加結(jié)束標識邏輯,這樣我們就知道異步加載完成了
        print("加載結(jié)束");
        //加載完成后 會保存在 ResourceRequest類中的 asset Object類型成員里
        //此時實現(xiàn)賦值
        picture = (rq as ResourceRequest).asset as Texture;
    }

配套協(xié)程異步加載——適用于加載多個資源

//通過協(xié)程的調(diào)度器自己判斷是否加載結(jié)束
   
    StartCoroutine(Load());
    IEnumerator Load()
    {
         ResourceRequest rq = Resources.LoadAsync<Texture>("Tex/TestJPG");
         yield return rq;
   // yield return rq會自己判斷 該資源是否加載完畢了,加載完畢過后才繼續(xù)執(zhí)行后面的代碼 ,因為ResourceRequest 也是YieldInstruction的子類
   
       
        //-------------------------------
         //isDone 和 progress API的應(yīng)用
        while(!rq.isDone)
        {
            //打印當前的 加載進度 
            print(rq.progress);
            yield return null;
        }
        //--------------------------------
        picture = rq.asset as Texture;

    }



資源加載器

利用異步直接加載和委托的使用構(gòu)成簡單的資源加載器

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
//-------------------------------------
//—————————————————————————————————————
//___________項目:       ______________
//___________功能:  簡單的資源管理器
//___________創(chuàng)建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class ResourcesControl 
{
    static  private ResourcesControl control;
    static  public ResourcesControl Control => control;
    private ResourcesControl()
    {
    }

    public void AddResources<T>(string name ,UnityAction<T> source ) where T : Object
    {
        ResourceRequest yb = Resources.LoadAsync<T>(name);
        yb.completed += (reO) =>
        {
            source( (reO as ResourceRequest).asset as T );
        };
    }
}

//外部調(diào)用
private void Start()
{
   GameObject shootball; 
        ResourcesControl.Control.AddResources<GameObject>("Profabs/ball",(sphere)=> {
            shootball = sphere;
        } );
 }

卸載資源

【Unity每日一記】資源加載相關(guān)你掌握多少?,# Unity精華一記,unity,游戲引擎,ui,c#

  • Resources多次重復(fù)加載不會浪費內(nèi)存
    但是 會浪費性能(每次加載都會去查找取出,始終伴隨一些性能消耗)

  • 1.卸載指定資源
    Resources.UnloadAsset 方法
    注意:

     它只能用于一些 不需要實例化的內(nèi)容 比如 圖片 和 音效 文本等
     一般情況下很少單獨使用它
    
  • 2.卸載未使用的資源

    一般在過場景時和GC一起使用
    Resources.UnloadUnusedAssets();
    GC.Collect();


????系統(tǒng)路線學習點擊跳轉(zhuǎn)?


?【Unityc#專題篇】之c#進階篇】

?【Unityc#專題篇】之c#核心篇】

?【Unityc#專題篇】之c#基礎(chǔ)篇】

?【Unity-c#專題篇】之c#入門篇】

?【Unityc#專題篇】—進階章題單實踐練習

?【Unityc#專題篇】—基礎(chǔ)章題單實踐練習

?【Unityc#專題篇】—核心章題單實踐練習


你們的點贊?? 收藏? 留言?? 關(guān)注?是我持續(xù)創(chuàng)作,輸出優(yōu)質(zhì)內(nèi)容的最大動力!、


【Unity每日一記】資源加載相關(guān)你掌握多少?,# Unity精華一記,unity,游戲引擎,ui,c#文章來源地址http://www.zghlxwxcb.cn/news/detail-657330.html


到了這里,關(guān)于【Unity每日一記】資源加載相關(guān)你掌握多少?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Unity每日一記】攝像機相關(guān)代碼API大全

    【Unity每日一記】攝像機相關(guān)代碼API大全

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 :Unity基礎(chǔ)實戰(zhàn) 直接作為子對象課實現(xiàn)簡單跟隨 通過向量的加減更新相機位置來保持簡單的跟隨 差值位置的實時更新 ??????步驟:

    2024年02月12日
    瀏覽(17)
  • 【Unity每日一記】常見的類你都掌握了嗎,沒有就過來看看吧

    【Unity每日一記】常見的類你都掌握了嗎,沒有就過來看看吧

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【unity本站最全系列】unity常用API大全

    2024年02月11日
    瀏覽(18)
  • 【Unity每日一記】如何從圖片中切割對象(一鍵切割圖集的方法你掌握了嗎?)

    【Unity每日一記】如何從圖片中切割對象(一鍵切割圖集的方法你掌握了嗎?)

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【軟件設(shè)計師高頻考點暴擊】 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【u

    2024年04月09日
    瀏覽(29)
  • 【Unity每日一記】關(guān)于物體(敵方)檢測—(向量點乘相關(guān))

    【Unity每日一記】關(guān)于物體(敵方)檢測—(向量點乘相關(guān))

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【unity本站最全系列】unity常用API大全

    2024年02月13日
    瀏覽(51)
  • 【unity每日一記】那些動作基礎(chǔ)你還記得嗎—移動和旋轉(zhuǎn)相關(guān)

    【unity每日一記】那些動作基礎(chǔ)你還記得嗎—移動和旋轉(zhuǎn)相關(guān)

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【unity本站最全系列】unity常用API大全

    2024年02月11日
    瀏覽(47)
  • 【unity每日一記】unity中常見的特性大全

    【unity每日一記】unity中常見的特性大全

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【unity本站最全系列】unity常用API大全

    2024年02月11日
    瀏覽(52)
  • 【Unity每日一記】Unity不知道如何選擇,移動方法,來瞧瞧

    【Unity每日一記】Unity不知道如何選擇,移動方法,來瞧瞧

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【軟件設(shè)計師高頻考點暴擊】 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【u

    2024年04月15日
    瀏覽(65)
  • 【Unity每日一記】WheelColider組件汽車游戲的關(guān)鍵

    【Unity每日一記】WheelColider組件汽車游戲的關(guān)鍵

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【軟件設(shè)計師高頻考點暴擊】 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【u

    2024年02月10日
    瀏覽(45)
  • 【unity每日一記】 Camera相機+ Screen屏幕+動畫機

    【unity每日一記】 Camera相機+ Screen屏幕+動畫機

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【unity本站最全系列】unity常用API大全

    2024年02月10日
    瀏覽(36)
  • 【Unity每日一記】Unity中的計時器——4種方法的實現(xiàn)

    【Unity每日一記】Unity中的計時器——4種方法的實現(xiàn)

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【軟件設(shè)計師高頻考點暴擊】 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【u

    2024年02月06日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包