WWW class 不统一
WWW class does not work in unity
首先,我是 Unity 的新手,我正在使用新的 Unity 5.0.0 进行开发。我一直在查看 Unity 文档中的 WWW class 并按照它进行操作,但还没有让它工作。我查看了其他问题并在谷歌上搜索了很多,但无法正常工作。这是我在 APImanager 中得到的代码:
using UnityEngine; using System.Collections;
public class apiManager : MonoBehaviour
{
public string url = "URL";
public string temp;
public void Start(){
WWW w = new WWW (url);
StartCoroutine (WaitForRequest (w));
}
IEnumerator WaitForRequest(WWW w){
yield return w;
temp = w.text.ToString ();
}
public string getTemp(){
return temp;
}
}
在我的主文件中,我想调用字符串 getTemp 方法并在标签中显示数据,但它不起作用。什么都没有出现,我正在努力弄清楚。 (我试图将标签中的数据显示为文本(字符串)。)
public class main : MonoBehaviour {
apiManager myApiManager = new apiManager();
void OnGUI() {
GUI.Label(ScreenPosition(0, 500, 300,300), myApiManager.getTemp());
}
}
能否请您提供有关它应该如何工作的信息,或者我是否遗漏了什么?谢谢
问题是您在协程方法之外创建了 WWW 对象。在 WaitForRequest 中移动它:
using UnityEngine; using System.Collections;
public class apiManager : MonoBehaviour
{
public string url = "URL";
public string temp;
public void Start(){
StartCoroutine (WaitForRequest (w));
}
IEnumerator WaitForRequest(){
WWW w = new WWW (url);
yield return w;
temp = w.text.ToString ();
}
public string getTemp(){
return temp;
}
}
此外,您不应该从 Main 单一行为中创建单一行为对象。而是将其定义为 public 属性 并在编辑器中分配它(您也可以在运行时使用 FindObjectOfType):
public class main : MonoBehaviour {
public apiManager myApiManager;
void OnGUI() {
GUI.Label(ScreenPosition(0, 500, 300,300), myApiManager.getTemp());
}
}
首先,我是 Unity 的新手,我正在使用新的 Unity 5.0.0 进行开发。我一直在查看 Unity 文档中的 WWW class 并按照它进行操作,但还没有让它工作。我查看了其他问题并在谷歌上搜索了很多,但无法正常工作。这是我在 APImanager 中得到的代码:
using UnityEngine; using System.Collections;
public class apiManager : MonoBehaviour
{
public string url = "URL";
public string temp;
public void Start(){
WWW w = new WWW (url);
StartCoroutine (WaitForRequest (w));
}
IEnumerator WaitForRequest(WWW w){
yield return w;
temp = w.text.ToString ();
}
public string getTemp(){
return temp;
}
}
在我的主文件中,我想调用字符串 getTemp 方法并在标签中显示数据,但它不起作用。什么都没有出现,我正在努力弄清楚。 (我试图将标签中的数据显示为文本(字符串)。)
public class main : MonoBehaviour {
apiManager myApiManager = new apiManager();
void OnGUI() {
GUI.Label(ScreenPosition(0, 500, 300,300), myApiManager.getTemp());
}
}
能否请您提供有关它应该如何工作的信息,或者我是否遗漏了什么?谢谢
问题是您在协程方法之外创建了 WWW 对象。在 WaitForRequest 中移动它:
using UnityEngine; using System.Collections;
public class apiManager : MonoBehaviour
{
public string url = "URL";
public string temp;
public void Start(){
StartCoroutine (WaitForRequest (w));
}
IEnumerator WaitForRequest(){
WWW w = new WWW (url);
yield return w;
temp = w.text.ToString ();
}
public string getTemp(){
return temp;
}
}
此外,您不应该从 Main 单一行为中创建单一行为对象。而是将其定义为 public 属性 并在编辑器中分配它(您也可以在运行时使用 FindObjectOfType):
public class main : MonoBehaviour {
public apiManager myApiManager;
void OnGUI() {
GUI.Label(ScreenPosition(0, 500, 300,300), myApiManager.getTemp());
}
}