加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

unity3d中NGUI依赖关系打包以及动态加载资源`

发布时间:2020-12-13 22:00:45 所属栏目:百科 来源:网络整理
导读:大家好,这我鄙人第一次真真正正的写博文,弄了个科比的头像,唉,科比这个赛季结束要退役了,从初中到现在十几年了,都一直支持着科比,至于为什么那么喜欢科比,打篮球的人都应该懂得。 这篇文章主要是记录一下unity3d中NGUI依赖关系打包以及资源的动态加

大家好,这我鄙人第一次真真正正的写博文,弄了个科比的头像,唉,科比这个赛季结束要退役了,从初中到现在十几年了,都一直支持着科比,至于为什么那么喜欢科比,打篮球的人都应该懂得。

这篇文章主要是记录一下unity3d中NGUI依赖关系打包以及资源的动态加载的一些事,其中文中有些内容是借鉴和参考了网上一些博主的文章,如有不足之处,希望看官们能够指出··················

1,先做一个公共的图集,这里命名为com,做好一个预设,如图:然后里面就一张图。

2,然后做两个预设A和B,其中A和B都分别引用到了com的图集,如图:


最后出来是这样:

3:将com,A,B打包成unity3d文件供下载。如图:


4,:资源加载,首先我们先加载A和B,最后在加载com,看看有什么情况发生,如图:


A也是如此的,为什么呢,引用到相关的脚本和图集都没有,那是因为把com作为了公共分享的资源,他涉及的一切相关的资源都会变成公共的资源:


[MenuItem("Tools/依赖关系打包")]
static void Execute()
{
string SavePath = "Assets/U3DFiles/";
if (!Directory.Exists(SavePath))
{
Directory.CreateDirectory(SavePath);
}
BuildAssetBundleOptions buildOp = BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets
| BuildAssetBundleOptions.DeterministicAssetBundle;


BuildPipeline.PushAssetDependencies();
// 共享资源
Object sharedAsset1 = AssetDatabase.LoadMainAssetAtPath("Assets/Prefab/com.prefab");
BuildPipeline.BuildAssetBundle(sharedAsset1,null,SavePath + sharedAsset1.name + ".unity3d",buildOp,BuildTarget.StandaloneWindows);
// 其他共享资源


// A Prefab 使用到com.prefab和Refractive Atlas.prefab
BuildPipeline.PushAssetDependencies();
Object p1Asset = AssetDatabase.LoadMainAssetAtPath("Assets/Prefab/A.prefab");
BuildPipeline.BuildAssetBundle(p1Asset,SavePath + p1Asset.name + ".unity3d",BuildTarget.StandaloneWindows);
BuildPipeline.PopAssetDependencies();


// B Prefab使用到com.prefab和Refractive Atlas.prefab
BuildPipeline.PushAssetDependencies();
Object p2Asset = AssetDatabase.LoadMainAssetAtPath("Assets/Prefab/B.prefab");
BuildPipeline.BuildAssetBundle(p2Asset,SavePath + p2Asset.name + ".unity3d",BuildTarget.StandaloneWindows);
BuildPipeline.PopAssetDependencies();


BuildPipeline.PopAssetDependencies();
AssetDatabase.Refresh();
Debug.LogWarning("收集依赖关系成功");
}

5,先加载com,然后在加载A和B,看看有什么不一样:


现在引用到的脚本资源和预设都出来了。

6,所以,做依赖打包的时候,先加载公共部分,在加载其他引用公共资源的东西················好了,今天先到这,这边去打球了,下回再看一下,没有用依赖打包的时候,每个单独打包有多大。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读