2013-09-25 105 views
1

如何從收益回報中顯示價值?如何從收益回報中顯示價值?

這是我的代碼:

public void getTypeRoomb1(string buildingNUM){ 
    StartCoroutine(getjsonroomtype1(buildingNUM)); 
} 
public IEnumerator getjsonroomtype1(string buildingNUM){ 
     WWW request = new WWW(mainurl+"json_typeroom.php?building="+buildingNUM+""); 
     yield return request;  
     if (request.error == null || request.error == "") 
     { 
      var N = JSON.Parse(request.text);  
      if(N["type"].Count < 1){  
       notFoundText = "Not found";  
      }else{  
       yield return N; // Value return this line.  
      }  
     }else  
     {  
      Debug.Log("WWW error: " + request.error);  
     }  
    } 

我找到行返回value.How做我的顯示值?

建議我吃!

+1

你完全按DISPLAY是什麼意思? – meilke

+0

我偏愛[lambda返回方法](http://answers.unity3d.com/questions/207733/can-coroutines-return-a-value.html)。 – Jerdak

回答

1

您必須將「返回值」保存在其他位置,例如獲取對其他對象的引用併爲其提供值。

Unity中的協程無法返回任何東西。

1

你可以通過一個專門的方法傳遞得到的值:

static IEnumerable LogValues(IEnumerable enumerable) 
{ 
    foreach (var value in enumerable) 
    { 
     Debug.Log(value.ToString()); 
     yield return value; 
    } 
} 

// .. 
// Keep getjsonroomtype1 untouched 
// .. 

public void getTypeRoomb1(string buildingNUM) 
{ 
    StartCoroutine(LogValues(getjsonroomtype1(buildingNUM))); 
}