[英]C# - passing parameters by reference to constructor then using them from method
[英]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
如果您只想從客戶端發送數據,而不必擔心任何響應,則可以使用
$.ajax({
type: "POST",
url: url,
data: {PlayerName: PlayerName, PlayerId: playerID},
});
如果要發出獲取請求,則可以將POST
更改為GET
。 如果您對url
使用普通的.aspx頁面,則可以通過Request.Form
或Request.QueryString
讀取數據。 如果您使用WebAPI,它將被注入到您的方法參數中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.