// 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 }
// 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(); }
// 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(); }