【制作100个unity游戏之26】unity2d横版卷轴动作类游戏5(附带项目源码)

最终效果

在这里插入图片描述

系列导航

文章目录

  • 最终效果
  • 系列导航
  • 前言
  • 三段攻击
  • 攻击
  • 设置只对敌人造成伤害
  • 限制可以移动攻击
  • 问题 角色连续按四下攻击,最后会多a一下
  • 问题:站在原地连续攻击野猪,只有第一下攻击野猪才掉血,后面的攻击野猪不掉血
  • 源码
  • 完结

前言

欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第26篇中,我们将探索如何用unity制作一个unity2d横版卷轴动作类游戏,我会附带项目源码,以便你更好理解它。

本节主要是添加攻击和三段攻击

三段攻击

新增攻击图层,权重设置为1,覆盖模式
在这里插入图片描述
配置攻击动画
在这里插入图片描述
一段攻击播放90%,按了按键进入下一个攻击状态,最后一段攻击也是一样
在这里插入图片描述

一段攻击播放了百分百就退出,其他两段攻击一样
在这里插入图片描述
添加攻击按键操作
在这里插入图片描述
键盘按键
在这里插入图片描述
在这里插入图片描述

手柄按键,如果有的话
在这里插入图片描述
修改PlayerAnimation

//播放攻击动画
public void PlayAttack(){
    anim.SetTrigger("attack");
}

修改PlayerController

public bool isAttack;//是否攻击

private void Awake()
{
    // 。。。
    
    inputControl.Player.Attack.started += PlayerAttack;
}

//攻击
private void PlayerAttack(InputAction.CallbackContext context)
{
    playerAnimation.PlayAttack();
    isAttack = true;
}

效果
在这里插入图片描述

攻击

分别配置三段攻击动画触发区域
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置动画在合适的位置开启对应攻击触发器
在这里插入图片描述

设置只对敌人造成伤害

默认关闭攻击触发器,新增图层
在这里插入图片描述
确保配置只对敌人层造成伤害
在这里插入图片描述

如果你是unity2022版本(我这里是2021),你还可通过修改配置接触捕捉层的方式实现只对敌人层造成伤害
在这里插入图片描述
还要记得设置敌人的受伤无敌时间和生命值
在这里插入图片描述

如果你使用的是2022版本的unity,我们可以给野猪配置2个碰撞器,一个用于触发伤害,所以即使我们前面设置好了也可能不会造成伤害,我们需要提高野猪触发器的碰撞检测优先级
在这里插入图片描述
效果,野猪受伤并扣血
在这里插入图片描述

限制可以移动攻击

前面测试会发现人物可以移动攻击,因为我们没有做任何的限制
在这里插入图片描述
修改PlayerController

private void FixedUpdate()
{
    //受伤和攻击禁止移动
    if(!isHurt && !isAttack) Move();
}

每一段攻击动画都挂载状态机脚本,确保动画播放完isAttack变为false
在这里插入图片描述
在这里插入图片描述
测试发现还是会滑步,因为前面我们把人物物理材质改成了无摩檫力,其实方法有很多,在人物脚底再放一个带摩檫力的碰撞体也行,代码控制人物在跳起来取消摩檫力也行,这里为了方便我们直接在人物脚下再放一个碰撞体
在这里插入图片描述
效果
在这里插入图片描述
可以看到,这样攻击还是会有间隙,导致攻击前移,如果你不想要这种效果可以修改前面的AttackFinish(也可以保留,看自己项目的需求)
在这里插入图片描述

效果
在这里插入图片描述

问题 角色连续按四下攻击,最后会多a一下

可以在动画入口再多加一层判断
在这里插入图片描述
修改PlayerAnimation

anim.SetBool("isAttack", playerController.isAttack);

问题:站在原地连续攻击野猪,只有第一下攻击野猪才掉血,后面的攻击野猪不掉血

出现这个现象是因为OnTriggerStay2D有个休眠时间,它被触发一段时间后自动停止。要想再次触发该函数需要稍微移动其中一个碰撞盒,也就是玩家需要移动到不同位置攻击野猪它才会掉血。后面会让野猪动起来,这样这个问题就不存在了。

当然也可以修改OnTriggerStay2D的休眠时间,使之变长,这样即使在原地攻击野猪它也会持续掉血。

修改OnTriggerStay2D的休眠时间方法:点击Edit -> Project Settings,然后选择Physics 2D,如下图所示,将Time To Sleep(休眠时间)修改为一个较大的值,如10000(默认情况下是0.5)
在这里插入图片描述

源码

源码不出意外的话我会放在最后一节

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一图流解释Java中线程状态的转换

目录 一.Java中的几大线程状态 二.线程之间的相互转换 ▐ NEW --> RUNNABLE ▐ RUNNABLE <--> WAITING ▐ RUNNABLE <--> Timed Waiting ▐ RUNNABLE<--> BLOCKED ▐ RUNNABLE<-->TERMINATED 一.Java中的几大线程状态 简单来说线程可以处于…

美团小程序mtgsig1.2逆向

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

网络安全等级保护在工业控制系统中的应用

工业控制系统(Industrial Control Systems,ICS)&#xff0c;是由各种自动化控制组件和实时数据采集、监测的过程控制组件共同构成。其组件包括数据采集与监控系统(SCADA)、分布式控制系统(DCS)、可编程逻辑控制器(PLC)、远程终端(RTU)、智能电子设备(IED)&#xff0c;以及确保各…

C语言单向链表、双向链表和循环链表有什么区别?

一、问题 链表分为单向链表、双向链表和循环链表&#xff0c;它们的不同之处是什么呢&#xff1f; 二、解答 &#xff08;1&#xff09;单向链表。 所谓单向链表&#xff0c;就是指数据结点是单向排列的。⼀个单向链表结点由两个域组成&#xff0c;存储在结构体类型中。⼀个域…

从零开始:利用美颜API打造属于你的直播美颜功能

当下&#xff0c;如何在直播中呈现最好的自己&#xff0c;成为了许多主播关心的问题。美颜功能应运而生&#xff0c;帮助主播们在镜头前展现更好的形象。本文将详细介绍如何从零开始&#xff0c;利用美颜API打造属于你的直播美颜功能。 一、认识美颜API 1、什么是美颜API 美…

用wxPython和PyMuPDF将PNG图像合并为PDF文件

在日常工作中,我们经常需要将多个图像文件合并到一个PDF文档中,以便于查看、共享或存档。虽然现有的一些工具可以实现这一功能,但开发一个自定义的GUI工具可以更好地满足特定需求,并提供更好的用户体验。 在本文中,我将介绍如何使用Python、wxPython和PyMuPDF库创建一个简单的…

【java】异常与错误

Throwable包括Error和Expected。 Error Error错误是程序无法处理的&#xff0c;由JVM产生并抛出的。 举例&#xff1a;StackOverflowError \ ThreadDeath Expected Expected异常包括两类&#xff0c;即受检异常(非运行时异常)和非受检异常(运行时异常)&#xff0c;异常往往…

两大DRAM巨头20%产能转给HBM

随着人工智能(AI)需求的激增&#xff0c;全球领先的内存芯片制造商三星(Samsung)和SK海力士(SK Hynix)预计&#xff0c;由于高性能芯片需求不断增长&#xff0c;今年DRAM和高带宽内存(HBM)的价格将保持强劲。据《韩国经济日报》报道&#xff0c;三星和SK海力士已将其超过20%的D…

BUUCTF靶场[MISC]荷兰宽带数据泄露、九连环

[MISC]荷兰宽带数据泄露 考点&#xff1a;查看路由器恢复丢失密码的文件 工具&#xff1a;RouterPassView——路由器密码查看工具 工具链接&#xff1a;https://routerpassview.en.lo4d.com/windows RouterPassView是一款老牌的路由器密码查看器&#xff0c;可以一键获取路…

网络安全从业者“行话”

目录 ​编辑 一、攻击篇 1&#xff0e;攻击工具 2&#xff0e;攻击方法 3&#xff0e;攻击者 二、防守篇 1&#xff0e;软硬件 2&#xff0e;技术与服务 网络安全学习资源分享: 特别声明 一、攻击篇 1&#xff0e;攻击工具 肉鸡 所谓“肉鸡”是一种很形象的比喻&…

JavaScript循环结构

JS循环结构 1 while结构2 for循环3 foreach循环 1 while结构 几乎和JAVA一致 代码 /* 打印99 乘法表 */var i 1;while(i < 9){var j 1;while(j < i){document.write(j"*"i""i*j" ");j;}document.write("<hr/>");i…

win11此电脑右键“属性“选项,无法打开怎么解决?

方法如下&#xff1a; 1. 按【 Win X 】组合键&#xff0c;或【 右键】点击任务栏上的【 Windows开始菜单】&#xff0c;在打开的隐藏菜单项中&#xff0c;选择【 终端管理员】&#xff1b; 2. 用户账户控制窗口&#xff0c;你要允许此应用对你的设备进行更改吗&#xff1f;点…

IT Tools

ChatGpt chatGpt chatgpt vs & vscode工具 Vs Extensions & Remote Development Vs Extensions Remote-SSH VSCode远程连接到Linux并实现免密码登录 Git Graph C cppreference.com cplusplus 镜像站点 用于下载 QT, Ubuntu, 清华镜像站点 CMake Downlo…

【面试必看】MyBatis部分

MyBatis 必读 Mybatis系列全解 MyBatis最全使用指南 MyBatis最全使用指南 1. JDBC java 操作数据库的原始方式就是 JDBC。 但是存在以下问题&#xff1a; 每次操作我们都要创建 connection、Statement 等一些对象&#xff0c;操作完还要关闭、销毁这些对象。 ResultSet …

TSINGSEE青犀智慧校园视频综合管理系统建设方案及平台功能

一、方案背景 智慧校园视频综合管理系统以物联网、云计算、大数据分析等新技术为核心&#xff0c;将基于计算机网络的信息服务融入学校的各个应用与服务领域&#xff0c;实现互联和协作。通过“云边缘计算”构架&#xff0c;在各应用子系统的基础数据层面上&#xff0c;打通上…

活字格日期组件默认值以及自动编号设置

1、日期组件默认值为今天。 日期组件&#xff0c;缺省值&#xff0c;today&#xff08;&#xff09; 2、自动编号设置&#xff1a; 数据表。字段。唯一id。设置规则。启用。确定。 效果&#xff1a;

初识C++ · string的使用(2)

目录 1 Modifiers部分 1.1 assign的使用 1.2 insert的使用 1.3 erase的使用 1.4 replace的使用 2 capacity部分 2.1 max_size的使用 2.2 capacity的使用 2.3 reserve的使用 2.4 shrink_to_fit简介 2.5 resize的使用 2.6 clear的使用 3 String operations部分 3.1 …

奖金+1 万,OpenTenBase 开源核心贡献挑战赛,KB 专家助力其跑在 K8s 上

OpenTenBase 是由开放原子开源基金会孵化及运营的开源项目&#xff0c;是一款开放中立的企业级分布式 HTAP 开源数据库。OpenTenBase 具备高扩展性、商业数据库语法兼容、分布式 HTAP 引擎、多级容灾和多维度资源隔离等能力&#xff0c;已成功应用于金融、医疗、航天等行业的核…

Qt qt5.3集成mqtt模块

参考 【Qt官方MQTT库的使用&#xff0c;附一个MqttClient例子】 - 叶小鹏 - 博客园 (cnblogs.com)MQTT&#xff1a;windows最简单搭建mqtt服务端及本地客户端测试_emqx-windows-4.3.6-CSDN博客MQTTX 下载 编译 我从Github下载的是Release v5.12.5 qt/qtmqtt (github.com)版…

Rust Web开发框架actix-web入门案例

概述 在看书的时候&#xff0c;用到了actix-web这个框架的案例。 书里面的版本是1.0&#xff0c;但是我看官网最新都4.4了。 为了抹平这种信息差&#xff0c;所以我决定把官方提供的示例代码过一遍。 核心代码 Cargo.toml [package] name "hello" version &q…