Unity-黑暗之魂复刻-角色攻击
新增攻击动画层
1.在原来的BaseLayer基础上,新增加LayerMask,Weight表示新增层的权重,Blending我们设置成override。
2.创建avatar mask,先创建一个全身的avatar mask
3.将attack层中的avatarmask设置为我们创建的
4.在parameter中添加attack的Trigger,在玩家按下keyC的时候用triggerOnceSignal将attack设置为true,在ActorController中当attack为true时,将anim的attack的Trigger设置为true。
5.我们给状态的转换添加FSMOnEnter,在attack1hAEnter的时候我们将通过anim.SetLayerWeight设置我们layerMask的weight权重
public void OnAttack1hAEnter(){anim.SetLayerWeight(anim.GetLayerIndex("attack"),1.0f);}public void OnAttackIdle(){anim.SetLayerWeight(anim.GetLayerIndex("attack"),0);}
6.在角色jump的时候不能攻击,在角色攻击的时候不能wasd输入,给角色攻击加上这些限制。
连击
1.添加新的动画通过trigger触发新的状态
2.调整state转换的判断顺序,先判断是否连击,再判断是否回到idle
3.在攻击动画进行到中间的时候再可以接受下一段攻击判断,通过添加动画Event来解决。在动画播放到Event的时候ResetTrigger,这样玩家想要连击必须在Event后再此按键。
第三段动画向前移动
1.因为我们的Collider与Animator不在一个物体上,我们不能简单地用Animator中的RootMotion。
2.我们要在Animator的物体上加一个脚本,获取到RootMotion,将pos的移动获取然后赋值给Collider物体。
在OnAnimatorMove中控制RootMotion
private Animator anim;private void Awake(){anim = GetComponent<Animator>();}public void OnAnimatorMove(){SendMessageUpwards("OnUpdateRM",anim.deltaPosition);}
3.在ActorController中将RigidBody的Position直接累加一个deltaPosition
动画水平映射
通过勾选Animator中state的Mirror选项,动画将以镜面反射的效果在人物另一边进行播放。
通过代码控制:将Mirror后面的parameter进行勾选,我们就可以通过parameter中的一个bool对此选项进行控制了。
Unity-黑暗之魂复刻-角色攻击相关推荐
- unity简单复刻无敌破坏王
使用unity简单复刻无敌破坏王总结 国庆突发奇想想简单复刻一下无敌破坏王,这里写一些总结,希望也能对大家有帮助 游戏截图: 基本思路: 时间有限,也只是简单复刻,所以只实现破坏方块的功能,画面算是广 ...
- 傅老师黑暗之魂复刻笔记(第一季第一部分)
1. 在Unity中通过一维混合树实现人物静止与跑动之间的动态切换,可以通过一维的参数混合两个动画,forward值为0时静止,1时完全走动: 2. GetComponent函数全部在Awake和St ...
- Unity-黑暗之魂复刻-角色摄相机
1.使用两个Handle控制MainCamera的水平和垂直的旋转,PlayerHandle控制水平旋转,cameraHandle控制垂直旋转,这样我们可以很方便的控制相机. MainCamera.P ...
- [技美CG]Unity3D复刻UnityShader 之 ShaderToy - Bubbles
Unity3D复刻UnityShader 之 ShaderToy - Bubbles 背景: 官方地址/参考资料: ShaderToy-Bubbles原始代码: Unity复刻开始 核心显示类: 核心 ...
- 【Mib自看】黑魂复刻Unity脚本
[课程地址]B站傅老师Unity课程学习记录,仅代表个人理解. [自看]黑魂复刻Unity脚本 1.移动脚本 设计思路 2.动画 动画脚本:ActorController + 输入脚本:PlayerI ...
- Unity复刻骑砍中的帝国象棋(一)
Unity复刻骑砍中的帝国象棋(一) 起因和简介 这两天从一款游戏中发现了这么个棋类小游戏,觉得挺有意思,没错,就是下面这个: 作为程序员的我,一下就想到复刻它一下.这个棋类小游戏,我并不知道它确切的 ...
- Unity黑魂复刻经典教程心得(三)-CameraController
CameraController 1.根据角色的位置来计算camera的位置 targetLookAt = new GameObject("targetLookAt").trans ...
- 复刻 Unity编辑器 移动的方式
复刻 Unity编辑器 移动的方式 第一人称移动 自定义键值补充 代码搭载 老规矩,直接上代码: 第一人称移动 using System.Collections; using System.Colle ...
- Ruby‘s Adventrue游戏制作笔记(十一)Unity角色攻击——发射子弹
Ruby's Adventrue游戏制作笔记(十一)Unity角色攻击--发射子弹 前言 一.编辑子弹 二.创建脚本 三.修改玩家攻击脚本 四.将子弹拖入玩家脚本 五.让子弹碰撞到该碰撞的东西 六.编 ...
最新文章
- 你应该了解的 5 个 JavaScript 调试技巧
- 学习C语言的理由-别问我为什么,会用C语言,就是NB
- Python configparser模块
- Oracle用户管理(User|Privileges|Role)
- android的keyevent方法,Android keyevent按键和值的对应
- ITIL 4 讲解:服务目录
- 计算机ip地址和用户名和密码忘记了怎么办,192.168.1.112这是IP地址 我把密码忘了 怎么处理啊 电脑室现在还...
- 2021-2027全球与中国编码器附件市场现状及未来发展趋势
- SpringBoot项目 四种读取properties文件的方式
- MacBook突然没了声音
- SWIFT国际清算体系的科普贴
- Java使用Spire.Doc实现Word转换Pdf
- DTAS尺寸公差分析软件-三维尺寸公差分析软件尺寸链计算软件
- 非全日制计算机专业值得读吗,全日制、非全日制哪个更好?19计算机考研扫盲贴!...
- 串行、并行、并发,别再傻傻分不清了!
- IPhoneApp发布:手机号速查
- 【基于Web的网上书城——开题报告 分享(仅供参考呀)】
- matlab无刷双馈电机模型搭建,无刷双馈电机建模及智能控制策略研究
- 【20G】Kaggle数据集强势分析“绝地求生”,攻略吃鸡!
- 从FM推演各深度CTR预估模型(附代码)