繁体   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