从外部文件夹实例化 3D 模型

Instantiate 3D models from an external folder

我正在创建一个小项目来进一步了解 Unity。

在这个项目中我有很多3D模型,我只需要使用其中的一部分。我正在使用程序在执行时读取的外部文本文件,以便告诉它加载哪些模型。

例如,在文本文件中我可以这样写: 猎人,糖果屋

并且该程序只会实例化这 2 个模型。

我的问题是我不想将所有模型都保存在 Resources 文件夹中并只加载我需要的模型,因为这会大大增加我的程序大小。所以我想做的是将我需要的模型保存在文本文件旁边并实例化它们。但我不知道如何从 Unity 访问它们。

我在一些答案中找到了 WWW class,但是他们用它来加载纹理,当我试图用它加载 Maya 文件时,Unity 就停止响应了。

有办法吗?

  • 使用模型制作预制件。(当场景中需要很多模型时,这可以减少绘图调用。)
  • 使用这个预制件制作一个资产包。
  • 将此资产包放入您的 url(这可能是远程服务器 url 或文件 url.Note iOS/Android 可能有 [=27 的权限问题=]).
  • 并使用下面的代码加载。

    WWW www = new WWW("url");    
    yield return www;
    
    GameObject obj = Object.Instantiate(www.assetBundle.Load("ModelName")) as GameObject; 
    

我们也可以使用 LoadFromCacheOrDownload,资产将被保存 specificy location.So 不需要每次从网络加载。