我想在运行时(webplayer)将一些javascript参数传递给unity并在我的network.cs脚本中使用它们。
<html>
<script type="text/JavaScript">
//<![CDATA[
PlayerName = "Adam";
playerID = "56";
//]]>
</script>
</html>
考虑我正在使用上述参数登录用户。
答案 0 :(得分:1)
您需要将数据从网页发送到Unity3d容器。你可以这样做:
u.getUnity().SendMessage(GameObjectName,MethodName,stringParam);
其中:
如果您使用他们的模板,则是Unity创建的Unity3d容器对象。
GameObjectName是您放置在舞台上某处的游戏对象的名称
MethodName是可用于该GameObject的方法的名称,这意味着它将是您附加GameObject的其中一个组件(MonoBehaviour)中定义的方法
stringParam si你传递给MethodName的参数,该方法只能接受一个字符串参数,所以你需要序列化你的数据,你可以使用JSON.parse({&#34; playerName&#34;:PlayerName,& #34; playerId&#34;:playerID})
在C#/ Unity方面,您需要实现具有
的MonoBheviourvoid MethodName(string param);
定义读取字符串并使用JSON解析器获取数据。
答案 1 :(得分:0)
您需要将该数据发布回您的服务器。如果您不想重新加载整个页面,可能需要使用AJAX。
一个常用的框架,促进ajax是jQuery。
您需要一个端点,在您的c#中写入(从您在network.cs上的fileending猜测)来读取您的客户端javascript发布的内容。我不知道您所使用的.net版本,但查看WebAPI - 它很容易实现。
TL; DR
如果您只想从客户端发送数据,而不担心任何响应,可以使用
$.ajax({
type: "POST",
url: url,
data: {PlayerName: PlayerName, PlayerId: playerID},
});
如果您想要获取get请求,可以将POST
更改为GET
。如果您使用Request.Form
的普通.aspx页面,则可以通过Request.QueryString
或url
读取数据。如果您使用WebAPI,它将被注入您的方法参数。