/// <summary> /// テクスチャをロード /// </summary> /// <param name="path">パス</param> /// <param name="onLoaded">ロード完了後のコールバック</param> /// <returns></returns> public IEnumerator LoadTexture(string path, UnityAction <Texture> onLoaded) { if (requestCache.ContainsKey(path)) { // キャッシュに既にリクエストがあれば、キャッシュから取得する var req = requestCache[path]; // 参照カウントは1以上のはず Assert.IsTrue(req.refCount >= 1); // 参照カウント増加 req.refCount++; var www = req.www; // wwwが完了済みか? if (requestCache[path].www.isDone) { // 完了済みなのでコールバックに渡す onLoaded(www.texture); yield break; } else { // 未完了なので待つ while (!www.isDone) { yield return(null); } onLoaded(www.texture); } } else { // キャッシュに無いのでリクエストを作成 var req = new WwwRequest(); req.refCount = 1; req.www = new WWW(path); // キャッシュに追加 requestCache[path] = req; // ロード完了まで待つ yield return(req.www); onLoaded(req.www.texture); } }
public void Build(WwwRequest request) { WWW www = createWww(request.urlData, request.postData); request.SetWww(www); }