1

我是团结的菜鸟。所以,我正在尽力解释我被卡住的问题,我不知道如何解决。我有一个 Ruby on Rails 网站正在运行。

我正在统一构建一个小游戏,它很像库存管理系统。但是,库存是特定于用户的,用户可以对其进行更改。用户将游戏视为其仪表板的一部分。我想做的事:

  1. 用户登陆他的仪表板的那一刻,统一游戏应该加载登录的用户库存。
  2. 为此,我相信 unity webgl 需要与我的应用程序交互并获取用户。

还,

  1. 如何在无需构建应用程序的情况下测试所有这些?
4

2 回答 2

1

如果你想直接与浏览器通信,那么

WebGLindex.html - Application.ExternalCall("MyFunction", MyValue)

index.htmlWebGL - SendMessage("MyGameObject","MyFunction", MyValue)

因此,在您的情况下,当用户登陆他的仪表板时,unity 应该从浏览器获得类似用户登录的 id,这需要从 index.html 调用函数并将其与您从会话中获得的数据一起返回到 unity。

WebGL

public void ReloadInventoryBaseOnUser()
{
    Application.ExternalCall("GetUserID");
}

索引.html

function GetUserID(){
    //$.ajax here to get session id
    SendMessage("Manager","SetUserID", userID);
    focus();
}

WebGL

public void SetUserID(string ID){
    userID = ID;
    ReloadInventory(userID);
}

会话是服务器端的东西,您可以编写一个 Http 处理程序(如果有的话,它将共享会话 ID)并使用$.ajax. 所以假设您已将 id 存储到 js 变量中userID

于 2016-06-28T19:29:15.610 回答
0

您可以在编辑器中测试用户登录/注销和仪表板,而无需构建到WebGl。它会起作用,但你应该开发过程中不时地测试你的游戏的WebGl 以确保你正在做的事情将来会起作用如果不这样做,您的最终游戏可能无法运行,因为您使用了不受支持的WebGL API 。这就是为什么你必须测试游戏,但不是一直测试,只是偶尔测试一次

为了与您的服务器通信,您应该使用新的 Unity API UnityWebRequest而不是WWWWWW 课程将在本月或未来几个月内删除。UnityWebRequest完全支持WebGL构建。WebGL Build不支持.Net类。所以你不能使用HttpWebRequestSockets之类的东西......

于 2016-03-14T12:08:04.140 回答