我想使用超过4000个的很多3D模型。 该文件夹的大小至少为20GB。 当我使用Unity编辑器打开此文件夹时,它会冻结您的Unity引擎和Jetbrains Rider。但是,由于要在运行时动态确定要加载的多个模型,因此不必每次都加载这些模型。
我认为我可以利用AssetBundle功能动态加载这些模型。但是,我认为必须将限制资产放置在Assets文件夹中才能作为资产构建。那会冻结我的编辑器和Rider。 但是从技术上讲,我认为AssetBundle必须能够单独构建。
如何解决此问题?
答案 0 :(得分:1)
答案 1 :(得分:1)
您确实可以使用Assetbundles来解决此问题。如果您将所有模型都构建到了资产捆绑包中,则可以将assetbundle文件和assetbundle.manifest存储在远程服务器或FTP上,只要需要资产就可以在运行时下载。这样,模型将永远不会出现在您的构建项目中,甚至可能会出现在单独的统一项目中,从而解决了主项目中的崩溃问题。
对于我的答案,我假设您使用的是Unity的新Assetbundle浏览器工具,并且使用的Unity版本高于5.6。如果您没有新的Assetbundle浏览器,请按照以下一些快速步骤进行操作:
构建捆绑包
为此使用资产捆绑包的好处是,只要Unity版本匹配,它们就可以从单独的项目中构建。因此,我建议创建一个新的空项目,并测试该项目中可以有多少个模型而不会导致Unity崩溃。
一旦发现限制,就可以从模型中创建预制件,并将其添加到Assetbundle浏览器工具中。
在Assetbundle浏览器工具的“构建”部分中设置要为其构建资产捆绑包的目标平台和要应用的压缩。完成此操作后,请点击“构建”以构建资产捆绑包。
此过程完成后,您可以获取assetbundle文件和assetbundle.manifest,并将它们上传到客户端可以在运行时连接到的单独服务器或FTP上,以下载包含所需模型的所需Assetbundle。
由于新的Assetbundle浏览器工具是开源的,因此,您也可以在构建资产束后直接自动执行上载过程。
这样做的另一个好处是,资产捆绑浏览器将检测到任何共享资产(例如着色器,脚本),并为您提供将它们移至共享资产捆绑的选项,该共享资产捆绑只需要下载一次,随后的任何资产捆绑都可以调用。这样,您就不必继续下载共享资产。
构建资产捆绑包是一项非常耗时的任务(还取决于目标平台和压缩设置),因此,如果您有可用的资源,则可能希望一次在多台计算机上进行。
答案 2 :(得分:-2)
我认为解决此问题的最佳方法就是不使用太多模型。
那么简单。
您应该选择最适合其余模型的模型,并为每个模型创建少量不同的纹理。
就像电影中一样。您不需要2000 ppl来吸引人群。您只需要20种不同的ppl,然后将其复制粘贴到CGI中即可。