【问题标题】:What can I do with my C# code for me to apply this to my UI in Unity?我可以用我的 C# 代码做些什么来将它应用到我在 Unity 中的 UI?
【发布时间】:2019-09-17 04:16:50
【问题描述】:

我正在尝试设置我的帐户注册系统以将数据从统一输入到我的数据库,到目前为止,我已经能够通过 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);
    }
}

【问题讨论】:

    标签: c# mysql database unity3d account


    【解决方案1】:

    您只需从输入字段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!");
            }
        }
    }
    

    【讨论】:

    • 我将如何使用 UnityWebRequest.Post ?
    • 我的回答中已经有UnityWebRequest.Post 的示例。
    【解决方案2】:

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

    近来,你需要了解SQL 语言。

    【讨论】:

    • 我暂时使用 PhpMyAdmin 只是为了测试这些功能是否正常工作,我正计划将 Azure 用于我的实际数据库,我在想是否需要按顺序更改我的代码从我的实际数据库中插入和获取数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2020-11-08
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多