アセットロード失敗を検知する
アセットロードの失敗を検知するには、 g.Scene#onAssetLoadFailure
トリガーを利用します。
凡例
javascript
scene.onAssetLoadFailure.add(function (failureInfo) {
// scene 内で利用するアセットがロードに失敗する度に実行されるコード。
// 引数 `failureInfo` からは、ロードできなかったアセットを取得可能。
// ただしロード完了後でないと利用できない値 (`TextAsset` の `data` など) は不定。
const failedAsset = failureInfo.asset;
if (!failureInfo.error.retriable) {
// 再試行回数が一定回数を超えた場合、このコードが実行される。
// この後、エンジンはロードを再試行しない。
}
});
詳細
アセットがサーバ上に存在しない場合や、ネットワーク異常でダウンロードできないなどの場合、g.Scene#onAssetLoadFailure
トリガーでアセットロードエラーが通知されます。 Akashic Engine はこの通知後、自動的に読み込みを再試行します。
また、Scene
の生成時に指定したアセットが読み込めない場合は、 Scene#onLoad
トリガーは通知されません。ゲームは (エラー通知の処理に関係なく) 続行できなくなります。
そのため通常、ゲーム開発者がアセットロードエラーを処理する必要はありません。
このトリガーが有用なのは、特に g.Scene#requestAssets()
でシーン内から動的にアセットを読み込む場合です。 コンテンツとアセットによっては「ロードできなくても続行できる」場合があるためです。 ここでロード失敗時にフラグを立てるなどの用途で、 onAssetLoadFailure
を利用することができます。