我可以用我的 C# 代码做什么,以便将其应用到 Unity 中的 UI?

What can I do with my C# code for me to apply this to my UI in Unity?

我正在尝试设置我的帐户注册系统以将来自 unity 的数据输入到我的数据库中,到目前为止我已经能够通过 Inspector 做到这一点,现在我希望能够通过我的UI 我在 Unity 中制作的,我需要做什么? (P.S。这是我第一次发帖,我也是初学者,如果我可能不遵守某些规则,请原谅)

这是我用来通过 Unity 中的检查器将数据输入到我的 PhpMyAdmin 数据库的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DataInserter : MonoBehaviour
{

    public GameObject inputUserName;
    public GameObject inputEmail;

    string CreateUserURL = "http://localhost/balikaral/insertAccount.php";

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
       if (Input.GetKeyDown(KeyCode.Space)) CreateUser(inputUserName, inputEmail);
    }

    public void CreateUser(string username, string email)
    {
        WWWForm form = new WWWForm();
        form.AddField("usernamePost", username);
        form.AddField("emailPost", email);

        WWW www = new WWW(CreateUserURL, form);
    }
}

你不应该通过 PhpMyAdmin 来做,它是一个 mysql 用于管理 mysql 东西的工具,我假设你想为你的游戏创建一个玩家的帐户。 有两种方法可以做你想做的事 1. 创建一个接受 Http post(推荐)的 webApi 站点,webapi 将连接到您的 mysql 数据库,并执行 CRUD(Create,Read,Update,Delete) thing
2. 创建一个 mysql 直接连接到您的 mysql 数据库,并将您的数据插入到您的 mysql table。 (不安全)

邻居,你需要了解SQL语言。

您只需从输入字段中获取输入内容 InputField.text

我建议直接使用 InputField 字段,这样您就不需要 GetComponent 调用。

public class DataInserter : MonoBehaviour
{
    public InputField inputUserName;
    public InputField inputEmail;

    string CreateUserURL = "http://localhost/balikaral/insertAccount.php";

    public void CreateUser()
    {
        var userName = inputUserName.text;
        var email = inputEmail.text;

        WWWForm form = new WWWForm();
        form.AddField("usernamePost", username);
        form.AddField("emailPost", email);

        WWW www = new WWW(CreateUserURL, form);
    }
}

并在 Button 的 onClick 事件中引用 CreateUser 方法。


但是请注意 WWW 已过时,您应该使用 UnityWebRequest.Post

public void CreateUser()
{
    var userName = inputUserName.text;
    var email = inputEmail.text;
    StartCoroutine(CreateUserRequest(userName, email));
}

private IEnumerator CreateUserRequest(string userName, string email)
{
    WWWForm form = new WWWForm();
    form.AddField("usernamePost", username);
    form.AddField("emailPost", email);

    using (UnityWebRequest www = UnityWebRequest.Post(CreateUserURL, form))
    {
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Form upload complete!");
        }
    }
}