Привет, ребята, я новичок в C# и untiy Я обычно разрабатывал Java и имею проблему, возвращающую значение с помощью IEnumerator. В основном у меня есть клиентский скрипт, который регистрирует имя пользователя и пароль для базы данных на сервере. Моя проблема заключается в том, что, когда я нажимаю кнопку, метод в скрипте на стороне клиента должен вызываться, чтобы добавить в базу данных вход пользователя для имени пользователя и пароля. Метод, который отвечает за это, должен вернуть строку, указывающую, что регистрация была успешной/неудачной. Когда я пытаюсь реализовать это, я получаю следующее сообщение об ошибке:Возвращение значения IEnumerator
"NullReferenceException: ссылка на объект не указывает на экземпляр объекта RegisterScript.OnMouseUp() (на активы/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);
}
}
Из этого верхнего кода, я не вижу ничего, что может быть IEnumerable. –
связано, и с лучшим решением imho: http://answers.unity3d.com/questions/207733/can-coroutines-return-a-value.html – cregox