Esempio n. 1
0
        // StreamingAssetsからファイルテキストをロードする
        public static IEnumerator CoLoad(
            CoroutineReturnValue <string> ret,
            string pathInStreamingAssets,
            bool overrideEnabled = true)
        {
#if UNITY_IOS // iOS13+iPhoneXで死ぬので回避を試みる
            try
            {
                var text = System.IO.File.ReadAllText(System.IO.Path.Combine(Application.streamingAssetsPath, pathInStreamingAssets));
                ret.Succeed(text);
            }
            catch (System.Exception e)
            {
                ret.Fail(e);
            }
            yield break;
#else
            string url = MakeUrl(pathInStreamingAssets, overrideEnabled);
            var    req = UnityWebRequest.Get(url);
            yield return(req.SendWebRequest());

            Debug.Assert(req.isDone);
            if (req.error != null)
            {
                ret.Fail(new System.IO.FileLoadException(url));
            }
            else
            {
                ret.Succeed(req.downloadHandler.text);
            }
            req.Dispose();
#endif
        }
Esempio n. 2
0
        // StreamingAssetsからテクスチャをロードする
        public static IEnumerator CoLoad(
            CoroutineReturnValue <Texture2D> ret,
            string pathInStreamingAssets,
            bool overrideEnabled = true,
            bool readable        = false)
        {
            string url = MakeUrl(pathInStreamingAssets, overrideEnabled);
            var    req = new UnityWebRequest(url);

            req.method = UnityWebRequest.kHttpVerbGET;
            var handler = new DownloadHandlerTexture(readable);

            req.downloadHandler = handler;
            yield return(req.SendWebRequest());

            if (req.error != null)
            {
                ret.Fail(new System.IO.FileLoadException(url));
            }
            else
            {
                ret.Succeed(handler.texture);
            }
            req.Dispose();
        }
        // StreamingAssetsからファイルバイナリをロードする
        public static IEnumerator CoLoad(
            CoroutineReturnValue <byte[]> ret,
            string pathInStreamingAssets,
            bool overrideEnabled = true)
        {
            string url = MakeUrl(pathInStreamingAssets, overrideEnabled);
            var    req = UnityWebRequest.Get(url);

            req.SendWebRequest();
            yield return(req);

            if (req.error != null)
            {
                ret.Fail(new System.IO.FileLoadException(url));
                yield break;
            }
            ret.Succeed(req.downloadHandler.data);
        }
        // StreamingAssetsからファイルテキストをロードする
        public static IEnumerator CoLoad(
            CoroutineReturnValue <string> ret,
            string pathInStreamingAssets,
            bool overrideEnabled = true)
        {
            string url = MakeUrl(pathInStreamingAssets, overrideEnabled);
            var    req = UnityWebRequest.Get(url);

            yield return(req.SendWebRequest());

            Debug.Assert(req.isDone);
            if (req.error != null)
            {
                ret.Fail(new System.IO.FileLoadException(url));
            }
            else
            {
                ret.Succeed(req.downloadHandler.text);
            }
            req.Dispose();
        }
Esempio n. 5
0
        // StreamingAssetsからAudioClipをロードする
        public static IEnumerator CoLoad(
            CoroutineReturnValue <AudioClip> ret,
            string pathInStreamingAssets,
            bool overrideEnabled = true,
            bool readable        = false)
        {
            string url = MakeUrl(pathInStreamingAssets, overrideEnabled);
            var    req = new UnityWebRequest(url);

            req.method = UnityWebRequest.kHttpVerbGET;
            AudioType type = AudioType.UNKNOWN;
            var       ext  = System.IO.Path.GetExtension(url).ToLower();

            switch (ext)
            {
            case ".wav": type = AudioType.WAV; break;

            case ".wave": type = AudioType.WAV; break;

            case ".ogg": type = AudioType.OGGVORBIS; break;

            case ".mp3": type = AudioType.MPEG; break;

            case ".aiff": type = AudioType.AIFF; break;
            }
            var handler = new DownloadHandlerAudioClip(url, type);

            req.downloadHandler = handler;
            yield return(req.SendWebRequest());

            if (req.error != null)
            {
                ret.Fail(new System.IO.FileLoadException(url));
            }
            else
            {
                ret.Succeed(handler.audioClip);
            }
            req.Dispose();
        }