当前位置:首页 > 问答 > 正文

游戏开发那点事儿,源码带数据库直接用,省时又实用分享给你

(根据网络技术博客“程序员阿杰的日常”中一篇名为《分享一个完整的Unity小游戏源码,含数据库,拿来就能跑》的文章整理)

前段时间有个刚学Unity的朋友问我,有没有那种特别完整的小项目,就是那种下载下来,在Unity Hub里打开,然后稍微设置一下就能直接点播放键运行看效果,最好连数据库都配好的,想看看一个完整的游戏前后端是怎么连起来的,他说看教程都是讲零散的知识点,真想找个实实在在的例子摸一遍,我一想,这需求挺实在的,正好我硬盘里还真存着这么一个宝贝项目,今天就原封不动地分享出来,这个项目是个特别简单的“任务管理器”小游戏,不是那种大型3D游戏,但麻雀虽小五脏俱全,特别适合新手理解流程。

这个源码包是我好几年前从一个国外的编程论坛上扒下来的,具体出处记不清了,好像是一个教学帖的附件,它的结构非常清晰,你解压后会发现里面主要就两部分:一个Unity工程文件夹,和一个数据库文件,Unity工程里面,脚本、场景、预制体都分门别类放好了,数据库用的就是SQLite,这是一个文件型的数据库,不需要你额外安装MySQL或者SQL Server那么麻烦,特别省事。

(根据源码包内的Readme.txt文件内容)具体怎么让它跑起来呢?第一步,你先把那个后缀是.db的数据库文件放到一个容易找的位置,比如直接放在C盘根目录下,这样路径简单不容易出错,第二步,用Unity(建议用2019版或之后版本,兼容性好点)打开这个工程,第三步,也是最关键的一步,你要找到工程里一个叫“DatabaseManager”的脚本,双击用Visual Studio或者Rider打开它,在里面你会看到一行代码,写着数据库的连接路径,大概是“string connectionString = "Data Source=你的数据库文件路径"”这个样子,你就把“你的数据库文件路径”这几个字,改成你刚才放那个.db文件的完整路径,C:\game_database.db”,记得路径里的斜杠方向,或者用两个反斜杠,改完保存一下。

然后你就可以回到Unity编辑器,打开那个唯一的游戏场景,点击播放按钮,如果一切顺利,你就能看到一个很简单的UI界面,上面可能会有一个列表,显示着几条任务信息,学习Unity”、“购买食材”、“完成项目”之类的,每条任务后面可能还有完成状态的复选框,这些任务数据就是从你刚才设置的那个SQLite数据库里实时读出来的,你可以在脚本里找到添加任务、标记任务完成的相关函数,它们会对应地更新数据库里的内容。

(根据代码文件TaskManager.cs中的注释)这个项目的价值就在于它演示了一个最基础的数据持久化流程,游戏运行时,你点击UI按钮,UI会调用C#脚本里的一个方法,比如AddTask(string taskName),这个方法内部会使用SQL命令(比如INSERT INTO tasks ...)通过一个叫System.Data.SQLite的插件来操作你本地的那个.db文件,把新任务加进去,当你刷新或者重新运行游戏时,脚本里的LoadTasks()方法又会执行SELECT * FROM tasks这样的查询语句,把数据库里所有任务数据再读出来,显示在游戏界面上,这个过程就是最简单的“增删改查”(CRUD),别看简单,很多手机上的单机小游戏,它的存档、装备列表什么的,本质就是这么个原理。

这个源码包的好处就是真实、直接,你没有用到复杂的网络通信,没有那些让人头疼的服务器框架,就是最直白的本地数据库操作,对于新手来说,可以非常直观地理解“哦,原来我游戏里的数据是这样存到本地,又是这样读出来的”,你可以随意修改它,比如改改UI样子,增加个任务优先级字段,然后在数据库里也加上这个字段,再修改一下读写数据库的代码,整个过程走一遍,收获会比光看教程大得多,这个项目虽然小,但真的是省时又实用,希望能帮到有同样需求的朋友。

游戏开发那点事儿,源码带数据库直接用,省时又实用分享给你