我创建了一个应用程序,它使用编辑器中的模型,我使用UnityEditor.AssetDatabase.LoadAssetAtPath
加载。如果我尝试部署应用程序,则说Unity Editor无法使用。在统一编辑器和部署的应用程序中加载3d模型
那么在编辑器之外,我应该运用哪种最佳策略来加载我的模型?
我创建了一个应用程序,它使用编辑器中的模型,我使用UnityEditor.AssetDatabase.LoadAssetAtPath
加载。如果我尝试部署应用程序,则说Unity Editor无法使用。在统一编辑器和部署的应用程序中加载3d模型
那么在编辑器之外,我应该运用哪种最佳策略来加载我的模型?
始终检查您正在使用的API是而不是的UnityEditor
名称空间。如果它只是一个Editor插件,则可以将其包装在UNITY_EDITOR
左右。
#if UNITY_EDITOR
using UnityEditor;
#endif
但它不是编辑器插件,所以没有工作。
那么在编辑器之外,我应该采用哪一种最佳策略来加载模型 ?
实际上有两个加载文件在Unity
1个 .AssetBundles方式(推荐)
最好的办法是使用AssetBundles。在资产文件夹中创建一个文件夹,其名称为“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);
}
的.resources文件夹
创建 “资源”命名的文件夹然后把所有的文件存在。然后您可以使用资源API加载它。 This有关于此方法的更多信息。我认为你应该避免使用这种方法,但它真的值得一提。
TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset));
string tileFile = txtAsset.text;