我是团结的菜鸟。所以,我正在尽力解释我被卡住的问题,我不知道如何解决。我有一个 Ruby on Rails 网站正在运行。
我正在统一构建一个小游戏,它很像库存管理系统。但是,库存是特定于用户的,用户可以对其进行更改。用户将游戏视为其仪表板的一部分。我想做的事:
- 用户登陆他的仪表板的那一刻,统一游戏应该加载登录的用户库存。
- 为此,我相信 unity webgl 需要与我的应用程序交互并获取用户。
还,
- 如何在无需构建应用程序的情况下测试所有这些?
我是团结的菜鸟。所以,我正在尽力解释我被卡住的问题,我不知道如何解决。我有一个 Ruby on Rails 网站正在运行。
我正在统一构建一个小游戏,它很像库存管理系统。但是,库存是特定于用户的,用户可以对其进行更改。用户将游戏视为其仪表板的一部分。我想做的事:
还,
如果你想直接与浏览器通信,那么
从WebGL到index.html - Application.ExternalCall("MyFunction", MyValue)
从index.html到WebGL - 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
您可以在编辑器中测试用户登录/注销和仪表板,而无需构建到WebGl。它会起作用,但你应该在开发过程中不时地测试你的游戏的WebGl ,以确保你正在做的事情将来会起作用。如果不这样做,您的最终游戏可能无法运行,因为您使用了不受支持的WebGL API 。这就是为什么你必须测试游戏,但不是一直测试,只是偶尔测试一次。
为了与您的服务器通信,您应该使用新的 Unity API UnityWebRequest而不是WWW。WWW 课程将在本月或未来几个月内删除。UnityWebRequest完全支持WebGL构建。WebGL Build不支持.Net类。所以你不能使用HttpWebRequest或Sockets之类的东西......