【Unity】RPG2D龙城纷争(一)搭建项目、导入框架、前期开发准备
更新日期:2024年6月12日。
项目源码:后续章节发布
免责声明:【RPG2D龙城纷争】使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何商业用途。
索引
- 【系列简介】
- 【GameComponent 模块简介】
- 【RPG2D 系统简介】
- 【游戏简介】
- 【游戏背景】
- 【游戏玩法】
- 1.回合制
- 2.地图
- 3.角色
- 4.要诀
- 5.获胜条件
- 【演示效果预览】
- 环境搭建
- 导入HTFramework框架
- 导入GameComponent模块
- 导入RPG2D系统
- 使用项目创建向导
- 开始开发
- 创建关卡
- 编辑关卡
- 创建并编辑角色
- 创建并编辑要诀
- 创建并编辑剧情对话
- 创建并编辑升级系统
- 创建AI控制器
- 平衡调节
- 结尾
【系列简介】
本系列会基于HTFramework
框架和RPG2D
系统开发一个名为龙城纷争
的小游戏,他同时也将作为HTFramework
最佳实践的一个例子,RPG2D
系统具备强大的实用性和扩展性,你完全可以基于他继续完善、丰富内容。
本系列会打破常规,不止介绍各个模块或工具的使用方式,还将会从零开始详解各个功能点的实现细节与设计理念,所以为了方便读者结合源码与教程同时学习,便提前放出源码(后续关键章节),但请注意,在教程前进过程中,源码可能会随时更新(改进设计?修复bug?),所以请随时关注源码链接。
【GameComponent 模块简介】
GameComponent
模块作为HTFramework
框架的可选扩展模块,主要包含一些游戏组件,游戏常用功能系统等,必须依赖HTFramework
主框架而存在,目前并未开源。
【RPG2D 系统简介】
RPG2D
系统名为2D角色扮演与回合制战棋快速、持续开发系统,隶属于GameComponent
模块,他提供快速开发2D角色扮演与回合制战棋游戏的各种工具和组件,例如:关卡编辑器、角色定义、角色数据集编辑(使得不同角色只要使用相同数据集就能拥有相同属性)、剧情对话编辑、要诀定义(也即是技能)、要诀特效、战斗系统、升级系统、AI系统(主要为调遣敌方角色战斗)、存档功能、平衡模拟器等。
例如,关卡编辑器(用于编辑关卡、布局角色):
例如,平衡模拟器(用于调节角色、要诀数值,以完善平衡性):
【游戏简介】
龙城纷争
是一款2D俯视角角色扮演、回合制战棋、策略闯关
游戏,玩家可以控制多个角色、使用不同的要诀进行策略战斗,消灭敌方角色或达成通关条件即可通关,且随着关卡的解锁会有新的角色加入玩家队伍。
本游戏玩法借鉴第二次超级机器人大战(FC)。
也许是童年的记忆,超级机器人大战这款游戏即便是现在也依旧对我充满了吸引力,偶尔还会重拾它玩上几把,它的玩法设定在当年是独树一帜的,既有角色扮演
,亦有回合制战棋
,更有策略
,如果你未曾接触过这类游戏,那对于接下来的文章可能会兴致大减(毕竟它是上个世纪的游戏),所以在这里算是一个友好的警示
。
【游戏背景】
龙城是神龙帝国东南方最大的城市,盘踞着帝国最负盛名的十大家族,这里也是四年一度的要诀争霸赛的起点,如今,第十届要诀争霸赛即将开始,入围者将有机会问鼎帝都,面见圣人(90级以上强者的尊称),更有机会获得传世要诀。
络家
在龙城十大家族中排行第二,这里,也是故事的起点…
【游戏玩法】
1.回合制
游戏为回合制
,每一回合(玩家先行动,然后是敌人行动),一个角色只能进行一次行动
,如下行为均消耗一次行动:
- 移动(角色从当前位置移动到任意与自己距离不大于移动速度的格子)
- 移动并使用近程攻击型要诀(角色移动完毕的同时,可使用近程攻击型要诀攻击敌人1次)
- 原地使用近程、远程攻击型要诀(角色未移动,在原地可使用近程、远程攻击型要诀攻击敌人1次)
- 移动并使用近程治疗型要诀(角色移动完毕的同时,可使用近程治疗型要诀治疗自己或队友1次)
- 原地使用近程、远程治疗型要诀(角色未移动,在原地可使用近程、远程治疗型要诀治疗自己或队友1次)
2.地图
地图为正方形网格形式,每个格子拥有自己的属性,地图上的距离均为曼哈顿距离。
3.角色
每一个角色拥有8个要诀槽位(要诀可以理解为技能
),可学习8种不同的要诀,玩家角色击败敌人后会获得经验值以升级(1-100级
),等级提升后会解锁更多的槽位。
4.要诀
要诀分为以下3种:
- 攻击型要诀:可用来攻击敌方;
- 治疗型要诀:可用来治疗友军;
- 加成型要诀:永久提供一些属性加成(特殊加成型,比如
踏水神行
,可在水面上行走,一夫当关
,免疫一切远程攻击伤害);
5.获胜条件
每一个关卡,玩家控制多个角色组成的队伍,与AI控制的多个敌人进行战斗,每一个关卡的获胜条件不同,有全歼敌人、击败指定BOSS、坚持多少回合不团灭等。
【演示效果预览】
龙城纷争的演示效果(主打教学目的,UI界面使用内置素材拼凑而成,看起来更加清晰明了,当然,完全可以自行定制界面
):
【Unity】RPG2D龙城纷争
环境搭建
新建项目、导入框架、以及相关导入设置这里就不在详述,请参阅此篇博客。
导入HTFramework框架
目前推荐使用HTFramework 0.4.1版本,此版本已将支持的Unity版本升级至2022.3.17(长期支持版):
导入GameComponent模块
通过模块管理器下载GameComponent模块到当前项目:(目前未开源无法下载,源码将附带于本系列第二章)
导入RPG2D系统
GameComponent模块也有一个单独的可插拨式模块管理器,通过他可以导入、移除、备份功能模块(部分模块不支持备份),当然RPG2D系统默认是导入的:
打开管理器界面:
管理各个托管系统、组件:
使用项目创建向导
依次点击菜单HTFramework
-> Project Wizard
启动项目创建向导:
Generate Project Folder栏显示推荐的项目源文件目录结构;
Original Setup栏显示初始设置,自动生成的入口场景的名称,以及存放的路径,以及是否自动生成第一个流程类;
点击Generate
按钮即可生成项目源文件目录结构,生成入口场景,生成默认流程类。
生成完成之后,我们的项目Project结构如下(请注意,由于要使用到A*寻路系统,所以RPG2D强制依赖HTFrameworkAI模块
):
开始开发
然后,我们在Main场景的Hierarchy视图中已然能够看到框架主环境:
至此,基本环境已经搭建完成,接下来我们大致了解下RPG2D的工作流程。
创建关卡
通过如下菜单创建一个新的关卡:
然后将关卡设置为预制体:
选中关卡预制体,点击右上角打开按钮,进入预制编辑状态后,再点击打开关卡编辑器按钮:
编辑关卡
在关卡编辑器界面编辑地图、编辑角色:
创建并编辑角色
创建并编辑角色数据集:
创建并编辑要诀
创建并编辑要诀数据集:
创建并编辑剧情对话
创建并编辑剧情对话数据集:
创建并编辑升级系统
创建并编辑升级系统数据集:
创建AI控制器
创建自己的AI控制器,继承至基类AI
,也可以使用缺省的AI_Normal
:
平衡调节
使用平衡模拟器
调节数据平衡:
结尾
至此,通过上面的一系列流程后,就能够完整运行一个关卡了(当然,忽略了UI界面的搭建),不过这里只是做了一个大致的流程简介,接下来,我们将逐代码行
解析程序中实现的各个细节。
相关文章:
![](https://img-blog.csdnimg.cn/direct/baf5880371be4708a14625301d96ef75.png)
【Unity】RPG2D龙城纷争(一)搭建项目、导入框架、前期开发准备
更新日期:2024年6月12日。 项目源码:后续章节发布 免责声明:【RPG2D龙城纷争】使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何商业用途。 索引 【系列简介】…...
![](https://www.ngui.cc/images/no-images.jpg)
多目标跟踪中检测器和跟踪器如何协同工作的
多目标跟踪中检测器和跟踪器如何协同工作的 flyfish 主要是两者 接口间的交互 假设 原始图像尺寸:1920(宽)x 1080(高) 模型输入尺寸:640(宽)x 640(高) 检…...
![](https://www.ngui.cc/images/no-images.jpg)
kali系统几个开机启动项的区别
1、Live system (amd64) 简单的模式 ,启动系统,直接进入 Kali,在系统中的所有的操作和设置都会在下次重启时失效。 Kali 中保存/编辑的所有东西都会重启丢失。 2、Live system (amd64 fail-safe mode) 这种模式与 Live (amd64) 类似…...
![](https://img-blog.csdnimg.cn/direct/be6a9c5086a54e5db556f38fe35e9375.png)
【自撰写】【国际象棋入门】第5课 常见开局战术组合(一)
第5课 常见开局战术组合(一) 本次课中,我们简要介绍几种常见的开局战术组合。开局当中,理想的情况是,己方的两只(或以上)轻子相互配合,或者与己方的兵配合,在完成布局的…...
![](https://img-blog.csdnimg.cn/img_convert/2542aea56a7ab8e9ac1a287799a225fc.jpeg)
高考志愿填报选专业,女孩就业率最好的专业有哪些?
高考志愿填报选专业, 大家都会关心:将来怎么就业? 按照目前的环境来说,女孩的就业是不乐观的,在职场上,绝大部分岗位都是男性优先的,至少短期内可能还无法改变,这样就要求我们在大学…...
![](https://www.ngui.cc/images/no-images.jpg)
yolov5模型训练早停模型变大
目录 1. 背景2. 原因分析2.1 train代码分析2.2 strip_optimizer函数分析 3. 验证 1. 背景 最近使用tph-yolov5训练yolov5l-tph-plus模型时,发现模型收敛的差不多了,就果断的停止了训练,结果发现last.pt和best.pt竟然488M,而正常训…...
![](https://www.ngui.cc/images/no-images.jpg)
next是什么???
大家都知道最近出了一个很火的框架,Next.js框架。很多大公司(例如:Tencent腾讯,docker,Uber)的项目都在使用这个Next.js框架。那Next.js到底是一个什么框架呢?Next.js有什么优点呢?今…...
![](https://img-blog.csdnimg.cn/direct/d38813cdf469454291f843567ba42336.png)
K8s的资源对象
资源对象是 K8s 提供的一些管理和运行应用容器的各种对象和组件。 Pod 资源是 K8s 中的基本部署单元,K8s通过Pod来运行业务应用的容器镜像 Job 和 CronJob 资源用于执行任务和定时任务,DaemonSet 资源提供类似每个节点上守护进程, Deployment…...
![](https://img-blog.csdnimg.cn/direct/88295ebe16c4451282ba39497cea5d7a.png)
OpenStack快速入门
任务一 熟悉OpenStack图形界面操作 1.1 Horizon项目 •各OpenStack服务的图形界面都是由Horizon提供的。 •Horizon提供基于Web的模块化用户界面。 •Horizon为云管理员提供一个整体的视图。 •Horizon为终端用户提供一个自主服务的门户。 •Horizon由云管理员进行管理…...
![](https://img-blog.csdnimg.cn/direct/f50f90017b7b4fb0947cf57291632596.png)
STM32CubeIDE对STM32F072进行ADC配置及使用
目录 1. 配置2. 时钟3. ADC配置4. 代码补充 1. 配置 引脚配置:PB0 2. 时钟 都是48MHz 3. ADC配置 ADC配置: 开启中断: 4. 代码补充 轮训ADC采样: HAL_ADC_PollForConversion(&hadc,10);ADC采样: HAL_ADC_Start (&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Leetcode Hot 100 刷题记录 - Day 1
问题描述: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 示…...
![](https://img-blog.csdnimg.cn/direct/3348af721cba45bc99abad32ff590e58.png)
k8s学习--Kruise Rollouts 基本使用
文章目录 Kruise Rollouts简介什么是 Kruise Rollouts?核心功能 应用环境一、OpenKruise部署1.安装helm客户端工具2. 通过 helm 安装 二、Kruise Rollouts 安装2. kubectl plugin安装 三、Kruise Rollouts 基本使用(多批次发布)1. 使用Deployment部署应用2.准备Roll…...
![](https://www.ngui.cc/images/no-images.jpg)
PHP框架详解 - CakePHP框架
CakePHP 是一个开源的 PHP Web 应用框架,它遵循 MVC(模型-视图-控制器)设计模式。CakePHP 提供了快速开发的功能,如代码自动生成、数据库交互的 CRUD 操作支持、灵活的路由、模板引擎、表单处理以及其它许多有用的特性22。 CakeP…...
![](https://img-blog.csdnimg.cn/direct/eecae5be7e7c409fad2c30832d1987e9.png)
el-cascader 支持多层级,多选(可自定义限制数量),保留最后一级
多功能的 el-cascader 序言:最近遇到一个需求关于级联的,有点东西,这里是要获取某个产品类型下的产品,会存在产品类型和产品在同一级的情况,但是产品类型不能勾选; 情况1(二级菜单是产品&…...
![](https://img-blog.csdnimg.cn/direct/44b6c27e5ffe439e981fcb4181dabd0d.png)
leetcode498 对角线遍历
题目 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。 示例 输入:mat [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,4,7,5,3,6,8,9] 解析 本题目主要考察的就是模拟法,首…...
![](https://img-blog.csdnimg.cn/direct/68c560069bd5471fbde860fd1a6c6a19.jpeg)
北京活动会议通常会邀约哪些媒体参会报道?
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 北京作为我国的首都和文化中心,各类活动会议资源丰富,吸引了众多媒体的关注。以下是一些通常会被邀约参会报道的重要媒体类型: 国家级新闻机构&#x…...
![](https://img-blog.csdnimg.cn/direct/65d94751a8c84b0b9ab6c51b6b51ab76.png)
随心笔记,第六更
目录 一、 三步构建 XML转成java bean 1.XML转XSD 2.XSD转JavaBean 3.jaxb 工具类 4.测试 📢📢📢📣📣📣 哈喽!大家好,我是「Leen」。刚工作几年,想和大家一同进步&am…...
![](https://img-blog.csdnimg.cn/direct/5dacee9b713c4969ab1196b6abaaa92f.png)
zustand 状态管理库的使用 结合TS
zustand 是一个用于React应用的简单、快速且零依赖的状态管理库。它使用简单的钩子(hooks)API来创建全局状态,使得在组件之间共享状态变得容易。 React学习Day10 基本用法 安装:首先,你需要安装zustand库。 npm insta…...
![](https://www.ngui.cc/images/no-images.jpg)
Maven 的生命周期详解
Maven 是目前最流行的项目管理和构建工具之一,广泛应用于 Java 开发项目中。它通过一系列约定和配置,极大地简化了项目的构建、依赖管理和生命周期管理。其中,Maven 的生命周期是其核心概念之一,贯穿了项目从构建、测试、打包到部…...
![](https://img-blog.csdnimg.cn/direct/63829fc46e8c4d76bad5f4172137a14b.jpeg)
【稳定检索/投稿优惠】2024年生物技术与食品科学国际会议(ICBFS 2024)
2024 International Conference on Biotechnology and Food Science 2024年生物技术与食品科学国际会议 【会议信息】 会议简称:ICBFS 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:中国厦门 会议官网:www.icb…...
![](https://www.ngui.cc/images/no-images.jpg)
iOS Category
原理: 【iOS】——分类、扩展和关联对象_ios 为什么分类不能加成员变量-CSDN博客 面试题: 1.Category和Extension区别? 在 Objective-C 中,Category 和 Extension 是两种用于向现有类添加新功能的机制,但它们各有特…...
![](https://img-blog.csdnimg.cn/8ed6c1faf7fa4fe6aa1a0cac18d09a51.png)
5.Sentinel入门与使用
5.Sentinel入门与使用 1.什么是 Sentinel?Sentinel 主要有以下几个功能: 2.为什么需要 Sentinel?3.Sentinel 基本概念3.1 什么是流量控制?3.1.1 常见流量控制算法3.1.2 Sentinel 流量控制流控效果介绍如下: 3.2 什么是熔断?熔断策略 3.3 Sentinel 组成(资源和规…...
![](https://img-blog.csdnimg.cn/direct/6ce60f686c7d42a2b86759f93371e01f.png)
上位机图像处理和嵌入式模块部署(h750 mcu和图像处理)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,h750和之前的103、407相比较,本身cpu频率比较高,flash大小一般,但是ram比较大&#x…...
![](https://img-blog.csdnimg.cn/img_convert/449addfa8d9e9c1f89caf0edbc11f753.jpeg)
信创服务器操作系统的适配迁移分析
浅谈信创服务器操作系统的适配迁移 01 服务器操作系统迁移适配流程复杂 随着CentOS停服临近和红帽RHEL源码权限受限,服务器操作系统安全漏洞风险加剧。国内众多企业面临CentOS、REHL等系统升级替换的挑战。同时,出于安全、功能升级和合规需求࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
在Ubuntu 20.04上安装和配置MySQL 8:详细指南和远程访问设置
目录 一、MySQL 8的特点和优势 二、在Ubuntu 20.04上安装MySQL 8 三、初始化MySQL 四、配置MySQL远程访问 五、 创建远程访问用户 六. 配置防火墙 七、 测试远程访问 总结 MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序和网站中。MySQL …...
![](https://img-blog.csdnimg.cn/direct/50fadf50f4ac4c23982f25e33aa092b5.png)
Vue43-单文件组件
一、脚手架的作用 单文件组件:xxx.vue,浏览器不能直接运行!!! 脚手架去调用webpack等第三方工具。 二、vue文件的命名规则 建议用下面的两种方式。(首字母大写!!!&#x…...
![](https://img-blog.csdnimg.cn/direct/0b12780ee5b047bbbf6f3f62f904ef29.png)
如何快速使用向量检索服务DashVector?
免费体验阿里云高性能向量检索服务:https://www.aliyun.com/product/ai/dashvector 本文将介绍如何快速上手使用向量检索服务DashVector。 前提条件 已创建Cluster:创建Cluster。 已获得API-KEY:API-KEY管理。 已安装最新版SDK:…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux 用户和用户组 创建用户 创建组
介绍 一个组有多个用户,可以给组分配权限,那么该组的使用用户都有该组的权限,就不用一个个分配,而且很好管理。 创建用户组 groupadd 组名删除用户组 groupdel test查看用户所属组 id [用户名]修改用户组 把abc用户添加到m…...
![](https://img-blog.csdnimg.cn/direct/aebc9f4b9ee84350969aab1ab459afce.png)
Character Animator 2024 mac/win版:赋予角色生命,动画更传神
Character Animator 2024是一款强大的角色动画制作软件,以其创新的功能和卓越的性能,为动画师、游戏开发者以及设计师们带来了全新的创作体验。 Character Animator 2024 mac/win版获取 这款软件采用了先进的骨骼绑定技术,使得角色动画的制作…...
![](https://www.ngui.cc/images/no-images.jpg)
短剧app广告变现模式开发
短剧app搭建是一个涉及多个方面的复杂过程,下面将介绍主要的步骤和考虑因素: 明确目标和定位:在开始搭建之前,首先要明确你的目标受众是谁,以及短剧app的主要定位是什么。这有助于在后续的开发过程中更有针对性地进行…...
![](/images/no-images.jpg)
wordpress 描述/自动点击器下载
DataList是ASP.NET的数据控件之一,在使用时要对其进行数据绑定。但是使用过程中难免会出现需要根据已绑定表中的某列数据来作进一步的查询和显示,就需要使用DataList嵌套来解决此类问题。 举例: 1.要显示一张公司的组织结构表,要显…...
![](https://img-blog.csdnimg.cn/img_convert/3cdba8a0340945ce9eb32ef5426c09d3.png)
wordpress 没有样式表/百度推广总部客服投诉电话
前阵子,我和阿里的薪酬福利专家M同学聊了一下午,M同学做了9年薪酬,和我们吐槽了很多薪酬方面的现象,也道出了少有人关注的薪酬逻辑和常识。 这一次,我又找了一位阿里技术岗位的招聘专家T同学,从他的视角中…...
![](/images/no-images.jpg)
临沂网站建设和轶件安装/电脑优化软件哪个好用
Selenium是一个web自动化测试框架。用它可以实现web应用自动化测试。不过,我不只是用它来做测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容。 作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录。那样很蹩脚&…...
![](https://img-blog.csdnimg.cn/20200313125934509.png)
推送网站建设/seo教程有什么
每个期刊或者会议都有自己的篇幅限制,比如近期准备试水的Signal Processing, Elsevier的期刊,要求单栏,双倍行距,所有文字,表格,图,参考文献加起来不超过30页,我觉得还好,…...
![](https://img-blog.csdnimg.cn/20200430150735507.png)
日照做网站公司/如何设置友情链接
目的 序 新的一年又到了,该跳槽的跳槽了,那跳槽是不是又得面试了,面试中总会问些用不到的。或者有些用到的,但是却当时没说出来。后悔万分,之前被这种问题居然问懵逼了。天天上班写代码,忘记了理论知识。今天补充一下…...
wordpress获取url/上海牛巨微seo优化
1.安装indicator-sysmonitor add-apt-repository ppa:fossfreedom/indicator-sysmonitor # apt-get update # apt-get install indicator-sysmonitor2.运行indicator 搜索计算机 indicator 点击右键进入preferences 设置 参考: 1.Ubuntu 16.04 标题栏实时显示上…...