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