说明

unity的ECS框架正式版都发布很久了,不知道为什么一直没有人出个新版文字教程,那我来。

该系列并不是按照时间出,而是按照功能里程碑,解决一个大问题就会写上一点,也就是说,如果我脑子卡住了,当场入宫也不是不可能。


(资料图片仅供参考)

另外我不会特意按照大多数人的环境来,希望学习商业化游戏开发的人注意避雷,有可能给你带沟里去。

从开发环境开始

华硕 RTX2060-O6G

Inter i5-10400F

Windows 11 Pro 22H2

Unity 2023.1.0b28

Rider 2023.1.2

目标

制作一个仿minecraft的游戏,能跑不太卡就行,但是不严格照搬原版玩法(总之就突出一个想到哪做到哪)。

本期主要目标有两个,建立工程、创建前后端分离工程。

正文

那么,开始吧,从创建工程开始,和大部分教程一样,我选择3D-URP工程模板。

这里我说一下默认、URP和HDRP的浅显区别(这三者都是指渲染管线):

默认是Unity最早所使用的强兼容管线,也就是说,就算你从远古版本的Unity升级到Beta版本,管线依然可以使用,当然代码是另说。

URP是Unity官方所推荐的选项,兼容性很棒,就是略新了点,而且加入了可编程渲染模式,十分高端大气,虽然我暂时用不着,万一以后要用呢。

HDRP是Unity官方想推广的新版本渲染管线,其实兼容性也不错,可惜听说乐意尝试这玩意的人还比较少,教程更是少得可怜,其实可以用,但就得会找资料,我很懒所以告辞。

然后等工程创建完毕,在菜单栏里点击Window--Package Manager,安装Entities、Entities Graphics和Unity Graphics,如果已经安装了那就跳过。

至此,Unity工程创建完成。

然后是前后端分离,为什么要做这种东西?因为我觉得一个合格的游戏逻辑核心不能完全依赖于某一个引擎,然后既然核心都抽出来了,那做个联机服务器也不过分吧?如果加上多人支持是挺过分,所以先做单人部分,多人说不定做着做着就知道怎么做了。

按照默认参数新建C#工程,注意,不要勾选【将解决方案和项目放在同一个目录下】,不然后续会出问题。

至于工程名,你可以随便写,总之第一层是母工程,第二层需要包含两个解决方案:

1. 共用代码,新建之后,在解决方案名字上面右键--属性,将目标框架修改为netstandard2.1,输出类型修改为类库,语言版本为C# 9.0

2. 服务器代码,新建之后,请确保输出类型是【控制台应用程序】(或者任何你希望的服务器程序形式,总之不能是类库)

3. unity代码,无需新建,将unity工程拷贝到根目录之后,在母工程那一层右键--添加--现有项目,选中【Assembly-CSharp】这个解决方案就行,记得添加完就【右键--卸载项目】,这玩意就是看着好看的

然后重点来了,我们如何将1和3勾连在一起呢?

在1对应的解决方案上右键,进入【构建事件】选项卡,添加构建后命令

copy /y "$(TargetDir)$(TargetName).dll" "..\minecraft-unity\Assets\Scripts\PreCompile\$(TargetName).dll"

然后每次build后,等待unity自动引入后,就可以在unity层调用base库的逻辑了。

但是这样就够了吗?自然不够,下一篇专栏我就正式开始写代码层面的那些事情。

推荐内容