在统一编辑器和已部署的应用程序中加载3d模型

时间:2017-06-29 17:37:04

标签: c# unity3d import model assets

我已经创建了一个应用程序,它使用我在UnityEditor.AssetDatabase.LoadAssetAtPath加载的编辑器中使用的模型。如果我尝试部署应用程序,则表示无法使用Unity编辑器。

那么我应该在编辑器外部运行时加载我的模型的最佳策略是什么?

1 个答案:

答案 0 :(得分:0)

请务必检查UnityEditor命名空间中您使用的API是不是。如果它只是一个编辑器插件,你可以将它包装在UNITY_EDITOR

#if UNITY_EDITOR
using UnityEditor;
#endif

但它不是一个编辑器插件,因此无法正常工作。

  

这是我应该用于加载模型的最佳策略   在编辑之外的运行时间?

有两种方法可以在Unity中加载文件

<强> 1 .AssetBundles(推荐)

最好的方法是使用AssetBundles。在Assets文件夹中创建一个文件夹,名称为“StreamingAssets”。创建AssetBundles然后将AssetBundles放在那里。您可以使用Unity的WWW API和Application.streamingAssetsPath作为加载它的路径。

public string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "MyFile");
public string result = "";
IEnumerator Example() {
    if (filePath.Contains("://")) 
    {
        WWW www = new WWW(filePath);
        yield return www;
        result = www.text;
    } else
        result = System.IO.File.ReadAllText(filePath);
}

2 。资源文件夹

创建一个名为“Resources”的文件夹,然后将所有文件放在那里。然后,您可以使用Resources API加载它。 This帖子提供了有关此方法的更多信息。我认为你应该避免使用这种方法,但它确实值得一提。

TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset));
string tileFile = txtAsset.text;