エディタIで読み込んだモデルをUnityEditor.AssetDatabase.LoadAssetAtPath
で使用するアプリケーションを作成しました。もし私がアプリをデプロイしようとするとUnity Editorは使えないと言われます。ユニティエディタとデプロイされたアプリケーションでの3Dモデルの読み込み
これは、エディタの外で実行時にモデルを読み込むために適用するのが最適な戦略ですか?
エディタIで読み込んだモデルをUnityEditor.AssetDatabase.LoadAssetAtPath
で使用するアプリケーションを作成しました。もし私がアプリをデプロイしようとするとUnity Editorは使えないと言われます。ユニティエディタとデプロイされたアプリケーションでの3Dモデルの読み込み
これは、エディタの外で実行時にモデルを読み込むために適用するのが最適な戦略ですか?
UnityEditor
名前空間には、使用しているAPIがではなく、であることを常に確認してください。それがエディタプラグインの場合は、UNITY_EDITOR
をラップすることができます。
#if UNITY_EDITOR
using UnityEditor;
#endif
しかし、これはエディタのプラグインではないので、うまく機能しません。
これは、 実行時にモデルを読み込むために適用するのが最適な戦略です。
ユニティ
.AssetBundles(推奨)
AssetBundlesを使用することです最善の方法でファイルをロードするには、2つの方法が本当にあります。アセットフォルダにフォルダを作成します。名前は"StreamingAssets"です。 AssetBundlesを作成し、そこにAssetBundleを配置します。読み込むパスに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 postには、このメソッドの詳細があります。私はあなたがこの方法を使わないでくださいが、実際に言及する価値があると思います。
TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset));
string tileFile = txtAsset.text;