我创建了一个应用程序,它利用了我在编辑器中使用UnityEditor.AssetDatabase.LoadAssetAtPath
加载的模型。如果我尝试部署应用程序,它说无法使用 Unity 编辑器。
那么,在运行时,在编辑器之外加载模型的最佳策略是什么?
始终检查您使用的 API 是否不在 UnityEditor
命名空间中。如果它只是一个编辑器插件,您可以将其包装在 UNITY_EDITOR
.
#if UNITY_EDITOR
using UnityEditor;
#endif
但它不是编辑器插件,因此伤口不起作用。
因此,我应该应用哪种策略来加载我的模型 运行时,在编辑器之外?
实际上有两种方法可以在Unity中加载文件
1.资源包(推荐(
最好的方法是使用资产包。在 Assets 文件夹中创建一个文件夹,名称为"StreamingAssets"。创建资产包,然后将资产包放在那里。您可以使用 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."资源"文件夹
创建一个名为"资源">的文件夹,然后将所有文件放在那里。然后,您可以使用资源 API 加载它。这篇文章提供了有关此方法的更多信息。我确实认为您应该避免使用此方法,但确实值得一提。
TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset));
string tileFile = txtAsset.text;