c# - 服务器和 Unity 应用程序之间的通信

标签 c# mysql unity-game-engine server

我正在使用 Unity 开发一款 Android 游戏。我有一个 pi 服务器(静态 IP、端口转发、apache 2、php、mysql 和 phpmyadmin 均已设置),我想用它来将我的应用程序的分数存储到其中,并检索排行榜的最高分数。我应该使用什么代码来促进我想要的通信?更准确地说,我如何将sql代码发送到服务器并读取数据?

这是我第一次尝试做这种事情,如果这是显而易见的事情,很抱歉。其他信息:端口80设置为转发,数据库名为“game_scores”,表名为“highscore”,该表由4列组成:id、username、score和date。

最佳答案

虽然您的应用程序可以直接与服务器上的 MySQL 数据库通信(through port 3306,而不是端口 80),但促进这种连接的标准方法是实现一个 Web 服务(REST API),该服务在您的服务器上运行,监听来自 Unity 应用程序的 HTTP 请求,并连接到数据库以使用其所需的数据响应您的应用程序。通过 HTTP(或类似协议(protocol))与服务器通信会创建一个抽象层,允许您将来更改或交换服务器或数据库实现,而无需更改客户端。 Here's a decent-looking tutorial描述了如何使用 PHP 和 MySQL 创建简单的 REST API。在服务器上创建 REST API 后,您可以使用 UnityWebRequest 从 Unity 向其发送请求。 .

关于c# - 服务器和 Unity 应用程序之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55668172/

相关文章:

c# - 检查构造函数是否调用另一个构造函数

php - 触发器删除表,然后用 Mysql 插入值

javascript - Unity webgl html5 自定义 microsoft power bi Visual

android - 将 Pushe unity 插件添加到我的 Android 应用程序时出错

javascript - Firefox webgl 上的 Websocket

c# - 在 C# 中使用 DataContractJsonSerializer 使用 List<> 反序列化 JSON 对象

c# - 将无主类型标记为弃用或过时

c# - 带有 OrchardCMS 的 Azure 网站导致 Http5xx 错误

c# - 使用 Dapper 从 MySql 映射日期字段时出现 InvalidCastException

mysql - 当您将两个具有相同属性名称的表相乘时会发生什么?