![](/img/trans.png)
[英]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.