以编程方式导入层次结构Unity中的资产

Mat*_*ers 3 c# unity-game-engine

对于一个学校项目,我们正在开展一个将BIM模型加载到一起的项目.我们正在使用.ifc文件,我们暂时将其转换为.dae.我们创建了一个用于导入文件的脚本EditorUtility.OpenFilePanel.我们正在使用IFCOpenshell的IFCConvert(命令行实用程序).

这很顺利,资产显示在Assets文件夹中.现在唯一要做的就是将资产运行时导入Hierarchy *而不将其拖入场景或层次结构*.

我们已经尝试使用WWW流来获取文件并为其分配AssetBundle以及其他一些方法,但还没有运气.

Fat*_*tie 6

"现在唯一要做的就是将资产运行时导入层次结构"

除非我误解你:对于"项目"中的项目(即您的资产),如果要将它们放在当前场景中,请将它们拖入场景中.

(即,将它们拖入Heirarchy面板或者直接拖到场景编辑器的中间.)

你是说你想要自动化吗?(我真的不知道你怎么可能 - 你添加的任何按钮都比......拖动它们更困难.)


如果您只是询问如何加载(在运行时)资源,请查看

Resources.LoadAll()
Run Code Online (Sandbox Code Playgroud)

您将了解到必须将项目保存在"Resources /"文件夹中,依此类推.这是有据可查的.该主题有1000多个QA.示例代码片段

ra = Resources.LoadAll("VO/", typeof(AudioClip) ).Cast<AudioClip>().ToArray();
Run Code Online (Sandbox Code Playgroud)

提供"资源"教程超出了QA网站的范围,但您可以立即在Unity3d.com上找到它.

请注意,如果非常简单,您只想在构建中使用特定模型.除此之外,将其拖动到场景并将其放置在您想要的位置.然后在代码中

  public GameObject yourBuilding;
Run Code Online (Sandbox Code Playgroud)

并使用检查器拖动来根据需要链接该变量.然后您可以根据需要使用该变量.请注意,对于大型复杂模型,通常您会继续使用不同部件的不同检查器变量,而不是费力去钻取.(所以,你可能有"医院","东方","走廊"......等等,然后继续"督察拖"那些.)