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

【Unity使用addressables制作資源熱更+實(shí)時(shí)動(dòng)態(tài)熱更基本記錄】

這篇具有很好參考價(jià)值的文章主要介紹了【Unity使用addressables制作資源熱更+實(shí)時(shí)動(dòng)態(tài)熱更基本記錄】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、Addressables基礎(chǔ)操作教程
1、下載Addressables插件
點(diǎn)擊菜單Window / Package Manager,打開(kāi)插件包管理界面,搜索addressables
addressable 熱更新,unity,游戲引擎
Addressables的打包方式其實(shí)也是AssetBundle格式,只是在此基礎(chǔ)上做了一層封裝,方便進(jìn)行管理(比如打包、加載、依賴等)。而我們知道,沒(méi)有加密的AssetBundle是可以使用AssetStudio等工具輕易進(jìn)行資源逆向的。

安裝成功后,可以看到多出了一個(gè)Window / Asset Management / Addressables菜單,
addressable 熱更新,unity,游戲引擎
2、創(chuàng)建Addressables Settings
點(diǎn)擊Groups菜單,點(diǎn)擊Create Addressables Settings按鈕

addressable 熱更新,unity,游戲引擎
此時(shí)工程目錄中會(huì)生成一個(gè)AddressableAssetsData文件夾,里面有很多設(shè)置文件
addressable 熱更新,unity,游戲引擎
我們看回Addressables Groups窗口,可以看到它默認(rèn)創(chuàng)建了一個(gè)組:Default Local Group (Default)
addressable 熱更新,unity,游戲引擎
3、給Group添加資源
創(chuàng)建幾個(gè)預(yù)設(shè)
addressable 熱更新,unity,游戲引擎
文件名字可以任意起,注意不要跟Unity默認(rèn)的文件系統(tǒng)文件夾名字相同,比如Resources、StreamingAssets等

選中資源文件,在Inspector窗口中勾選Addressable,它會(huì)自動(dòng)添加到默認(rèn)的Group中,也可以手動(dòng)拖拽進(jìn)去
addressable 熱更新,unity,游戲引擎
4、創(chuàng)建新的Group
addressable 熱更新,unity,游戲引擎圖中1是默認(rèn)的,一般用作添加打到本地自資源,2用來(lái)打遠(yuǎn)程加載資源

新建看下圖
addressable 熱更新,unity,游戲引擎
其實(shí)每個(gè)Group都是一個(gè)配置文件,可以在AddressableAssetsData / AssetGroups目錄中找到對(duì)應(yīng)的文件,如下
addressable 熱更新,unity,游戲引擎
繼續(xù)往下,我這里給Packed Assets添加了幾個(gè)預(yù)設(shè)

addressable 熱更新,unity,游戲引擎
怎么打包體內(nèi)資源和包體外資源?又怎么加載?往下看。。

5、設(shè)置Build Path與Load Path
在Inspector窗口中,選中Packed Assets,將Build Path改為RemoteBuildPath,將Load Path改為RemoteLoadPath,如下
addressable 熱更新,unity,游戲引擎
這樣Packed Assets打出的資源就在包體外,它會(huì)被打到工程目錄的ServerData目錄中

而加載的時(shí)候,會(huì)去遠(yuǎn)程http://[PrivateIpAddress]:[HostingServicePort]這個(gè)地址加載(這里是localhost,我們可以改成別的IP或域名地址)

addressable 熱更新,unity,游戲引擎
圖1是打包的路徑,圖中2是加載的路徑

在Inspector窗口中,選中Default Local Group,默認(rèn)的Build Path為L(zhǎng)ocalBuildPath,Load Path為L(zhǎng)ocalLoadPath,如下
addressable 熱更新,unity,游戲引擎
這里打出的包就在包體內(nèi),打出的包在Library\com.unity.addressables里面,在Bulid Settings出項(xiàng)目包時(shí),會(huì)自動(dòng)把這個(gè)資源包拷貝到StreamingAssets目錄下。

6、修改RemoteBuildPath和RemoteLoadPath
如果你想修改RemoteBuildPath和RemoteLoadPath,可以在Addressables Groups窗口中點(diǎn)擊Tools/Window/Profiles菜單
addressable 熱更新,unity,游戲引擎
此時(shí)會(huì)打開(kāi)Addressables Profiles窗口,我們可以修改修改RemoteBuildPath和RemoteLoadPath
addressable 熱更新,unity,游戲引擎
這里RemoteLoadPath修改成遠(yuǎn)程服務(wù)器地址,我這里是用本地addressables自帶的Hosting服務(wù)器,所以填寫的是http://[PrivateIpAddress]:[HostingServicePort],怎么使用自帶的服務(wù)器,往后看

7、打Addressable資源包
在Addressables Groups窗口中,點(diǎn)擊Build / New Build / Default Build Script,就會(huì)開(kāi)始打Addressable資源包了,等它打包完畢即可

addressable 熱更新,unity,游戲引擎
上文中我們建了兩個(gè)Group,其中Default Local Group作為包體內(nèi)的資源包,Packed Assets作為包體外的資源包,我們分別看看他們都build到哪去了。

addressable 熱更新,unity,游戲引擎
首先看下Default Local Group,上圖就可以看到在工程目錄Library下

接著我們看下Remote Group打出來(lái)的資源包,在工程目錄的ServerData目錄下,這是打包自動(dòng)新建的,這里的資源是需要放到遠(yuǎn)程服務(wù)器加載。
addressable 熱更新,unity,游戲引擎
8、加載Addressable資源
我們加載資源的時(shí)候,并不需要知道目標(biāo)資源到底是在哪個(gè)Group中,也不需要知道這個(gè)Group到底是本地資源包還是遠(yuǎn)程資源包,統(tǒng)一通過(guò)資源的Addressable Name來(lái)加載,資源的Addressable Name在哪里看呢?
比如Capsule預(yù)設(shè),在Inspector窗口中,可以看到它的Addressable Name為d,這個(gè)名字是我們自己改的,不然就是顯示默認(rèn)路徑。
addressable 熱更新,unity,游戲引擎

開(kāi)始寫代碼,首先引入命名空間

using UnityEngine.AddressableAssets;

然后使用Addressables.LoadAssetAsync方法加載資源,監(jiān)聽(tīng)Completed 回調(diào),在回調(diào)中拿到資源然后進(jìn)行操作,示例:

 public Button btn;
    public InputField inp;

    public RawImage img;
    public Button freeResBtn;
    public Texture2D tex2D;

    private AsyncOperationHandle<Texture2D> handle;
    private AsyncOperationHandle<GameObject> handle1;

    private GameObject gam;
void Start()
    {
        btn.onClick.AddListener(() => BtnClick(inp.text));
        freeResBtn.onClick.AddListener(() => BtnShif(inp.text));
        BtnClick("d");
    }
 private void BtnClick(string name)
    {

        //不能用這個(gè)方式加載,用它加載不能完全釋放不能動(dòng)態(tài)新增資源
        //Addressables.LoadAssetAsync<GameObject>(name).Completed += (obj) =>
        //{
        //    gam = obj.Result;
        //    Instantiate(gam);
        //};

        //用這個(gè)方式加載資源
        handle1 = Addressables.LoadAssetAsync<GameObject>(name);
        handle1.Completed += OnLoadCompleted1;
    }
     void OnLoadCompleted1(AsyncOperationHandle<GameObject> obj)
    {
        if (obj.Status == AsyncOperationStatus.Succeeded)
        {
            gam = obj.Result;
            gam=Instantiate(gam);
        }
        else
        {
            Debug.LogError("Failed to load asset: " + obj.OperationException.ToString());
        }

    }

把腳本掛在場(chǎng)景中,運(yùn)行Unity,可以看到,正常加載了Capsule并實(shí)例化了
addressable 熱更新,unity,游戲引擎
9、Addressable資源三個(gè)加載模式
上面是默認(rèn)從Asset Database加載的,Addressables系統(tǒng)為了方便我們?cè)贓ditor環(huán)境下方便測(cè)試,默認(rèn)都是直接從Asset Database加載的,我們可以在Addressables Groups窗口的Play Mode Script中進(jìn)行切換,建議編輯器環(huán)境下使用Use Asset Database (fastest)即可
addressable 熱更新,unity,游戲引擎
Use Asset Database (fastest) 直接加載文件而不打包,快速但Profiler獲取的信息較少
Simulate Groups (advanced) 在不打包的情況下模擬AssetBundle的操作
Use Exising Build(requires built groups) 實(shí)際上是從AssetBundle打包和加載

9.1、Use Asset Database (fastest)
在這個(gè)模式下,Addressables系統(tǒng)會(huì)直接從AssetDatabase加載資源,我們 不需要 Build打Addressable資源包,這個(gè)加載速度最快,建議在項(xiàng)目開(kāi)發(fā)階段使用這個(gè)模式,加載速度快

9.2、Simulate Groups (advanced)
這個(gè)模式下,也是不需要 Build打Addressable資源包的,是模擬資源包加載

9.3、Use Exising Build(requires built groups)
這個(gè)模式下,需要先執(zhí)行Build打出Addressable資源包,它會(huì)根據(jù)Load Path去加載真正的AssetBundle文件并讀取資源。如果不先Build,運(yùn)行時(shí)會(huì)報(bào)錯(cuò)

10、加載遠(yuǎn)程Addressable資源
我們上面的Packed Assets是打成包外資源的,我們想要在Editor環(huán)境下測(cè)試遠(yuǎn)程加載,這個(gè)時(shí)候就需要先搭建一個(gè)Web服務(wù)器了,支持通過(guò)http請(qǐng)求來(lái)獲取資源。Addressable系統(tǒng)已經(jīng)幫我們做了一個(gè)Hosting Services工具,方便我們快速啟動(dòng)一個(gè)Web服務(wù)器。

點(diǎn)擊菜單Window / Asset Management / Addressables / Hosting
addressable 熱更新,unity,游戲引擎
接著點(diǎn)擊Create / Local Hosting,創(chuàng)建一個(gè)本地Web服務(wù)器
addressable 熱更新,unity,游戲引擎
然后勾選Enable
addressable 熱更新,unity,游戲引擎

這樣我們就開(kāi)啟了一個(gè)本地的服務(wù)器了,IP地址是我本機(jī)的局域網(wǎng)IP,我可以通過(guò)localhost進(jìn)行訪問(wèn),注意這里的端口號(hào)是58719。
我們可以看到,它對(duì)我們上文中提到的兩個(gè)文件夾目錄進(jìn)行了Hosting

11、加載遠(yuǎn)程的資源
上面我們已經(jīng)打了build資源包,這里直接改代碼加載遠(yuǎn)程資源Cube,也就是名字c。

void Start()
    {
        //btn.onClick.AddListener(() => BtnClick(inp.text));
        //freeResBtn.onClick.AddListener(() => BtnShif(inp.text));
        BtnClick("c");
    }

運(yùn)行效果,加載了遠(yuǎn)程資源c
addressable 熱更新,unity,游戲引擎
12、看看Addressables是如何知道去哪里加載資源
我現(xiàn)在把資源托管到服務(wù)器上,我把RemoteLoadPath改為服務(wù)器的地址
addressable 熱更新,unity,游戲引擎
這個(gè)打開(kāi)方式
addressable 熱更新,unity,游戲引擎
13、Group里的設(shè)置項(xiàng)和使用
addressable 熱更新,unity,游戲引擎
圖中1,如果要在程序運(yùn)行狀態(tài)下實(shí)時(shí)的更新刷新資源,就要把AssetBundleCRC選擇Disables
圖中2,BundleMode中有三個(gè)選項(xiàng),第一個(gè)是把資源打到一起,第二個(gè)是把資源分開(kāi)打成單個(gè),第三個(gè)是根據(jù)Labels去打包,同一個(gè)Labels打到一起
圖中3,BundleNamingMode是打出資源的名字,默認(rèn)是第二個(gè)是按哈希值出包名,選第一個(gè)Filename是按自定義名字打包

14、打遠(yuǎn)程資源熱更包
想要支持熱更新,需要先開(kāi)啟Catalog,選中AddressableAssetSettings,然后勾選Build Remote Catalog
addressable 熱更新,unity,游戲引擎
圖中1,是定義打出的Catalog的自定義名字,不填就是哈希值
圖中2,要遠(yuǎn)程資源熱更需要勾選,選擇自己定義的路徑

實(shí)時(shí)動(dòng)態(tài)熱更和資源釋放看這個(gè)

好了,后面在加其他的。。。。。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-689225.html

到了這里,關(guān)于【Unity使用addressables制作資源熱更+實(shí)時(shí)動(dòng)態(tài)熱更基本記錄】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Unity使用 Addressables 預(yù)加載所有資源,提現(xiàn)加載資源,發(fā)布webgl加載緩慢問(wèn)題

    Unity使用 Addressables 預(yù)加載所有資源,提現(xiàn)加載資源,發(fā)布webgl加載緩慢問(wèn)題

    Addressables 我也是剛接觸,知道的不是很多,基本的用法還是知道一些的 1 .在Window–Package Manager里找到Addressables進(jìn)行安裝 ? 2.選擇資源,點(diǎn)擊Assets中的一個(gè)資源,在Inspector面板上就會(huì)出現(xiàn)一個(gè)勾選Assressable,也就是是否加入資源打包的分組,和AssetBundle分組是一個(gè)性質(zhì)。選上以

    2023年04月08日
    瀏覽(28)
  • Unity AssetBundle資源熱更插件

    Unity AssetBundle資源熱更插件

    取消 IsEditorMode 勾選: 采用AssetBundle的方式加載游戲內(nèi)的資源 激活 IsEditorMode 勾選: 使用AssetDatabase.LoadAssetAtPath的方式加載 僅Editor 溫馨提示: IsEditorMode 受到宏限制 如果你非 UNITY_EDITOR模式下 ( 當(dāng)年在真機(jī)的時(shí)候 ) IsEditorMode強(qiáng)制為False 避免用戶打包后忘記關(guān)了 新建一個(gè)AssetBundl

    2024年02月11日
    瀏覽(27)
  • Unity 3D模型展示框架篇之資源打包、加載、熱更(二)

    Unity 3D模型展示框架篇之資源打包、加載、熱更(二)

    本項(xiàng)目將整合之前Unity程序基礎(chǔ)小框架專欄在Unity 3D模型展示項(xiàng)目基礎(chǔ)上進(jìn)行整合,并記錄了集成過(guò)程中對(duì)原腳本的調(diào)整過(guò)程。增加了Asset Bundle+I(xiàn)LRuntime熱更新技術(shù)流程。 本篇文章介紹如何對(duì)更新進(jìn)行代碼檢測(cè)以及使用更新資源服務(wù)器進(jìn)行資源熱更新。 創(chuàng)建登錄UI預(yù)制體 Log

    2023年04月20日
    瀏覽(32)
  • Unity Addressables資源管理 主設(shè)置面板

    Unity Addressables資源管理 主設(shè)置面板

    Addressables資源管理總目錄 位置1 位置2 ? ? 這個(gè)是全局路徑配置的選擇 可以點(diǎn)擊 Manager Profiles 打開(kāi)路徑配置面板 打包路徑設(shè)置 ? Send Profiler Events ?打開(kāi)這個(gè)選項(xiàng),才能在Event Viewer窗口看到資源的事件 Log Runtime Exceptions ?記錄運(yùn)行時(shí)的異常日志 ? 默認(rèn)情況下Addressables只記錄警告

    2024年02月13日
    瀏覽(29)
  • Unity 如何基于addressable來(lái)做資源管理

    一、什么是Addressable系統(tǒng) Addressable系統(tǒng)是Unity 2018.3版本中推出的一種資源管理方案,它可以幫助我們更好地管理游戲中的資源。在以往的游戲開(kāi)發(fā)中,我們通常使用Resources來(lái)進(jìn)行資源加載,但是這種方式存在很多問(wèn)題,比如加載速度慢、內(nèi)存占用高等。Addressable系統(tǒng)可以解決這

    2024年02月16日
    瀏覽(30)
  • Unity 之 Addressable可尋址系統(tǒng) -- 資源遠(yuǎn)程加載 | 資源預(yù)下載 -- 進(jìn)階(三)

    Unity 之 Addressable可尋址系統(tǒng) -- 資源遠(yuǎn)程加載 | 資源預(yù)下載 -- 進(jìn)階(三)

    概述:實(shí)現(xiàn)方式是使用Unity的可尋址系統(tǒng)結(jié)合云資源分發(fā)(AA+CCD)的形式。本篇文章就來(lái)為講解CCD的使用介紹,以及AA+CCD使用的示例。 在Hub界面的游戲云選項(xiàng),可以看到官網(wǎng)介紹入口: CCD:全稱Cloud Content Delivery,譯為:云端資源分發(fā)。 Unity 推出首個(gè)用于實(shí)時(shí)游戲更新的端到端

    2024年01月16日
    瀏覽(27)
  • Unity 之 Addressable可尋址系統(tǒng) -- 將Resources加載資源方式修改為Addressable加載 -- 實(shí)戰(zhàn)(一)

    Unity 之 Addressable可尋址系統(tǒng) -- 將Resources加載資源方式修改為Addressable加載 -- 實(shí)戰(zhàn)(一)

    加載方式: Resources 使用同步加載方式;Resources 加載資源時(shí),應(yīng)用程序?qū)?huì)被阻塞,直到資源加載完成,這可能會(huì)導(dǎo)致應(yīng)用程序出現(xiàn)卡頓或掛起的情況。 Addressables 使用異步加載方式。這意味著使用 Unity 而使用 Addressables 加載資源時(shí),應(yīng)用程序可以繼續(xù)運(yùn)行,而不會(huì)出現(xiàn)卡頓

    2024年02月05日
    瀏覽(29)
  • Unity 之 Addressable可尋址系統(tǒng) -- 資源熱更新 -- 進(jìn)階(四)

    Unity 之 Addressable可尋址系統(tǒng) -- 資源熱更新 -- 進(jìn)階(四)

    概述:Unity可尋址系統(tǒng)的資源熱更是我遇到過(guò)最簡(jiǎn)單的熱更方式了。只需修改資源組然后發(fā)布資源熱更即可。本篇文章就來(lái)為講解AA的資源熱更,并通過(guò)CCD實(shí)現(xiàn)資源熱更完整流程。 Addressables 將資源的引用和打包分開(kāi)處理,可加快運(yùn)行模式下和運(yùn)行版本的項(xiàng)目迭代。系統(tǒng)將資源

    2023年04月08日
    瀏覽(17)
  • Unity 之 Addressable可尋址系統(tǒng) -- 資源加載和釋放 -- 進(jìn)階(二)

    Unity 之 Addressable可尋址系統(tǒng) -- 資源加載和釋放 -- 進(jìn)階(二)

    概述:本篇文章從資源加載的方式和具體示例演示,為大家介紹可尋址資源系統(tǒng)的資源加載和資源釋放。 同步異步相關(guān)概念: 同步:是指一個(gè)進(jìn)程在執(zhí)行某個(gè)請(qǐng)求的時(shí)候,如果該請(qǐng)求需要一段時(shí)間才能返回信息,那么這個(gè)進(jìn)程會(huì)一直等待下去,直到收到返回信息才繼續(xù)執(zhí)行

    2024年02月02日
    瀏覽(23)
  • Unity Addressables學(xué)習(xí)筆記(1)---創(chuàng)建遠(yuǎn)程服務(wù)器加載資源

    Unity Addressables學(xué)習(xí)筆記(1)---創(chuàng)建遠(yuǎn)程服務(wù)器加載資源

    Unity Addressables學(xué)習(xí)筆記—匯總 Bulid Path選擇RemoteBuildPath Load Path我選擇了custom,地址是http://localhost:8080/WebGL/ 遇坑1 :最開(kāi)始我選擇的Build Path 是 LocalBuildPath,Load Path是custom的時(shí)候報(bào)錯(cuò)如下: 解決辦法:把Build Path 改為RemoteBuildPath后才好,我也不知道為什么不能把本地的資源放到遠(yuǎn)程

    2024年02月14日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包