Unity动画☀️6. 翻越障碍物、Vector3.up、射线Physics.Raycast()、Character Controller
1️⃣ 设置动画Valt、Bool条件,定义只有速度大于3才可翻越障碍物
2️⃣ 控制思路:
0.3米处,墙是密封的,栏杆处没有任何物体,可通过检测0.3m处人物与墙和栏杆之间的关系,来确定人物应该跳跃还是滑行
0.3m是通过与标准cube估算得出的,也可是其他合适数值
3️⃣ 关键代码释义:
Vector3.up——Vector3(0,1,0)的简码,即Y轴
bool Physics.Raycast(Vector3 origin,Vector3 direction,out RaycastHit hitInfo,float maxDistance)
射线是3D世界中一个点向一个方向发射的一条无终点的线。在发射的轨迹中,一旦与其他物体发生碰撞,它就会停止。Physics.Raycast(起点位置,方向,hitInfo为存储的射线碰撞到的第一个对象的信息,检测距离)是一个布尔值,若在检测距离内碰撞到物体,结果为true,否则为false
4️⃣ 代码
using UnityEngine;public class Player : MonoBehaviour {private Animator anim;private int speedRotateID = Animator.StringToHash("SpeedRotate");private int speedZID = Animator.StringToHash("SpeedZ");int vaultID = Animator.StringToHash("Vault");void Start () {anim = GetComponent<Animator>();}void Update () {anim.SetFloat(speedZID, Input.GetAxis("Vertical") * 4.5f);anim.SetFloat(speedRotateID, Input.GetAxis("Horizontal")*126);if (anim.GetFloat(speedZID) > 3){RaycastHit hit;if(Physics.Raycast(transform.position+Vector3.up*0.3f,transform.forward,out hit, 4.5f)){if (hit.collider.tag == "Obstacle"){if(hit.distance>3)anim.SetBool(vaultID, true);}}else anim.SetBool(vaultID, false);}}
}
5️⃣ 此时人物还可能穿墙而过,我们需要给他加上Character Controller,并设置合适的Center(高度、位置)和Radius(半径)等
动画展示:
大家还有什么问题,欢迎在下方留言!
如果你有 技术的问题 或 项目开发
都可以加下方联系方式
和我聊一聊你的故事
Unity动画☀️6. 翻越障碍物、Vector3.up、射线Physics.Raycast()、Character Controller相关推荐
- Unity动画☀️7. 通过MatchTarget匹配跳墙动画、Vector3、获取动画层GetCurrentAnimatorStateInfo(a).IsName(b)
1️⃣ 关键代码释义 a.Vector3 // x = 0,y = 1, z = 0 Vector3.up;// 表示世界坐标系中 Y 轴正方向上的单位向量// x = 0,y = -1, z = 0 ...
- Unity 动画融合 IK MatchTarget 导播
认识未深,记录备忘 动画融合 Stealth秘密行动 14-17 新建状态机 面板上的Motion //Motion运动 //Locomotion,运动,自己的命名 //Loco,机车 //Blend ...
- Unity动画系统详解9:Target Matching是什么?
摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...
- Unity动画机制 Animator与Animator Controller教程
Chinar blog :www.chinar.xin Unity动画机制 Animator Animation 本文提供全流程,中文翻译. Chinar 的初衷是将一种简单的生活方式带给世人 使有限 ...
- Unity动画系统学习
Unity动画系统学习 文章目录 Unity动画系统学习 AnimationState 动画状态 Animation Transitions 动画过渡 动画分层和遮罩 动画混合 1D混合 2D混合 动 ...
- Unity动画状态机学习笔记
Unity动画状态机学习笔记 一.建平面,拖人物模型.建状态机.动画导入.拖组件--实现Game时人物动画为等待状态. 二.拖WAIT01.WAIT02.WAIT03.WAIT04--实现按数字1切换 ...
- Unity动画系统详解8:IK是什么?
摘要:IK是Inverse Kinematic的缩写,也就是反向动力学.是根据骨骼的终节点来推算其他父节点的位置的一种方法.比如通过手的位置推算手腕.胳膊肘的骨骼的位置. 洪流学堂,让你快人几步.你好 ...
- Unity 动画曲线-AnimationCurve 实例
Unity 动画曲线-AnimationCurve 实例 以Unity 自带的动画曲线实现一些简单的动画,如往复运动,曲线运动,不规则运动,掉血飘字等. 下面先上代码 using UnityEngin ...
- Unity动画系统简单介绍
Unity动画系统知识点简单介绍(简易) 本文是学习文,其中转载某些文章,如有侵权,联系删除. 学习要点: 1.动画的分类 游戏物体的基础动画设置,UGUI设置的按钮状态,2D游戏Sprite动画,R ...
最新文章
- linux_shell 第一章 变量
- iOS开发火了九年,这些错误你还在犯嘛?
- java反射详解 (一)
- exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序
- 中石油训练赛 - DNA(字符串哈希)
- Linux中su和sudo的用法整理
- Node.js运行模式与应用组成部分
- UnityGI3:光照探针
- [转载] Python学习笔记 String类型常用方法
- 多维多重背包问题_动态规划--背包问题
- Java中的JSON解析
- RStudio的help字体的调整大小
- Android实现通话呼叫转移与监听通话录音功能
- 一个大学教授让人发冷汗的讲演(浙大高分子物理郑强教授)
- 关于英语猜词义的方法
- 敏捷项目的史诗与迭代
- SMARTS 动态问卷
- Windows申请iOS证书上架App Store详细教程 (有这一篇就够了)
- 乐鑫科技2022笔试面试题
- FX3U PLC源代码,stm32芯片。 全套硬件,软件源码,可以直接用GX Works2编程直接写入
热门文章
- 破解卡巴斯基操作系统安装限制...
- source insight代码自动对齐
- 2013全国计算机一级考试,2013全国计算机等级考试一级试题及讲解
- 传感器的灵敏度 分辨率与分辨力和精度 + 光纤光缆
- ***基础___探测技术
- APP漏洞扫描器之本地拒绝服务检测详解
- IBM究竟是一家怎样的公司
- Java点名器,文章中内含源码
- [计算流体力学][Matlab] 使用 A,B,C 格式与蛙跳格式求解二维对流问题
- DC综合脚本中文详细解释