예제 #1
0
            /// <summary>
            /// Downloads a texture from the given URL and returns a Future for the texture.
            /// </summary>
            static public Future <Texture2D> Texture(string inURL, bool inbDownloadAsNonReadable = false, MonoBehaviour inRoutineHost = null)
            {
                var future = Future.Create <Texture2D>();

                try
                {
                    #if WEB_REQUEST_SUPPORTED
                    UnityWebRequest webRequest = new UnityWebRequest(inURL);
                    future.LinkTo(
                        Routine.Start(inRoutineHost, DownloadTextureRoutine(future, webRequest, inbDownloadAsNonReadable))
                        );
                    #else
                    WWW www = new WWW(inURL);
                    future.LinkTo(
                        Routine.Start(inRoutineHost, DownloadTextureRoutine(future, www, inbDownloadAsNonReadable))
                        );
                    #endif // WEB_REQUEST_SUPPORTED
                }
                catch (Exception e)
                {
                    future.Fail(Future.FailureType.Exception, e);
                }
                return(future);
            }
예제 #2
0
            /// <summary>
            /// Downloads an AudioClip from the given URL and returns a Future for the AudioClip.
            /// </summary>
            static public Future <AudioClip> AudioClip(string inURL, bool inbCompressed = false, MonoBehaviour inRoutineHost = null)
            {
                var future = Future.Create <AudioClip>();

                try
                {
                    #if WEB_REQUEST_SUPPORTED
                    #if !WEB_REQUEST_AUDIOCLIP_COMPRESSED
                    if (!inbCompressed)
                    #endif // !WEB_REQUEST_AUDIOCLIP_COMPRESSED
                    {
                        UnityWebRequest webRequest = new UnityWebRequest(inURL);
                        future.LinkTo(
                            Routine.Start(inRoutineHost, DownloadAudioClipRoutine(future, webRequest, inbCompressed))
                            );
                    }
                    #if !WEB_REQUEST_AUDIOCLIP_COMPRESSED
                    else
                    #endif // !WEB_REQUEST_AUDIOCLIP_COMPRESSED
                    #endif

                    #if !WEB_REQUEST_SUPPORTED || !WEB_REQUEST_AUDIOCLIP_COMPRESSED
                    {
                        WWW www = new WWW(inURL);
                        future.LinkTo(
                            Routine.Start(inRoutineHost, DownloadAudioClipRoutine(future, www, inbCompressed))
                            );
                    }
                    #endif // !WEB_REQUEST_AUDIOCLIP_COMPRESSED
                }
                catch (Exception e)
                {
                    future.Fail(Future.FailureType.Exception, e);
                }
                return(future);
            }
예제 #3
0
            /// <summary>
            /// Downloads bytes from the given URL and returns a Future for the bytes.
            /// </summary>
            static public Future <byte[]> Bytes(string inURL, MonoBehaviour inRoutineHost = null)
            {
                var future = Future.Create <byte[]>();

                try
                {
                    #if WEB_REQUEST_SUPPORTED
                    UnityWebRequest webRequest = new UnityWebRequest(inURL);
                    future.LinkTo(
                        Routine.Start(inRoutineHost, DownloadBytesRoutine(future, webRequest))
                        );
                    #else
                    WWW www = new WWW(inURL);
                    future.LinkTo(
                        Routine.Start(inRoutineHost, DownloadBytesRoutine(future, www))
                        );
                    #endif // WEB_REQUEST_SUPPORTED
                }
                catch (Exception e)
                {
                    future.Fail(Future.FailureType.Exception, e);
                }
                return(future);
            }
예제 #4
0
 /// <summary>
 /// Starts a Tween as a Routine, hosted by the given host.
 /// </summary>
 static public Routine Play(this Tween inTween, UnityEngine.MonoBehaviour inHost)
 {
     return(Routine.Start(inHost, inTween));
 }
예제 #5
0
 /// <summary>
 /// Starts a Tween as a Routine.
 /// </summary>
 static public Routine Play(this Tween inTween)
 {
     return(Routine.Start(inTween));
 }