チラ裏Unity

主にUnityについての備忘録ですが誰か様の為になれば

UnityでWWWクラスを使ってファイルをダウンロード

リソースファイルをWWWクラスでダウンロードするサンプル

  1. リソースファイルにhttpでアクセスできるよう配置
  2. 配置したリソースファイルをWWWクラスでUnityのスクリプトから読み込む
    using UnityEngine;
    using System.Collections;

    public class WWWLoader : MonoBehaviour {

         IEnumerator Start () {
            WWW www = new WWW("http://127.0.0.1:8000/static/sample.csv");

            while (!www.isDone) { // ダウンロードの進捗を表示
                print(Mathf.CeilToInt(www.progress*100));
                yield return null;
            }

            if (!string.IsNullOrEmpty(www.error)) { // ダウンロードでエラーが発生した
                print(www.error);
            } else { // ダウンロードが正常に完了した
                print(www.text);
            }
        }
    }
  • ダウンロードを非同期で行うため、Start()メソッドの戻り値はvoidではなくIEnumeratorに変更しています
  • タイムアウトを考慮していません(リクエストが正しく行われた場合はレスポンスを待ち続けます)

WWWクラスについての詳細は以下の公式ドキュメントを参考に

http://docs.unity3d.com/ScriptReference/WWW.html