teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントに書いたことを追記

2021/10/07 12:00

投稿

katsuko
katsuko

スコア3601

answer CHANGED
@@ -5,4 +5,29 @@
5
5
 
6
6
  ですか?(「Android上で」と言われると、Androidの実機上で実行、と勘違いしてしまう)
7
7
 
8
- エディタ上で実行している場合は、**BuildSettingsのプラットフォームが何であろうと、実行環境のプラットフォームはStandaloePCなので、AssetBundleはStandalonePCでビルドされたものでなければなりません。**
8
+ エディタ上で実行している場合は、**BuildSettingsのプラットフォームが何であろうと、実行環境のプラットフォームはStandaloePCなので、AssetBundleはStandalonePCでビルドされたものでなければなりません。**
9
+
10
+ ---
11
+
12
+ 時間がなかったのでコメント欄にごちょごちょと書きましたが、ちょっと整理して追記します。
13
+
14
+ エディタ上で実行している際は、AssetBundleはPCプラットフォームでビルドされたものでなければならないのは、前述のとおり。
15
+ もう少し細かく言うと、fiveHundredさんの言うとおり、AssetBundle自体は問題なくロードできますが、バンドルされたアセットの中には、ビルドされたプラットフォーム向けになっているものがあるため、そのアセットを使用しようとすると問題が発生します。
16
+
17
+ Addressablesの場合、「Play Mode Script」が「Use Existing Build」になっていると、BuildSettingsのプラットフォームでビルドされたアセットバンドルを読みに行くので、PCプラットフォーム以外だと上記のような問題が発生します。
18
+ なので、自分はプラットフォームをPCにして動作を確認しています。(もしくは、プログラムもビルドして、実機上で確認します)
19
+
20
+ > Asset bundles built with build target Android may not be compatible with running in the Editor.
21
+
22
+ このメッセージですが、自分も試してみたところ、上記のようにPCプラットフォーム以外で「Use Existing Build」で実行すると出力されるようです。エラーではなく、警告メッセージですね。
23
+ ちなみに、
24
+
25
+ ```csharp
26
+ IEnumerator Start()
27
+ {
28
+ yield return Addressables.InitializeAsync();
29
+ }
30
+ ```
31
+
32
+ というように、`Addressables.InitiazlieAsync`メソッドを呼んでも、メッセージが出力されます。
33
+ `Addressables.LoadAssetAsync`メソッドを呼んだ際にも、まだ初期化がされていなければ`InitializeAsync`メソッドが実行されるようになっているはずなので、エディタ上で実行された際に初期化時に、PCプラットフォーム以外であったら、「このまま続けると、(先に言ったような)問題が起きるかもしれないよ」という警告なんだと思います。