2016-02-18 3 views
0

У меня есть программа, работающая через web3L1, это работает очень хорошо, но я нашел, что получение обратной связи от людей внутри программы становится проблемой.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); 
} 

Send_helpMessage в TController

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); 
} 

pluggin код

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 
     }); 
    }; 

Наконец код РНР

$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 и базой данных было хорошо, за исключением этой формы. Благодарим за помощь заранее.

ответ

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

+1

Sweet попробует это и сообщит вам, будет ли он работать над следующей сборкой. (проект слишком велик, чтобы делать ежедневную сборку) – GenGen