2014-04-04 80 views
1

我想在運行時(網絡遊戲)傳遞一些JavaScript參數到unity,並在我的network.cs腳本中使用它們。傳遞JavaScript參數,並在統一使用它們C#文件

<html> 
    <script type="text/JavaScript"> 
     //<![CDATA[ 
      PlayerName = "Adam"; 
      playerID = "56"; 
     //]]> 
    </script> 
</html> 

只要考慮我使用上述參數來登錄用戶。

回答

0

您需要將該數據發回服務器。如果你不想讓你的整個頁面重新加載,使用AJAX可能就是你想要的。

一個常用的框架,促進阿賈克斯是jQuery

您需要一個端點,在您的c#中寫入(從您在network.cs上的fileending中猜測)以讀取您的客戶端javascript發佈的內容。我不知道你使用的.net版本是什麼,但是看看WebAPI - 這很容易實現。

TL; DR

  1. 使用JavaScript/jQuery來從客戶端向服務器上傳數據。
  2. 閱讀發佈的數據在你的服務器端,雖然二者的WebAPI或只是一個正常的.aspx頁面中讀取查詢字符串/表單值

如果你只是想從客戶端發送數據,而不用擔心任何迴應,您可以使用

$.ajax({ 
    type: "POST", 
    url: url, 
    data: {PlayerName: PlayerName, PlayerId: playerID}, 
}); 

您可以更改POSTGET如果你想進行GET請求來代替。如果您使用url的正常.aspx頁面,則數據將通過Request.FormRequest.QueryString可讀。如果您使用WebAPI,它將被注入到您的方法參數中。

+0

謝謝,任何jQuery方法的例子? – Ghazanfari

+0

還有一個問題,當我發送數據如何在C#文件中使用它?任何參考或例子? – Ghazanfari

+0

這取決於你有什麼樣的解決方案。你有網站了嗎?你是否已經託管了某種終端? –

0

您需要將數據從網頁發送到Unity3d容器。你可以做這樣的:

u.getUnity().SendMessage(GameObjectName,MethodName,stringParam); 

其中:

u是通過統一創建,如果你使用他們的模板Unity3d容器對象。

GameObjectName是你的地方放置在舞臺上

MethodName爲這是可用於該遊戲物體的方法的名稱的遊戲對象的名稱,這意味着,這將是在組件的一個定義的方法(MonoBehaviour),你附加了GameObject

stringParam si你傳遞給MethodName的參數,該方法只能接受一個字符串參數,所以你需要序列化你的數據,你可以使用JSON.parse({「playerName 「:PlayerName,」playerId「:playerID})

在C#/ Unity一側喲u需要實現具有

void MethodName(string param); 
定義

讀取字符串,並用JSON解析器獲取數據了MonoBheviour。

+0

這聽起來像是unity3d更好,更具體的答案 –

相關問題