Sak*_*uya 6 assets build unity-game-engine assetbundle
很难找到有关AssetBundles实际工作方式的大量信息。找不到有关如何通过游戏版本管理资产捆绑的任何解释。
基本上,我AssetBundles在“项目”窗口中有一个文件夹。我放入此文件夹中的所有资产均作为AssetBundles构建在构建目录(例如GameName / Data / AssetBundles)内的文件夹中,然后在需要时加载。
但是,当我自己构建游戏时,它是否不知道在游戏构建中不包括AssetBundles中使用的这些资产?还是我需要以某种方式排除它们?
编辑:我已经取得了一些进展。
据我了解,只有其资产驻留在构建设置中的场景中的资产才会通过游戏构建进行构建。脚本始终内置在游戏版本中(我不确定是否有解决此问题的方法,但这对我来说不是问题)。
因此,我在游戏构建中只有一个场景,它是游戏的启动对象。此场景上有一个资产管理器脚本,该脚本在中DontDestroyOnLoad指定Awake。
我的资产管理器脚本基本上只处理捆绑软件,资产和实例的加载/卸载。
我目前不太确定如何为场景构建资产捆绑包。我先使用它LoadAllAssets,然后再做LoadLevel,但是如果多个场景共享某些资产怎么办?场景构建最终会膨胀但拥有可以共享的资产副本吗?我读到依赖关系是在Unity 5中自动处理的,但是我不确定是否与此相关。
我发现下面的帖子有一个示例项目,其中包含在 Unity 5 中使用 AssetBundles 的不同方法。
http://forum.unity3d.com/threads/new-assetbundle-build-system-in-unity-5-0.293975/
它包含构建/加载场景的示例,并且似乎工作正常(它自动确定依赖关系......因此您所要做的就是确保在共享资源包(或它们自己的包)中构建共享资源以提高效率)。
我在构建时所做的唯一不同的事情是定义AssetBundleBuild(基本上我组织了我的项目文件夹,以便将资产存储在与其资产包名称相关的子文件夹中,然后在构建时检查这些文件夹并添加它们)。
由于某种原因,我这样做的方法似乎打破了依赖关系,而在编辑器 ui 中使用资源包功能似乎可行(为每个资源手动命名资源包......如果您在几个不同的资源包中有数百个资源,这有点乏味) ),然后在BuildAssetBundles没有 builds 参数的情况下使用。
我仍然没有真正回答我原来的问题Is it necessary to exclude assets being used in AssetBundles from game build?
但为了安全起见,我在游戏构建中实际上只构建了 1 个场景,并且该场景只有一个资产管理器脚本,用于处理资产包,并且不会在加载时销毁。如果您将所有场景都作为资源包,则无需构建其他场景。
| 归档时间: |
|
| 查看次数: |
4921 次 |
| 最近记录: |