簡體   English   中英

傳遞javascript參數並在統一C#文件中使用它們

[英]passing javascript parameters and using them in unity C# files

我想在運行時(webplayer)傳遞一些javascript參數以使其統一並在network.cs腳本中使用它們。

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

僅考慮我正在使用以上參數登錄用戶。

您需要將數據從網頁發送到Unity3d容器。 您可以執行以下操作:

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

哪里:

u是使用unity創建的Unity3d容器對象(如果使用它們的模板)。

GameObjectName是您放置在舞台上某個地方的游戲對象的名稱

MethodName是可用於該GameObject的方法的名稱,這意味着它將是在附加GameObject的組件之一(MonoBehaviour)中定義的方法。

stringParam是您傳遞給MethodName的參數,該方法只能接受一個字符串參數,因此您需要序列化數據,可以使用JSON.parse({“ playerName”:PlayerName,“ playerId”:playerID})

在C#/ Unity端,您需要實現一個MonoBheviour,它具有一個

void MethodName(string param);

定義讀取字符串,並使用JSON解析器將數據取出。

您需要將該數據發布回服務器。 如果您不希望重新加載整個頁面,則可能需要使用AJAX。

jQuery是促進ajax的常用框架。

您將需要一個端點,在您的C#中編寫(從network.cs上的文件結尾進行猜測)以讀取客戶端javascript發布的內容。 我不知道您使用的是哪個版本的.net,但是請研究WebAPI-它很容易實現。

TL; DR

  1. 使用javascript / jquery將您的數據從客戶端發布到服務器。
  2. 通過WebAPI或僅讀取查詢字符串/表單值的普通.aspx頁面,讀取服務器端發布的數據

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

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

如果要發出獲取請求,則可以將POST更改為GET 如果您對url使用普通的.aspx頁面,則可以通過Request.FormRequest.QueryString讀取數據。 如果您使用WebAPI,它將被注入到您的方法參數中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM