热更的资源 甚至可以挂脚本
前提是资源必须在ab包里
而且 必须优先加载dll
然后再加载ab包
示例代码
{
StartCoroutine(this.loadab());
}
IEnumerator loadab()
{
var request = UnityWebRequestAssetBundle.GetAssetBundle("http://00000000/newbundle");
yield return request.SendWebRequest();
AB.ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;
var go = AB.ab.LoadAsset<GameObject>("gameui.prefab");
GameObject go1 = GameObject.Instantiate(go, GameObject.Find("UILayer").transform);
// go1.AddComponent<GameUI>();
}
}
记住一点
本地调试的时候 就不要加载dll了
不然你会有两份代码 会出现奇奇怪怪的问题
比如热更出来的资源 如果挂了脚本 那么这个脚本会冲突 你会发现他读不到外面的数据
因为这个引擎太简单了 没啥可说的
使用起来非常爽 堪比网页。。
快试试吧!
文章介绍了如何在Unity中进行热更新资源的加载,特别是AB包和DLL的优先级加载顺序。通过UnityWebRequestAssetBundle获取AssetBundle,然后加载GameObject。在本地调试时需避免加载DLL以防止代码冲突。这是一个简单的示例,展示了Unity引擎中热更新的便捷性。
926

被折叠的 条评论
为什么被折叠?



