【UE5】アセットの非同期ロードその3

この記事は約2分で読めます。

ギブアップ。丸2日潰した。

FStreamableManager

Just a moment...

FStreamableHandle

Just a moment...

ググって、いろんな人のやり方を参考にして、いろんなやり方でやってみた。FStreamableManagerの定義場所を変えてみたり、デリゲートにしたりラムダ式にしたり、一度に複数読み込み、一度に1つ読み込みなど。

読み込み完了時にハンドルを見ると、bLoadCompletedがtrueになってて、GetLoadedAssets(LoadedAssets)で配列を取得すると、読み込みに行った数だけちゃんと配列ができてる。しかし中身はNULL。一度に1つの読み込みにしてGetLoadedAsset()の戻り値を見てもNULL。

アセットの非同期ロード

Just a moment...

公式ドキュメントを見ても、これとか意味が分からない。

この例では、ItemList は TArray< TAssetPtr<UGameItem> > でありエディタでデザイナーによって修正されました。

UGameItemとかってLyraとかのサンプルにでも書いてあるんだろうか?

とか思ったりしたんだが、どうやらアセットマネージャーというものに登録したアセットじゃないと、非同期ロードはできないっぽい。

アセット管理

Just a moment...

まだ実際にやってないから正しいかどうか分からないけど、たぶんそうなんだ。GetLoadedAssets(LoadedAssets)で配列を見ると読み込もうとしたもののパスは入ってたけど、アセット名だったか何だったか忘れちゃったけど、そっちはNoneになってた。

ここまでやったからには何とかしてみたいが、これ以上ここで時間を使ってしまうと今月中の開発テスト版公開ができなくなるだろうから、後回しにする。

コメント

タイトルとURLをコピーしました