Unity项目 - DeathtrapDungeon死亡地牢
目录
游戏原型
死亡地牢是一款 2D-Roguelike 的地牢冒险游戏。手握利刃,斩杀怪物,在凶险的地牢内生存下去。但注意,敌人也并非善茬,保持警惕,取舍果断,足智多谋才是制胜的关键。
项目地址:DeathtrapDungeon - SouthBegonia
试玩下载:DeathtrapDounge 提取码:wekp
项目演示




绘图资源
- 主要美术资源来自:Dungeon Tileset - itch
代码实现
总控系统:
- GameManager.cs:单例模式,统一管理各类的实例,及游戏数据(经验,金币,各类Sprite),升级系统,UI管理,场景管理,存读档机制等
生命值系统:
- Fighter.cs:生命值,最大生命值,击退系数;伤害系统
Player:
- Player.cs:Rage怒气系统;换皮肤,死亡重生等
- Mover.cs:移动系统
- Weapon:武器攻击系统,Rage技能系统
Enemy:
- Enemy.cs:大部分敌人的类,包含经验值,追逐攻击系统,死亡复活系统等
- Enemy_Chest.cs:宝箱怪
- Trap.cs:陷阱
- Boss0.cs:最终boss
GUI:
- FloatingTextManager/FloatingText.cs:浮动文本显示系统
- CharacterMenu.cs:菜单栏系统
- CharacterHUD.cs:玩家生命值,经验值,怒气值显示,死亡页面
场景:
- CameraFollow.cs:相机跟随系统
- Portal.cs:不同场景传送门
- Portal_Door.cs:当前场景传送门
交互物件:
- NPCTextPerson.cs:NPC交互
- Chest.cs:宝箱
- Crate.cs:可破坏物件
- HealingFountain:治愈泉水
- Door.cs:开关门
*注意事项
游戏的核心机制,如战斗,场景切换,物体交互等已成型,且Tilemap完善(地面层,上下墙壁层,地表物件层,碰撞层),除了基本的静态Tiles外,还有几个AnimatedTile(泉水,熔岩等),及ChestBrush宝箱笔刷方便宝箱的摆放设置等等。如想要自行定制关卡,完全可以基于此脚本系统下,对Tilemap的重绘、游戏数值、场景物件摆放、NPC台词等即可。
此外,itch.io网站内含有大量优秀的2D绘图资源,可按需合法使用。

技术探讨
- 关于武器挥动进行攻击的animation:
- 武器的Swing动画时间建议大于0.3s,否则间隔过短即便每次都能攻击到敌人但不足以有效推开敌人而被攻击
- 武器劈砍至水平的时间建议在前半时间内完成,因为涉及武器的碰撞伤害;水平下的武器碰撞器范围较长,利于和敌人保持距离,并造成伤害
- 最好模拟真实情况下的劈砍动作,我将其分为以下几部分:
- p1:武器抬起并后仰,此过程速度适中,禁用collider
- p2:从90'到0'进行主劈砍动作.此过程前半速度快,后半速度极快,启用collider
- p3:0'到-20'最终劈砍动作.此过程不在于速度,而在于保持帧数(时间)
- p4:武器收回,速度快,禁用Collider

- Tilemap的绘制:
- 最好在确定美术资源时即确定整体绘制的像素信息,场景风格等,假若后期要添加其他要素,风格不同很不应景
- Tile的类型最好也确定,使用普通tile+animation物体,或是RuleTile实现各类功能
- 瓦片的渲染顺序体现在Tilemap的顺序(例如上墙wall层,下墙壁ScreenWall层;上层可被player遮挡,下层可遮挡player)
- 非瓦片物体的渲染顺序体现在SpriteRenderer里的SortingLayer和OrderLayer;合理设置遮挡与被遮挡关系
- 2D碰撞问题:
- 所有物体最好处于同一z=0平面,否则一些碰撞检测容易出问题
参考来源
Unity项目 - DeathtrapDungeon死亡地牢的更多相关文章
- 为Unity项目生成文档(二)
Unity项目生成文档 接着上篇文章:为Unity项目生成文档(一) .Net项目可在VS配置XML 我们可以在VS中通过配置来生成xml文件,但是unity的project,就算同样配置了xml文档 ...
- unity项目实现“再按一次退出程序”提示功能
unity项目,再按一次退出程序,按第一次做提示,再按一次,程序退出. float _waitTime = 2f;//前后两次按退出间隔时间 void OnGUI() { ) { GUI.Label( ...
- Unity学习笔记(二)——第一个Unity项目Hello Unity
保留版权,转载请注明出处:http://blog.csdn.net/panjunbiao/article/details/9318811 在这一篇文章里,参照宣雨松的<Unity 3D游戏开发& ...
- 关于Unity项目中创建项目遇到的一些问题
1.Unity调用Android的方法默认不是在UI线程执行,所以在Android上写一些页面的重绘的方法,让Unity去调用时,注意要在Android中添加对应的runOnUiThread才可以: ...
- 使用Slua框架开发Unity项目的重要步骤
下载与安装 下载地址 GitHub 安装过程1.下载最新版,这里, 解压缩,将Assets目录里的所有内容复制到你的工程中,对于最终产品,可以删除slua_src,例子,文档等内容,如果是开发阶段则无 ...
- Unity项目开发过程中常见的问题,你遇到过吗?
最近看到有朋友问一个unity游戏开发团队,需要掌握哪些知识之类的问题.事实上Unity引擎是一个很灵活的引擎,根据团队开发游戏类型的不同,对人员的要求也有差异,所以不能一概而论.但是,一些在Unit ...
- 用好lua+unity,让性能飞起来——关于《Unity项目常见Lua解决方案性能比较》的一些补充
<Unity项目常见Lua解决方案性能比较>,这篇文章对比了现在主流几个lua+unity的方案 http://blog.uwa4d.com/archives/lua_perf.html ...
- Unity项目中的资源管理
这是我在2017金山技术开放日分享的部分内容.从贴图资源格式配置的介绍开始,引申出资源配置工具,最后再谈谈一整套项目资源管理方案.在GitHub上可以获取到资源配置工具的代码,是基于下面理念的一份简单 ...
- Unity项目接入应用宝SDK实现截图功能
Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...
随机推荐
- 关于多线程中sleep、join、yield的区别
好了.说了多线程,那就不得不说说多线程的sleep().join()和yield()三个方法的区别啦 1.sleep()方法 /** * Causes the currently executing ...
- 使用CodeBenchmark对逻辑代码进行并发测试
一直对性能测试比较感兴趣,所以也写了不少的测试工具有WebApiBenchmark和TcpBenchmark等;但这些工具测试都是有针对性和配置的方式来进行功能有限所以很难适用更多的场景,所以单独开发 ...
- JAVA通过HTTP方式获取数据
测试获取免费天气数据接口:http://www.weather.com.cn/data/sk/101190408.html URL数据如下图: 代码部分: package https; import ...
- xib上的控件属性为什么要使用weak
常规中,从xib拖出一个控件时,系统会自动生成一段代码,如下: 从这个图片中,可以看到控件的属性都是用的weak,这是为什么呢? 首先,如果把weak修改成strong其实也是可以的,但是会出现一个问 ...
- 洛谷 P2055 【假期的宿舍】
题库 :洛谷 题号 :2055 题目 :假期的宿舍 link :https://www.luogu.org/problem/P2055 首先明确一下:校内的每个学生都有一张床(只是校内的有) 思路 : ...
- POJ-2155-Matrix二位树状数组应用
题目: 一个只有0和1构成的二维平面,给你两种指令,一种是区间的更新,即0变为1,1变为0:一种是查询一个点是1还是0: 由于是二进制,所以每次更新在相应的点上加一,最后对2取余即可. 至于二维的树状 ...
- 杭电多校第十场 hdu6435 CSGO 二进制枚举子集
CSGO Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Subm ...
- 【Offer】[18-2] 【删除链表中重复的节点】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3- ...
- SpringMVC 视图解析器 InternalResourceViewResolver
我们在使用SpringMVC的时候,想必都知道,为了安全性考虑,我们的JSP文件都会放在WEB-INF下, 但是我们在外部是不可以直接访问/WEB-INF/目录下的资源对吧, 只能通过内部服务器进行转 ...
- 063 Python必备库-从人机交互到艺术设计
目录 一.概述 二.Python库之图形用户界面 2.1 PyQt5 2.2 wxPython 2.3 PyGObject 三.Python库之游戏开发 3.1 PyGame 3.2 Panda3D ...