【Unity】RPG2D龙城纷争(一)搭建项目、导入框架、前期开发准备

news2024/11/25 21:16:06

更新日期: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界面的搭建),不过这里只是做了一个大致的流程简介,接下来,我们将逐代码行解析程序中实现的各个细节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1816981.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

winget install 命令快速安装git到Windows系统

打开命令提示符或PowerShell: 使用快捷键Win X,然后选择“Windows PowerShell”或“命令提示符”。你也可以直接在开始菜单中搜索“cmd”或“PowerShell”。 运行winget命令安装Git: 在命令提示符或PowerShell中,输入以下命令并按回车: win…

Allegro光绘Gerber文件、IPC网表、坐标文件、装配PDF文件导出打包

Allegro光绘Gerber文件、IPC网表、坐标文件、装配PDF文件导出打包 一、Gerber文件层叠与参数设置二、装配图文件设置导出三、光绘参数设置四、Gerber孔符图、钻孔表及钻孔文件输出五、输出Gerber文件六、输出IPC网表七、导出坐标文件八、文件打包 一、Gerber文件层叠与参数设置…

服务攻防-数据库安全(数据库与漏洞利用)

1.安全服务的渗透过程 1.1 判断服务 如果要进行安全服务的渗透,我们先需要知道这个服务是否开启了,在数据库这个部分我们的判断方法主要有以下三种: - 扫描端口:对于不同的数据库来说,使用的端口也是不一样的&#x…

智慧金融新视野:银行数据中心可视化大屏的崛起

在数字化浪潮的推动下,银行业正迎来一场前所未有的变革。在这场变革中,银行数据中心可视化大屏以其独特的魅力,为银行的数据分析和决策提供强有力的支持。 随着金融科技的不断发展,银行对于数据处理和分析的需求日益增长。银行数据…

umi 获取umirc下router配置的name

解决 import { useRouteProps } from umijs/maxexport default function Page() {const routeProps useRouteProps()console.log(routeProps)// use routeProps.custom_key }参数如下图 文档 https://umijs.org/docs/api/api#userouteprops

Latex | 数学公式

Latex 最近在学习使用 LaTeX 来敲公式,写材料。说实话,这个工具在写公式方面,确实堪称神器!不只是我,连爱因斯坦要是看到它,估计都会点个赞。 在这里,我也得给大家分享一个宝藏网址&#xff1…

关闭windows11的Defender病毒防护

windows11自带的Defender病毒防护并不是每个人都需要,有些人需要关掉它。网上一搜,出现的都在说在安全中心关闭,但这样关闭后依旧随时都在防护着,有些小软件一运行就会给删掉。 以下的方法也是在网上搜索的,但行之有效…

3-哈希表-71-三数之和-LeetCode15

3-哈希表-71-三数之和-LeetCode15 参考:代码随想录 LeetCode: 题目序号15 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998&#xff…

2024年6月15日(星期六)骑行老厂村

2024年6月15日 (星期六) 骑行老厂村(新路),早8:30到9:00, 大观公园门囗集合,9:30准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:大观公园门囗集合 ,家住东&#xf…

15.RedHat认证-Ansible自动化运维(上)

15.RedHat认证-Ansible自动化运维(上) RHCE8-RH294 Ansible自动化(Ansible版本是2.8.2) Ansible介绍 1.Ansible是什么? Ansible是一个简单的强大的无代理的自动化运维工具(Ansible是自动化运维工具)Ansible特点 简…

八字综合测算网整站源码程序/黄历/灵签/排盘/算命/生肖星座/日历网/周公解梦

八字综合测算网整站源码程序/黄历/灵签/排盘/算命/生肖星座/日历网/周公解梦 演示地址: https://s24.gvyun.com/ 手机端地址: https://ms24.gvyun.com/ 网站功能分类: 八字:八字测算;日干论命;称骨论命…

争议不断:金额到底是用Long还是BigDecimal?

先问个问题,在开发过程中你是选择用Long还是BigDecimal来处理金额? 浮点数陷阱 为什么排除float和double 浮点数无法精确表示许多十进制数。 我们希望输出0.3,但由于浮点数的表示问题,实际结果却是0.30000000000000004&#xff…

Python强化学习(Reinforcement Learning, RL)库之gymnasium使用详解

概要 在强化学习(Reinforcement Learning, RL)领域中,环境(Environment)是进行算法训练和测试的关键部分。gymnasium 库是一个广泛使用的工具库,提供了多种标准化的 RL 环境,供研究人员和开发者使用。通过 gymnasium,用户可以方便地创建、管理和使用各种 RL 环境,帮助…

代码随想录算法训练营第四十三天 | 01背包问题理论基础、01背包问题滚动数组、416. 分割等和子集

背包问题其实有很多种,01背包是最基础也是最经典的,软工计科学生一定要掌握的。 01背包问题 代码随想录 视频讲解:带你学透0-1背包问题!| 关于背包问题,你不清楚的地方,这里都讲了!| 动态规划经…

如何将jpg图像添加文字并转换成无压缩的dicom图像

操作系统ubuntu 20 安装imagemagick sudo apt install imagemagick 安装dcmtk sudo apt install dcmtk 脚本如下 #!/bin/bash# Font font"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"# Font size fontsize30# Font color fontcolor"red" conver…

《web应用技术》第十一次作业

1、验证过滤器进行权限验证的原理。 代码展示: Slf4j WebFilter(urlPatterns "/*") public class LoginCheckFilter implements Filter { Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) thro…

数控机床采集网关的应用-天拓四方

随着工业4.0时代的到来,智能制造成为制造业转型升级的重要方向。数控机床作为制造业的核心设备,其数据采集与监控对于提升生产效率、优化生产流程具有重要意义。本案例将介绍数控机床采集网关的应用,通过该网关实现数控机床数据的实时采集、传…

道闸系统怎么录入车牌,停车场道闸车牌输入方法有哪些?

现在智慧停车场管理系统越来越受到重视,停车场道闸系统作为其中的核心组成部分,通过车牌识别技术实现了车辆的快速、准确管理,但在道闸系统初期也存在手动需要录入车牌的工作。本文将详细介绍道闸系统录入车牌的步骤和方法,帮助管…

论文写作革新:AI如何简化你的研究流程?

不知道大家有没有发现,随着人工智能技术的快速发展,AI工具正逐渐渗透到我们日常生活的各个方面,极大地提高了我们的工作和学习效率。无论是AI写作、AI绘画、AI思维导图,还是AI幻灯片制作,这些工具已成为我们不可或缺的…

16 DTLS协议

加密解密基本概念 什么是非对称加密 什么是公钥 这个就是谁都能获得的钥匙什么是私钥 只有一个人能获得 非对称加密就是公钥上的锁,私钥才能打开,私钥上的锁公钥才能打开。比如说就是地下党接头的时候,把一个信息放在盒子里,然…