关于Unity对数据库进行操作的问题,期待大神解答

想不开的教书人 2018-12-19 11:58:53
不太明白,Unity做的游戏,到底是如何对数据库进行操作的?
游戏里那么多数据存入到库中,是通过什么方式存入的?
看到网上说直接连接mysql的很少,我有做过,然后就是用php连接mysql,但是说php连接的也没看到几篇。(这个没做过)
之前做的对数据库进行操作都是局域网内的,网络的就很疑惑了。
pass,如果有大神解答,最好从mysql或者sqlsever说。感谢
...全文
228 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 jwxkk 的回复:
用java c#php写接口,然后u3d用http请求调用接口与数据库交换数据
java还理解点,php的话实在没看过什么
  • 打赏
  • 举报
回复
引用 5 楼 幽幽有悠悠呦 的回复:
[quote=引用 4 楼 zhaojingj 的回复:] [quote=引用 3 楼 幽幽有悠悠呦 的回复:] 首先,客户端直接连接数据库是不允许的。因为会被拦截、逆向出数据库连接IP、端口、账号、密码等敏感信息。 所以,数据库的连接都是放在服务器上,所以对数据的增删改查全部都是客户端告诉服务器去执行。 至于怎么告诉服务器,这个是属于协议层面问题。客户端需要跟服务器规定一个协议。 例如客户端发个1过去,服务器需要知道1代表啥意思这样子。然后服务器发回0。客户端需要知道服务器发的0代表的是什么意思:例如成功失败标记。 这个只是举例。实际肯定不仅仅是0和1这么简单的一位数据,可能会更多数据。例如前4个字节表示当前传输包有多长,再4个字节表示当前数据包要执行的是什么命令,之后连续多个字节表示执行这个命令需要用到的参数列表等等。
我也是考虑过socket然后和服务器弄得情况,看网上说PHP链接,有点怀疑是否直接用socket会繁琐了,一个游戏交互量那么大的[/quote] Socket是繁琐了点。但相对php而言好处也不少。例如数据精简。不会发送不必要的数据。例如PHP的话,必须遵循HTTP协议。需要HTTP协议附带的内容。增加不必要的流量负担。还比如。HTTP本身如果没开启持续链接状态是一次请求一次连接。每次请求都浪费时间在建立连接的握手上。而且PHP的话。跟Unity开发的语言C#不同。不方便维护。因为需要有一个同时会C#和php的,或者一个会C#一个会php两个程序员的组合才能进行维护以及二次开发![/quote] 十分受教,感谢大佬
jwxkk 2018-12-26
  • 打赏
  • 举报
回复
用java c#php写接口,然后u3d用http请求调用接口与数据库交换数据
幽幽有悠悠呦 2018-12-25
  • 打赏
  • 举报
回复
首先,客户端直接连接数据库是不允许的。因为会被拦截、逆向出数据库连接IP、端口、账号、密码等敏感信息。 所以,数据库的连接都是放在服务器上,所以对数据的增删改查全部都是客户端告诉服务器去执行。 至于怎么告诉服务器,这个是属于协议层面问题。客户端需要跟服务器规定一个协议。 例如客户端发个1过去,服务器需要知道1代表啥意思这样子。然后服务器发回0。客户端需要知道服务器发的0代表的是什么意思:例如成功失败标记。 这个只是举例。实际肯定不仅仅是0和1这么简单的一位数据,可能会更多数据。例如前4个字节表示当前传输包有多长,再4个字节表示当前数据包要执行的是什么命令,之后连续多个字节表示执行这个命令需要用到的参数列表等等。
幽幽有悠悠呦 2018-12-25
  • 打赏
  • 举报
回复
引用 4 楼 zhaojingj 的回复:
[quote=引用 3 楼 幽幽有悠悠呦 的回复:]
首先,客户端直接连接数据库是不允许的。因为会被拦截、逆向出数据库连接IP、端口、账号、密码等敏感信息。

所以,数据库的连接都是放在服务器上,所以对数据的增删改查全部都是客户端告诉服务器去执行。

至于怎么告诉服务器,这个是属于协议层面问题。客户端需要跟服务器规定一个协议。

例如客户端发个1过去,服务器需要知道1代表啥意思这样子。然后服务器发回0。客户端需要知道服务器发的0代表的是什么意思:例如成功失败标记。

这个只是举例。实际肯定不仅仅是0和1这么简单的一位数据,可能会更多数据。例如前4个字节表示当前传输包有多长,再4个字节表示当前数据包要执行的是什么命令,之后连续多个字节表示执行这个命令需要用到的参数列表等等。


我也是考虑过socket然后和服务器弄得情况,看网上说PHP链接,有点怀疑是否直接用socket会繁琐了,一个游戏交互量那么大的[/quote]

Socket是繁琐了点。但相对php而言好处也不少。例如数据精简。不会发送不必要的数据。例如PHP的话,必须遵循HTTP协议。需要HTTP协议附带的内容。增加不必要的流量负担。还比如。HTTP本身如果没开启持续链接状态是一次请求一次连接。每次请求都浪费时间在建立连接的握手上。而且PHP的话。跟Unity开发的语言C#不同。不方便维护。因为需要有一个同时会C#和php的,或者一个会C#一个会php两个程序员的组合才能进行维护以及二次开发!
  • 打赏
  • 举报
回复
引用 3 楼 幽幽有悠悠呦 的回复:
首先,客户端直接连接数据库是不允许的。因为会被拦截、逆向出数据库连接IP、端口、账号、密码等敏感信息。 所以,数据库的连接都是放在服务器上,所以对数据的增删改查全部都是客户端告诉服务器去执行。 至于怎么告诉服务器,这个是属于协议层面问题。客户端需要跟服务器规定一个协议。 例如客户端发个1过去,服务器需要知道1代表啥意思这样子。然后服务器发回0。客户端需要知道服务器发的0代表的是什么意思:例如成功失败标记。 这个只是举例。实际肯定不仅仅是0和1这么简单的一位数据,可能会更多数据。例如前4个字节表示当前传输包有多长,再4个字节表示当前数据包要执行的是什么命令,之后连续多个字节表示执行这个命令需要用到的参数列表等等。
我也是考虑过socket然后和服务器弄得情况,看网上说PHP链接,有点怀疑是否直接用socket会繁琐了,一个游戏交互量那么大的
  • 打赏
  • 举报
回复
贴肯定结的,分也可以加,求个解答
  • 打赏
  • 举报
回复
感觉论坛人好少,还是问题太白了,没人理

2,526

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧