铁骑黑天使是一个支持多人联机的2D俯视角射击游戏,拥有单人战役模式和多人模式。
本项目主要实现了以下功能:
- 局域网多人联机
- 角色Logic State Manager(角色逻辑状态与Buff管理系统),支持各种复杂逻辑状态容斥关系和Buff持续时间、Buff效果等内容的开发与配置。
- 使用Token Pool(用于控制敌方AI攻击欲望的系统)、Logic State Manager(角色逻辑状态与Buff管理系统)、AI行为树等技术实现的游戏敌方AI
- 丰富的战斗系统:拥有各种火箭炮、散弹枪、激光武器、手雷、炸弹等武器和道具。
- Unity 2022.3.2.9740
- Github Desktop
- Visual Studio Code 并安装插件以下插件:
C#
C# Dev Kit
IntelliCode for C# Dev Kit
C# XML Documentation Comments
(安装完以上C#相关插件后,使用插件自带的功能安装.Net8和.Net Framework4.7.1,不要跑网上乱下)
Unity
Markdown Preview Enhanced
PlantUML
PDF Preview
Bookmarks
双击open_unity.bat
(在这之前,请把Unity的安装目录添加到Path环境变量下)
- 武器预制体要把碰撞体的callback layer设置成nothing,不然会无法触发玩家护盾和护甲的碰撞
- 在
Prefabs/Global
文件夹下有CameraTarget,MainCamera,VirtualCamera
三个相机相关的预制体,将三个预制体拖入场景(需要确保场景中这三种预制体实例有且仅有一个, 尤其注意主相机只能由一个,不然会抢夺最终画面渲染权),然后将CameraTarget
拖给VirtualCamera
的CinemachineVirtualCamera
组件下的Follow
- 如果觉得相机的缓动移动太快的话,可以设置
VirtualCamera
的CinemachineVirtualCamera
组件下的Body
下的X Damping
和Y Damping
,这两个参数是XY轴的移动缓动系数,目前设置为0 - 相机的画面大小设置在
VirtualCamera
的CinemachineVirtualCamera
组件下Lens
下的Ortho Size
设置数值,目前数值为10
假设你需要新增一个状态,名为PlayerMoving,当玩家正在位移时就会添加这个状态,玩家禁止时移除这个状态。 那么你需要找程序员在ELogicState中添加这个枚举,并且在LogicStatesSettings的列表LogicStateTemplates中添加这个状态的生成模板对象。 然后策划在Assets/Config目录中找到对应的配置,并且设置它。
- 其中,状态只会在满足LogicStateManager中有included列表中定义的状态,且没有exincluded列表中的状态时,才能存在。当AutoStateOut选项打勾时,如果运行时不满足这一容斥条件了,这个状态就会被自动移除,AutoStateOut未打勾时,不会自动退出。
- 每个状态默认持续时间为无限时长,由程序员在逻辑中移除这个状态,如果状态存在的时间超过了这个设置,也会被自动移除。设置Duration时,输入inf并回车,会被自动补全为infinity,无限持续时长。
使用LogicState系统,可以很好地管理各种逻辑互斥问题,状态容斥问题、持续Buff问题、CD等待问题等等。