2014-09-04 116 views
2

我打算在Unity3D中开发一款游戏。作为unity IDE提供的开发语言,我没有选择是否将使用javascript,c#脚本或boo。在unity3d中创建本地数据库

在我的游戏中,我需要存储游戏状态:用户名,等级,游戏移动,当前状态,点和所有应该保存的内容。 我想让用户在某个特定的时间内保存游戏,并且可以说在几小时后,当他想要继续游戏时,他将能够从他停止的位置加载游戏。

所以我知道也许我需要2个表,一个用于用户数据,以及其他表中的每个游戏 - 保存游戏状态..

,但我想知道是否有任何选项向Unity添加本地数据库?

我看到这个tutorial介绍如何以保存游戏状态序列化对象..但我不知道这是否会回答我的游戏需要

回答

5

你可以看一下this unity answer一些帮助使用sqlite的。

但是在大多数情况下,我会使用序列化而不是本地数据库。

数据库的优点是您可以轻松搜索数据。

序列化的好处是你可以按你想要的方式创建你的类结构,只需保存/加载它,而不需要适配器和解析。

我会使用数据库,如果我有很多数据,如数千行。或者,如果我的数据有复杂的关系,也就是说大量的表格与它们之间的关系。否则,我认为使用序列化更简单,工作量更少。

+0

我明白了,我想要保存的是游戏状态。 你看,我的游戏是3d俄罗斯方块,可以说如果你玩游戏,15分钟后你需要做一些比玩游戏更重要的事情,你可能想要保存游戏,动作,物体位置,点,日期,水平,在一个给定的名称权?所以这是我需要存储或保存的数据,我认为序列化会是一个很好的方式,但问题是它需要连接到“播放器数据”否? SQLITE不是免费的..我不想为一个项目付出很多钱。 – Elior 2014-09-05 12:36:51

+0

什么是“播放器数据”,它是如何存储的?另外大多数数据库服务器在你的统一游戏之外花费或者需要额外的设置,这对你来说可能是麻烦的。 – Imapler 2014-09-05 14:43:38

+0

我正在考虑有2个表,一个表来存储玩家数据:名称,游戏日期,current_points,game_num 和其他表将game_moves,objects_position。 所以如果我点击“加载游戏”,它会显示我保存他们的游戏的玩家列表,当我选择一些玩家,我得到他所有保存的游戏..然后加载它 – Elior 2014-09-05 22:09:47