嗨,大家好我是新来的C#和untiy我通常开发Java,并有一个问题,使用IEnumerator返回一个值。基本上我有一个客户端脚本,它将用户名和密码注册到服务器上的数据库中。我的问题是,当我点击一个按钮时,应调用客户端脚本中的方法,将用户输入的用户名和密码添加到数据库中。负责这个的方法应该返回一个字符串,表明注册成功/不成功。当我尝试实现这个我得到以下错误:返回一个值IEnumerator
“的NullReferenceException:未设置为一个对象 RegisterScript.OnMouseUp的实例对象引用()(在资产/脚本/ RegisterScript.cs:23) UnityEngine。 SendMouseEvents:DoSendMouseEvents()“
以下是两个类的代码,感谢任何人可以帮助!附接到通过用户名和密码的客户端脚本
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class RegisterScript : MonoBehaviour {
public string Registeredpassword;
public string Registeredusername;
public Texture2D registerButton;
//Use this for initialization
void OnGUI() {
Registeredpassword = GUILayout.PasswordField(Registeredpassword, "*"[0], 25);
Registeredusername = GUILayout.TextField(Registeredusername, 25);
}
void OnMouseUp(){
ClientSideScript client = (ClientSideScript)FindObjectOfType(typeof(ClientSideScript));
IEnumerable<string> stringcheck = client.RegisterUsers(Registeredusername , Registeredpassword);
print (stringcheck);
}
}
从这个上面的代码,我没有看到任何可以被IEnumerable的。 – 2012-04-13 12:28:02
相关,并有更好的解决方案imho:http://answers.unity3d.com/questions/207733/can-coroutines-return-a-value.html – cregox 2012-09-26 16:08:30