CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
[CriFs]データのバッチインストール

サンプル内容

概要

cri4u_samples_crifs_adv01_game_mini.png

データをまとめてインストールするサンプルスクリプト BatchWebInstaller を使用したバッチインストールのサンプルです。
BatchWebInstaller は CriFsWebInstaller を使用して実装されています。
BatchWebInstaller は以下のように動作します。
  • 並列インストールが可能です。
  • いずれかのインストールが失敗した際には ErrorOccured に遷移後、他の進行中のインストールが完了すると ErrorStopped 状態に遷移します。
  • BatchWebInstaller.Stop を呼び出すと、進行中またエラー状態の要素はキューに戻されます。
    • BatchWebInstaller.Stop を呼び出し、 Stop 状態に遷移後、 BatchWebInstaller.Start を呼び出すことでバッチインストールを再開できます。

操作方法

  • [Initialize Install Queue]
    BatchWebInstaller のインストールキューをクリアして、新たに要素を追加します。
    また、インストール先のファイルの削除も行なっています。

  • [Start or Resume Batch Install]ボタン
    バッチインストールを開始、再開します。

  • [Stop]ボタン
    バッチインストールを停止します。

シーン情報


ミドルウェア ファイルマジックPRO (CRI File System)
サンプル Advancedサンプル
格納場所 /cri/unity/samples/UnityProject/Assets/Scenes/crifilesystem/advanced
シーンファイル Scene_01_BatchWebInstall.unity


プログラムの解説

void Start ()
{
// Initialize CriFsWebInstaller module
var config = CriFsWebInstaller.defaultModuleConfig;
config.numInstallers = installConcurrency;
CriFsWebInstaller.InitializeModule(config);
// Create BatchWebInstaller
batchWebInstaller = new BatchWebInstaller(installConcurrency);
InitializeInstallQueue();
}

CriFsWebInstaller モジュールを初期化し、BatchWebInstaller を生成します。
CriFsWebInstaller モジュールの挙動を制御するには CriFsWebInstaller.InitializeModule に渡すコンフィギュレーションを変更してください。
また、インストールキューに要素を追加します。

private IEnumerator StartBatchWebInstall()
{
batchWebInstaller.Start();
while (true) {
// CriFsWebInstaller.ExecuteMain is executed in the BatchWebInstaller.Update
batchWebInstaller.Update();
if ((batchWebInstaller.status == BatchWebInstaller.Status.Complete) || (batchWebInstaller.status == BatchWebInstaller.Status.ErrorStopped)) {
break;
}
yield return true;
}
}

BatchWebInstaller モジュールの定期処理を毎フレーム実行し、バッチインストールの完了を待つコルーチンです。
CriFsWebInstaller.ExecuteMain は BatchWebInstaller.Update 内で適切に呼び出されますので、明示的に呼び出す必要はありません。

void OnDestroy()
{
// Destroy BatchWebInstaller
batchWebInstaller.Dispose();
batchWebInstaller = null;
// Finalize CriFsWebInstaller module
CriFsWebInstaller.FinalizeModule();
}

BatchWebInstaller を破棄し、CriFsWebInstaller モジュールを終了します。