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相关推荐

  1. 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 ...

  2. Unity 动画融合 IK MatchTarget 导播

    认识未深,记录备忘 动画融合 Stealth秘密行动 14-17 新建状态机 面板上的Motion //Motion运动 //Locomotion,运动,自己的命名 //Loco,机车 //Blend ...

  3. Unity动画系统详解9:Target Matching是什么?

    摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...

  4. Unity动画机制 Animator与Animator Controller教程

    Chinar blog :www.chinar.xin Unity动画机制 Animator Animation 本文提供全流程,中文翻译. Chinar 的初衷是将一种简单的生活方式带给世人 使有限 ...

  5. Unity动画系统学习

    Unity动画系统学习 文章目录 Unity动画系统学习 AnimationState 动画状态 Animation Transitions 动画过渡 动画分层和遮罩 动画混合 1D混合 2D混合 动 ...

  6. Unity动画状态机学习笔记

    Unity动画状态机学习笔记 一.建平面,拖人物模型.建状态机.动画导入.拖组件--实现Game时人物动画为等待状态. 二.拖WAIT01.WAIT02.WAIT03.WAIT04--实现按数字1切换 ...

  7. Unity动画系统详解8:IK是什么?

    摘要:IK是Inverse Kinematic的缩写,也就是反向动力学.是根据骨骼的终节点来推算其他父节点的位置的一种方法.比如通过手的位置推算手腕.胳膊肘的骨骼的位置. 洪流学堂,让你快人几步.你好 ...

  8. Unity 动画曲线-AnimationCurve 实例

    Unity 动画曲线-AnimationCurve 实例 以Unity 自带的动画曲线实现一些简单的动画,如往复运动,曲线运动,不规则运动,掉血飘字等. 下面先上代码 using UnityEngin ...

  9. Unity动画系统简单介绍

    Unity动画系统知识点简单介绍(简易) 本文是学习文,其中转载某些文章,如有侵权,联系删除. 学习要点: 1.动画的分类 游戏物体的基础动画设置,UGUI设置的按钮状态,2D游戏Sprite动画,R ...

最新文章

  1. linux_shell 第一章 变量
  2. iOS开发火了九年,这些错误你还在犯嘛?
  3. java反射详解 (一)
  4. exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序
  5. 中石油训练赛 - DNA(字符串哈希)
  6. Linux中su和sudo的用法整理
  7. Node.js运行模式与应用组成部分
  8. UnityGI3:光照探针
  9. [转载] Python学习笔记 String类型常用方法
  10. 多维多重背包问题_动态规划--背包问题
  11. Java中的JSON解析
  12. RStudio的help字体的调整大小
  13. Android实现通话呼叫转移与监听通话录音功能
  14. 一个大学教授让人发冷汗的讲演(浙大高分子物理郑强教授)
  15. 关于英语猜词义的方法
  16. 敏捷项目的史诗与迭代
  17. SMARTS 动态问卷
  18. Windows申请iOS证书上架App Store详细教程 (有这一篇就够了)
  19. 乐鑫科技2022笔试面试题
  20. FX3U PLC源代码,stm32芯片。 全套硬件,软件源码,可以直接用GX Works2编程直接写入

热门文章

  1. 破解卡巴斯基操作系统安装限制...
  2. source insight代码自动对齐
  3. 2013全国计算机一级考试,2013全国计算机等级考试一级试题及讲解
  4. 传感器的灵敏度 分辨率与分辨力和精度 + 光纤光缆
  5. ***基础___探测技术
  6. APP漏洞扫描器之本地拒绝服务检测详解
  7. IBM究竟是一家怎样的公司
  8. Java点名器,文章中内含源码
  9. [计算流体力学][Matlab] 使用 A,B,C 格式与蛙跳格式求解二维对流问题
  10. DC综合脚本中文详细解释