我正在为我的大学做基本的游戏项目。 我有一个后端项目,该项目的 get 或 post 方法可以在邮递员或任何浏览器上正常工作。 在 Unity 方面, 我创建了 2 个输入字段(用户名、密码) 并创建了 1 个按钮(登录)
我创建一个 C# 脚本并定义 URL 字符串,并使用 IEnumerator 发出 Web 请求,然后在 start 方法中使用 StartCoroutine。这样就可以正常工作了
private string URL = "https://localhost:44310/api/users/getbyaccount?username=blablabla&&password=blablabla";
// Start is called before the first frame update
void Start()
{
StartCoroutine(GetResult());
}
IEnumerator GetResult()
{
using (UnityWebRequest request = UnityWebRequest.Get(URL))
{
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.ConnectionError)
{
Debug.Log(request.error);
}
else
{
string message;
message = request.downloadHandler.text;
messageBoxContainer.gameObject.SetActive(true);
messageBoxText.text = message;
}
}
}
但我想使用来自输入字段的用户名和密码创建字符串 URL。因此,我创建了一个按钮,并在单击将参数(用户名和密码)添加到 URL 字符串时编写了一个方法。但没用。
public Image messageBoxContainer;
public TMP_Text _userName;
public TMP_Text _password;
public TextMeshProUGUI messageBoxText;
private string URL;
// Start is called before the first frame update
void Start()
{
// StartCoroutine(GetResult());
}
IEnumerator GetResult()
{
using (UnityWebRequest request = UnityWebRequest.Get(URL))
{
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.ConnectionError)
{
Debug.Log(request.error);
}
else
{
string message;
message = request.downloadHandler.text;
messageBoxContainer.gameObject.SetActive(true);
messageBoxText.text += message;
}
}
}
public void CreateUrl()
{
URL ="https://localhost:44310/api/users/getbyaccount?username=" + _userName.text + "&&password=" + _password.text;
messageBoxText.text = URL;
StartCoroutine(GetResult());
}
如何将参数添加到 URL 字符串?
我找到了解决方案!
我应该使用 TMP_InputField 而不是 TMP_Text。
它有效。