WWW´Â TimeOutÀ» Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ ÄÚ·çƾÀ» »ç¿ëÇؼ ÇØ°áÇÏ°í ÀÖ´Ù. ´Ù¸¥ ½ÎÀÌÆ®ÀÇ ¼Ò½º¸¦ »ìÆì º¸ÀÚ. ¿¹1) http://debuglog.tumblr.com/post/48691774277/«¹ªÎ«¿«¤«à«¢«¦«È処×â ½ÎÀÌÆ®ÀÇ ¼Ò½ºÀÌ´Ù. ´Ù¿î·Îµå ½ÃÀ۽ð£ requestTimeÀ» ±âÁØÀ¸·Î Çؼ timeOut ½Ã°£À» Áö³µÀ¸¸é break·Î ÄÚ·çƾÀÇ while¹®À» ¹þ¾î³´Ù. www.progress·Î À¥¼¹ö¿¡¼ ´Ù¿î·Îµå ÁøÇà »çÇ×À» üũ ÇÒ¼ö ÀÖ´Ù. ¹üÀ§´Â 0 ~ 1 »çÀÌÀÌ´Ù. À¥¼¹ö·Î ¾÷·Îµå ÇÒ¶§´Â WWW.uploadProgress¸¦ üũ ÇÑ´Ù. using UnityEngine;
using System.Collections; public class WWWTimeOutTest : MonoBehaviour { void Start() { StartCoroutine(RequestWWW()); } private IEnumerator RequestWWW() { WWW www = new WWW("http://www.planwallpaper.com/static/images/6775415-beautiful-images.jpg"); yield return StartCoroutine(ResponceCheckForTimeOutWWW(www, 5.0f)); if(www.error != null) Debug.LogError(www.error); else if(www.isDone) Debug.Log("Complete RequestWWW"); } private IEnumerator ResponceCheckForTimeOutWWW(WWW www, float timeout) { float requestTime = Time.time; while(!www.isDone) { //print (requestTime + " / " + Time.time); if(Time.time - requestTime < timeout) { print("progress : " + www.progress); yield return null; } else { Debug.LogWarning("TimeOut"); break; } } yield return null; } } ¿¹2) http://ftvoid.com/blog/post/1059 ¼Ò½ºÀÌ´Ù. ConnectionManager ½ºÅ©¸³Æ®¿Í WWWTimeOutTest ½ºÅ©¸³Æ®°¡ GameObject¿¡ Ãß°¡ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ftvoid ½ÎÀÌÆ®¿¡¼´Â StartCoroutine( ) ¾øÀÌ ´ÙÀ½°ú °°Àº ÄÚµåÀÌ´Ù. connection.Request( )¸¦ È£ÃâÇÒ¶§ StartCoroutine( )À¸·Î È£ÃâÇϴ°ɷΠ¼öÁ¤Çß´Ù. yield return connection.Request(url); ===> ¼öÁ¤ yield return StartCoroutine(connection.Request(url)); //ConnectionManager.cs
using UnityEngine; using System.Collections; public class ConnectionManager : MonoBehaviour { public float timeOut = 30; [HideInInspector] public WWW result; [HideInInspector] public bool isTimeOut = false; public IEnumerator Request(string url) { var www = new WWW(url); var endTime = Time.realtimeSinceStartup + timeOut; while ( !www.isDone || Time.realtimeSinceStartup < endTime ) { yield return 0; } isTimeOut = !www.isDone; result = www; } } //WWWTimeOutTest.cs using UnityEngine; using System.Collections; public class WWWTimeOutTest : MonoBehaviour { void Start () { StartCoroutine(TestConnect("http://www.planwallpaper.com/static/images/6775415-beautiful-images.jpg")); } IEnumerator TestConnect(string url) { var connection = GameObject.FindObjectOfType<ConnectionManager>(); yield return StartCoroutine(connection.Request(url)); if ( connection.isTimeOut ) { Debug.Log("TimeOut!"); } else { Debug.Log("NotTimeOut!"); } } void OnGUI() { var connection = GameObject.FindObjectOfType<ConnectionManager>(); if (connection == null || connection.isTimeOut == true || connection.result == null) return; GUI.Box (new Rect (0, 0, Screen.width, Screen.height), connection.result.texture); } } ÂüÁ¶) http://debuglog.tumblr.com/post/48691774277/«¹ªÎ«¿«¤«à«¢«¦«È処×â http://ftvoid.com/blog/post/1059 https://www.snip2code.com/Snippet/64316/A-handy-class-to-use-WWW-and-WWWForm-on- |