CRIWARE Unity Plugin Manual  Last Updated: 2024-12-05
[CriFs]ファイルの読み込み

サンプル内容

概要

cri4u_samples_crifs_scene01_game_mini.png

単純なファイル読み込みのサンプルです。

操作方法

  • [Loading Style: ORDINARY]、[Loading Style: COROUTINE]ボタン
    ファイルの読み込みに、従来方式(Oridinary)を使うのか、コルーチン方式(Coroutine)を使うのか指定します。

  • [Load Text File]ボタン
    ローカルにあるテキストファイルを読み込み、表示します。

  • [Load Image File (Local)]ボタン
    ローカルにあるイメージファイルを読み込み、表示します。

  • [Stop Loading]ボタン
    「ORIDINARY」の時のみ、ファイル読み込みを中止できます。

  • [Reset]ボタン
    読み込んだアイテムをクリアします。

シーン情報


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


プログラムの解説

従来方式

各フレームの更新時に、ポーリングによって読み込み終了を確認する方法です。
従来のコンシューマゲーム開発で使われている読み込み方法です。

コルーチン方式

コルーチンによって、読み込み終了をyeild命令によって待ちます。
読み込み処理をシンプルに記述することができます。
コルーチン方式の読み込み手順
private IEnumerator LoadTextFile(string path)
{
/* Issue a request for file loading. */
var request = CriFsUtility.LoadFile(path);

ファイルのロードリクエストを出します。
バックグラウンドで非同期にロード処理が行われます。

/* Sleep until the processing is completed . */
yield return request.WaitForDone(this);

ロード処理終了まで待ちます。

if (request.error == null)
{
/* The request.bytes stores the loaded data. */
using (var st = new StreamReader(new MemoryStream(request.bytes), Encoding.UTF8)) {
this.loadedText = st.ReadToEnd();
}
}

errorがnullならロード成功です。
テキストファイルの場合は文字列化を行います。

/* Check whether the file loading is successful. */
if (request.error == null)
{
this.textures[n] = new Texture2D(0, 0);
/* The request.bytes stores the loaded data. */
this.textures[n].LoadImage(request.bytes);

画像ファイルの場合はテクスチャにロードします。