【问题标题】:Programmatically import Asset in Hierarchy Unity以编程方式在 Hierarchy Unity 中导入资产
【发布时间】:2017-04-03 18:41:43
【问题描述】:

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

一切顺利,资产出现在资产文件夹中。现在唯一要做的就是将资产运行时导入层次结构*而不将其拖动到场景或层次结构中*

我们尝试使用 WWW 流来获取文件并将 AssetBundles 分配给它以及其他一些方法,但还没有成功。

【问题讨论】:

标签: c# unity3d


【解决方案1】:

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

除非我误解了你:对于“项目”中的项目(即你的资产),如果你想将它们放在当前场景中.. 将它们拖到场景中。

(即,将它们拖入层次结构面板或直接拖入场景编辑器的中间。)

你是说你想自动化这个?? (我真的不明白你怎么能 - 你添加的任何按钮都会比......只是将它们拖进来更困难。)


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

Resources.LoadAll()

您将了解到您必须将项目保存在“Resources/”文件夹等中。这是有据可查的。有 1000 次关于该主题的 QA。示例代码片段

ra = Resources.LoadAll("VO/", typeof(AudioClip) ).Cast<AudioClip>().ToArray();

提供有关“资源”的教程超出了 QA 站点的范围,但您可以立即在 Unity3d.com 上找到它。

请注意,如果您只想在构建中使用特定模型。只需将其拖到场景中并将其放置在您想要的位置即可。然后在代码中

  public GameObject yourBuilding;

并使用 inspector-dragging 根据需要链接该变量。然后,您可以根据需要使用该变量。请注意,对于大型复杂模型,您通常会继续为不同的部分设置不同的检查器变量,而不是费心钻取。 (所以,你可能有“医院”、“东翼”、“走廊”等,然后继续“检查员拖动”这些。)

【讨论】:

  • 是的,没错,我会更新问题。我们希望资产在运行时加载,以便它出现在场景中。
  • 也许我们没有问正确的问题。问题在于,在运行时,必须导入 3D 模型并在屏幕上显示,在屏幕上可以操作 3D 模型(使用 zSpace 平板电脑 (zspace.com))。我们现在可以导入模型,但现在显示它是个问题。我们可以在层次结构中在运行时拖动导入的 3D 模型。这就是为什么我们相信这可以自动化。
  • 我相信您只是在寻找“资源”。看看这里的 doco docs.unity3d.com/ScriptReference/Resources.Load.html 请注意,Unity 确实会让人感到困惑,即使对于以前没有使用过 Unity 的专业程序员也是如此。
  • 感谢您的帮助!之前创建了资源文件夹并尝试使用您的方法加载,但没有奏效,我们很快就放弃了。但是,它现在确实有效! :) 谢谢你的解释!
  • 没问题不要犹豫在这里问任何问题。请注意(这总是让我烦恼)您可以拥有“任意数量的资源文件夹”。根据您的成长经历,您可以认为这很方便,也可能很混乱:) 请注意,还有其他“特殊”文件夹名称,例如 Editor。值得研究一下“Unity 中的特殊文件夹名称”这个主题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 2013-06-07
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多