unity教程四:創(chuàng)建AB包

1.在Assets/Editor文件夾里面創(chuàng)建編輯器AB插件文件夾AssetBundle


QQ20210826-162450.png

1.創(chuàng)建腳本BuildAssetBundles.cs

using System.Net;
using UnityEditor;
using System.IO;
using System;
public class BuildAssetBundles
{
    // 菜單選項(xiàng)目錄
    [MenuItem("Assets/Build AssetBundles")]
    static public void BuildAllAssetBundles()
    {
        // 創(chuàng)建文件目錄
        string dir = "AssetBundles";
        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }
        // 構(gòu)建
        // 參數(shù)1:路徑
        // 參數(shù)2:壓縮算法,none 默認(rèn)
        // 參數(shù)3:設(shè)備參數(shù)呵恢,ios砌函,Android关筒,windows等等
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
        UnityEngine.Debug.Log("AssetBundle資源打包完成憎账!");
    }
}

3.設(shè)置下cube預(yù)制體的AB包信息


QQ20210826-163859.png

4.點(diǎn)擊菜單生成ab包

Assets/Scripts/XLua/Gen/UnityEngine_LightWrap.cs(191,39): error CS1061: 'Light' does not contain a definition for 'SetLightDirty' and no accessible extension method 'SetLightDirty' accepting a first argument of type 'Light' could be found (are you missing a using directive or an assembly reference?)
Assets/Scripts/XLua/Gen/UnityEngine_LightWrap.cs(783,60): error CS1061: 'Light' does not contain a definition for 'shadowRadius' and no accessible extension method 'shadowRadius' accepting a first argument of type 'Light' could be found (are you missing a using directive or an assembly reference?)
Assets/Scripts/XLua/Gen/UnityEngine_LightWrap.cs(797,60): error CS1061: 'Light' does not contain a definition for 'shadowAngle' and no accessible extension method 'shadowAngle' accepting a first argument of type 'Light' could be found (are you missing a using directive or an assembly reference?)
Assets/Scripts/XLua/Gen/UnityEngine_LightWrap.cs(1292,35): error CS1061: 'Light' does not contain a definition for 'shadowRadius' and no accessible extension method 'shadowRadius' accepting a first argument of type 'Light' could be found (are you missing a using directive or an assembly reference?)
Assets/Scripts/XLua/Gen/UnityEngine_LightWrap.cs(1307,35): error CS1061: 'Light' does not contain a definition for 'shadowAngle' and no accessible extension method 'shadowAngle' accepting a first argument of type 'Light' could be found (are you missing a using directive or an assembly reference?)
Error building Player because scripts had compiler errors

官方文檔FQA說明:編輯器下運(yùn)行正常疟暖,打包的時(shí)候生成代碼報(bào)“沒有某方法/屬性/字段定義”怎么辦绝骚?
往往是由于該方法/屬性/字段是擴(kuò)在條件編譯里頭贪嫂,只在UNITY_EDITOR下有效寺庄,這是可以通過把這方法/屬性/字段加到黑名單來解決,加了之后要等編譯完成后重新執(zhí)行代碼生成力崇。

解決方案:在Assets\Editor\XLua\Generator.cs 中GetGenConfig函數(shù)中添加黑名單

public static void GetGenConfig(IEnumerable<Type> check_type)
{
...
BlackList = new List<List<string>>()
{
      ...
      new List<string>(){"UnityEngine.Light", "SetLightDirty"},
      new List<string>(){"UnityEngine.Light", "shadowRadius"},
      new List<string>(){"UnityEngine.Light", "shadowAngle"},
      new List<string>(){"UnityEngine.Light", "shadowRadius"},
      new List<string>(){"UnityEngine.Light", "shadowAngle"},
};
...
// 添加黑名單后铣揉,執(zhí)行菜單xlua ->Clear Generator code ,再執(zhí)行xlua ->Generator code
}

生成成功!
QQ20210826-204702.png

5.加載ab包
加載ab包有三種方法

// 第一種加載AB的方式LoadFromFile同步加載(本地加載)
AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/testab.ab");
GameObject wallPrefab = ab.LoadAsset<GameObject>("cubeWall");
Instantiate(wallPrefab);

// 第二種加載AB的方式LoadFromMemory同步加載(當(dāng)AB包使用UDP或者TCP協(xié)議的時(shí)候可以運(yùn)用此方法)
string path = "AssetBundles/testab.ab";
AssetBundle ab = AssetBundle.LoadFromMemory(File.ReadAllBytes(path));
GameObject wallPrefab = ab.LoadAsset<GameObject>("cubewall");
Instantiate(wallPrefab);

// 第三種使用UnityWebRequest
//string uri = @"file:///O:\AssetBundleTestProjectAssetBundles/testab.ab";
string uri = @"http://localhost/AssetBundles/testab.ab";
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(uri);
yield return request.SendWebRequest();
AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
//使用資源
GameObject wallPrefab = ab.LoadAsset<GameObject>("cubewall");
Instantiate(wallPrefab);

參考資料
https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/faq.md
https://blog.csdn.net/u014361280/article/details/99712651
https://github.com/Tencent/xLua/issues/482

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末餐曹,一起剝皮案震驚了整個(gè)濱河市逛拱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌台猴,老刑警劉巖朽合,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異饱狂,居然都是意外死亡曹步,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門休讳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讲婚,“玉大人,你說我怎么就攤上這事俊柔〕雉铮” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵雏婶,是天一觀的道長(zhǎng)物赶。 經(jīng)常有香客問我,道長(zhǎng)留晚,這世上最難降的妖魔是什么酵紫? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮错维,結(jié)果婚禮上奖地,老公的妹妹穿的比我還像新娘。我一直安慰自己赋焕,他們只是感情好参歹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宏邮,像睡著了一般泽示。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜜氨,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天械筛,我揣著相機(jī)與錄音,去河邊找鬼飒炎。 笑死埋哟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的郎汪。 我是一名探鬼主播赤赊,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼煞赢!你這毒婦竟也來了抛计?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤照筑,失蹤者是張志新(化名)和其女友劉穎吹截,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凝危,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡波俄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛾默。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懦铺。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖支鸡,靈堂內(nèi)的尸體忽然破棺而出冬念,到底是詐尸還是另有隱情,我是刑警寧澤牧挣,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布刘急,位于F島的核電站,受9級(jí)特大地震影響浸踩,放射性物質(zhì)發(fā)生泄漏叔汁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一检碗、第九天 我趴在偏房一處隱蔽的房頂上張望据块。 院中可真熱鬧,春花似錦折剃、人聲如沸另假。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽边篮。三九已至己莺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戈轿,已是汗流浹背凌受。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留思杯,地道東北人胜蛉。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像色乾,于是被迫代替她去往敵國(guó)和親誊册。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • ( 1 )先根據(jù)文檔配置運(yùn)行 1.下載Xlua源碼https://github.com/Tencent/xLua/...
    SuperGino閱讀 1,283評(píng)論 0 2
  • 用到的組件 1暖璧、通過CocoaPods安裝 2案怯、第三方類庫安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,601評(píng)論 1 180
  • 寫在最前面的話 做游戲不管是用國(guó)產(chǎn)引擎cocos2d-x還是用unity澎办,熱更新肯定是絕大多數(shù)的開發(fā)者沒有辦法繞開...
    符文劍舞閱讀 1,210評(píng)論 0 1
  • 版權(quán)聲明:本文為Jumbo原創(chuàng)文章,采用[知識(shí)共享 署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際 許可協(xié)議]殴泰,轉(zhuǎn)載前...
    JumboWu閱讀 26,180評(píng)論 9 46
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn)浮驳,但是人生放棄了冒險(xiǎn)悍汛,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,033評(píng)論 0 4