【制作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是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Keli5烧写程序成功后再次烧写程序却不能识别芯片。解决方法

1问题(已排除硬件问题和Debug配置问题) 再次烧写不能识别下如图(提示为不能识别到芯片) 硬件识别正常 Debug配置正常 就是不能识别到芯片 2为什么会出现这个问题 在STM32Cude设置中没有设置SYS(默认是No Debug&…

[Cesium for Supermap]加载iserver发布的wms服务

1,wms服务 2,加载代码 let provider new Cesium.WebMapServiceImageryProvider({url: "http://support.supermap.com.cn:8090/iserver/services/map-china400/wms111/China_4326",enablePickFeatures:true,rectangle: Cesium.Rectangle.fromD…

必背!!2024年软考中级——网络工程师考前冲刺几页纸

距离软考考试的时间越来越近了,趁着这两周赶紧准备起来 今天给大家整理了——软考网络工程师考前冲刺几页纸,都是核心重点,有PDF版,可打印下来,每天背一点。 计算机总线分类 ①总线的分类:数据总线、地址总…

618值得入手的数码有哪些?数码好物清单推荐|款款实用闭眼冲

每年的618购物节都是消费者们翘首以盼的盛宴,这一天,各大品牌和电商平台都会推出极具吸引力的优惠活动,让消费者们能够以更优惠的价格购买到心仪的数码好物,为了帮助大家在这个购物狂欢节中挑选到真正实用、性价比高的数码产品&am…

重启服务器后node节点显示NotReady

场景:夜间进行了断电维护,重启后发现业务无法使用,检查发现一个node节点显示NotReady. 去到目标服务器查看kubelet服务未成功启动 journalctl -u kubelet 执行journalctl -u kubelet 查看日志发现提示: ailed to run Kubelet: run…

在UBuntu上安装QT环境

一、UBuntu环境 二、官网下载QT https://download.qt.io/archive/qt/ 安装所需选择版本下载,可以现在windows下载在复制进去 三、安装QT 1、复制到ubuntu 2、打开终端,改变刚下载文件的权限 权限代号 r:读取权限,数字代号为 “…

flowable工作流设置审批人为指定角色+部门的实现方式

一、绘制流程图页面配置 1、指定固定审批角色组织的实现 如上图红框部分,需要修改此处为需求对应。比如此时红框不支持指定某个部门下的指定角色这种组合判断的审批人。则需要修改页面变成选完角色同时也选择上部门统一生成一个group标识。 修改完后,生…

数据中台管理系统原型

数据中台是一个通用性的基础平台,适用于各类行业场景,数据中台包含多元数据汇聚、数据标准化、数据开发、数据共享、数据智能、数据资产管理等功能,助力企业数字化转型。 数据汇聚 数据汇聚是将不同系统、不同类型的多元源数据汇聚至目标数据…

直线道路线通过霍夫变换进行识别并画出

最近在研究高速直线识别,搜了一圈看了很多文章,确定了以下的主要流程。 霍夫变换 lines cv2.HoughLinesP(image,rho,theta,threshold,lines,minLineLength,maxLineGap)#概率霍夫变换 image:必须是二值图像,推荐使用canny边缘检测的结果图像…

操作系统—锁机制的应用(实验)

文章目录 锁机制的应用1.实验目标2.实验过程记录(1).阅读kernel/kalloc.c(2).理解xv6的自旋锁工作原理(3).阅读kernel/bio.c(4).阅读kernel/sleeplock.c(5).重新设计内存分配器(6).重新设计磁盘缓存 3.问题及解决方案问题1问题2问题3 实验小结 锁机制的应用 1.实验目标 基于xv…

【稀疏三维重建】pixelSplat:仅需两张图像的3D Gaussian Splats重建

文章目录 一.摘要二、相关工作 , 背景(gs)三、基于图像的三维高斯预测3.1 双视图图像编码器(解决尺度模糊性)3.2 (像素对齐的)高斯参数预测 四、实验效果 论文:《pixelSplat: 3D Gaussian Splats from Image Pairs for…