嘿伙计们,我是 c# 的新手,而且我通常开发 Java,但在使用 IEnumerator 返回值时遇到问题。基本上我有一个客户端脚本,它将用户名和密码注册到服务器上的数据库中。我的问题是,当我单击按钮时,应调用客户端脚本中的方法将用户输入的用户名和密码添加到数据库中。负责此操作的方法应返回一个字符串,指示注册成功/不成功。当我尝试实现这一点时,我收到以下错误:
“ NullReferenceException:对象引用未设置为对象的实例 RegisterScript.OnMouseUp ()(在 Assets/Scripts/RegisterScript.cs:23)UnityEngine.SendMouseEvents:DoSendMouseEvents()”
以下是这两个类的代码,感谢任何可以提供帮助的人!
客户端脚本
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ClientSideScript : MonoBehaviour {
public string RegUserUrl = "http://localhost/reguser.php?";
public IEnumerable<string> RegisterUsers(string name , string pass){
string post_url = registerUser + "name=" + name + "&pass=" + pass;
print (post_url);
WWW hs_post = new WWW(post_url);
string check = hs_post.ToString();
yield return check;
//return regname;
}
}
附加到按钮的注册脚本,该按钮将用户名和密码传递给客户端脚本
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);
}
}