Unity3d WebGL浏览器通信表单

时间:2016-02-18 03:54:44

标签: c# php mysqli unity3d

我有一个通过unity3d webGL运行的程序,它运行得很好,但我发现从程序中的人那里获得反馈正成为一个问题。

所以我创建了一个非常基本的表单,用户可以在程序中填写,按发送,它会发送给我。

我的问题是,通过的信息是一系列数字而不是消息。

以下是代码的各个部分,如果你发现了什么,请告诉我。

  

C#Unity3d表单代码

public void Send_help()
{
    string the_date = DateTime.Now.ToString ("yyyy MMMMM dd");
    string the_message = help_message.text;
    string the_email = help_email.text;

    Tcontroller.GetComponent<Trcontroller> ().Send_helpMessage (the_date,the_email,the_message);
    Help_stuff.gameObject.SetActive (false);
    audio.PlayOneShot (next);
}
  

Tcontroller中的Send_helpMessage

private static extern void Message_help(string d, string e, string m);
[DllImport("__Internal")] //The imported function in my pluggin

public void Send_helpMessage(string date, string email, string message)
{
    Message_help (date, email, message);
}
  

插件代码

    var talk = {
        Message_help: function(d,e,m)
        {
            Send_message_help(d,e,m);
        }

    };

    mergeInto(LibraryManager.library, talk); 
  

网站代码

    var this_date = '';
    var this_email = '';
    var this_message = '';

    function Send_message_help(d,e,m)
    {
        this_date = d;
        this_email = e;
        this_message = m;

        var Data = '&this_date='+this_date+'&this_email='+this_email+'&this_message='+this_message;
        $.ajax({
            url : "message.php",
            type: "POST",
            data : Data
        }); 
    };
  

最后是pHp代码

$MS = new mysqli ( $db_host, $db_username, $db_pass, $db_name );

    $this_date = $_POST['this_date'];
    $this_email = $_POST['this_email'];
    $this_message = $_POST['this_message'];


    $sqlupdate_user_message = "INSERT into contact(email, date, message) values('$this_email','$this_date','$this_message')";
    mysqli_query ( $connMS, $sqlupdate_user_message );

    mysqli_close($MS);

您可以输入任何类型的字符串值,输出到数据库的数字为

db_view

我知道WebGL仍然是新的,但它符合我的目的,除了这种形式之外,webgl和数据库之间的通信方面的一切都很好。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

请在插件代码(* .jslib)中尝试:

var talk = {
    Message_help: function(d,e,m)
    {
        var date = Pointer_stringify(d);
        var email = Pointer_stringify(e);
        var message = Pointer_stringify(m);
        Send_message_help(date,email,message);
    }

};

mergeInto(LibraryManager.library, talk); 

当您从Unity WebGL向jslib发送字符串时,需要使用Pointer_stringify辅助函数将其更改回字符串。你可以在这里找到更多 link