新增跳落动画

在jump动画播放完后过渡到下落动画,之后再跳回地面动画,需要注意回去的顺序,Exit Time越短就先回去

新增落地侦查器

解决落地之前都是fail动画的问题,而不是fail落地动画播放完毕就播放落地动画,使用Physics.OverlapCapsule进行碰撞检测地面碰撞到的碰撞体。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class OnGroundSensor : MonoBehaviour
{//获得人物胶囊体public CapsuleCollider capcol;//上半球的球心private Vector3 point1;//下半球的球心private Vector3 point2;//胶囊体的半径private float radius;void Awake(){radius = capcol.radius;}// Update is called once per framevoid FixedUpdate(){//transform.position在底部point1 = transform.position + transform.up * radius;point1 = transform.position + transform.up * capcol.height - transform.up * radius;//获得layer为Ground的所有碰撞体Collider[] outputCols = Physics.OverlapCapsule(point1, point2, radius, LayerMask.GetMask("Ground"));if (outputCols.Length != 0) {foreach (var col in outputCols){print("collision:" + col.name);}  }}
}

使用落地侦查器

为了实现玩家跳起来后落地的过程一直是fall落地动画,思路:如果碰到地面就会给人物SendMessageUpwards发送一个信息正在地上,然后在人物控制器中处理这些信息,通过改变动画参数控制动画的过渡

OnGroundSensor脚本中

//获得layer为Ground的所有碰撞体Collider[] outputCols = Physics.OverlapCapsule(point1, point2, radius, LayerMask.GetMask("Ground"));if (outputCols.Length != 0){//foreach (var col in outputCols)//{//    print("collision:" + col.name);//}  SendMessageUpwards("IsGround");}else {SendMessageUpwards("IsNotGround");}

ActorController脚本中

    void IsGround() {print("is on ground");anim.SetBool("isGround", true);}void IsNotGround() {print("is not on ground!!!!");anim.SetBool("isGround", false);}

修改人物在执行下落动画时出现垂直降落问题

在之前的操作中,播放完jump跳跃动画就会将input和位移就会开启更新,所以我们的思路是在fail下落到地面的时候再发送消息让input和位移就会开启更新,就会根据上一帧的速度出现一个惯性。

 void OnGroundEnter() {pi.inputEnabled = true;lockPlanar = false;}


小bug:

在原地起跳时,会因为脚到地面的距离差出现漂移的情况,解决办法:j将自定义的胶囊体向下偏移,从而减小这个误差。

public class OnGroundSensor : MonoBehaviour
{//获得人物胶囊体public CapsuleCollider capcol;//让自定义的胶囊体向下偏移public float offset = 0.1f;//上半球的球心private Vector3 point1;//下半球的球心private Vector3 point2;//胶囊体的半径private float radius;//让自定义的胶囊体向下偏移public float offset = 0.1f;void Awake(){//使胶囊体变窄radius = capcol.radius-0.1f;}// Update is called once per framevoid FixedUpdate(){//transform.position在底部point1 = transform.position + transform.up * (radius-offset);point2 = transform.position + transform.up * (capcol.height- offset) - transform.up * radius...}
}

解决jump动画过渡到fail的过程中踩到地面的情况

Unity项目-黑魂复刻(三)玩家控制器(跳跃)相关推荐

  1. Unity项目-黑魂复刻(四)玩家控制器(翻滚以及跳跃操作改动)

    翻滚以及跳跃操作改动 黑魂游戏中,翻滚的触发条件:1.走路按跳跃键 2.助跑按跳跃键 3.高处掉落 所以之前的跳跃键需要改成翻滚键 翻滚动画以及触发逻辑: 注意:由于翻滚的动画会出现y方向的根tran ...

  2. Unity项目-黑魂复刻(二)玩家控制器(跳跃)

    跳跃信号 要实现跳跃,首先要实现跳跃的输入.跳跃信号是按下的当场触发的一次性触发控制(Trigger Once Signal),这个信号转化为编程语言就是bool值,通过控制真还是假判定是否按下跳跃键 ...

  3. Unity黑魂复刻经典教程心得(三)-CameraController

    CameraController 1.根据角色的位置来计算camera的位置 targetLookAt = new GameObject("targetLookAt").trans ...

  4. 【Mib自看】黑魂复刻Unity脚本

    [课程地址]B站傅老师Unity课程学习记录,仅代表个人理解. [自看]黑魂复刻Unity脚本 1.移动脚本 设计思路 2.动画 动画脚本:ActorController + 输入脚本:PlayerI ...

  5. Unity黑魂复刻经典教程心得(一)

    b站上傅老师的黑魂复刻教程,是比较好的,傅老师风情幽默,值得种草 https://www.bilibili.com/video/BV1gW411T7yb?p=55

  6. 黑魂复刻游戏的玩家控制器(基础移动,动画实现及优化)——Unity随手记(2021.3.15)

    文章目录 今天实现的内容: 动画机设计理念 动画机的运用及模型旋转 玩家角色的位移 爬坡测试 跑步 旋转的优化 跑步动画的优化 BUG以及缺陷: 值得注意的: 今天实现的内容: 动画机设计理念 要我说 ...

  7. 黑魂复刻游戏的玩家控制器(翻滚及跳跃的重新设计)——Unity随手记(2021.3.31)

    文章目录 今天实现的内容: 翻滚和跳跃的重新设计 翻滚动画及触发逻辑 翻滚的向前冲量 跳跃并向前翻滚 BUG以及缺陷: 值得注意的: 今天实现的内容: 翻滚和跳跃的重新设计 按照黑魂游戏的设计,跳跃其 ...

  8. 黑魂复刻游戏的碰撞摩擦问题——Unity随手记(2021.4.27)

    文章目录 前言 今天实现的内容: 角色跳起来时的卡墙问题描述 修改物理材质方案 修改m_planarVec方案 BUG以及缺陷: 值得注意的: 前言 本篇博客旨在解决黑魂like游戏开发时遇到的一个问 ...

  9. 黑魂复刻游戏的玩家输入模块——Unity随手记(2021.3.14)

    文章目录 前言 今天实现的内容: 按键封装 获取输入及输入信号优化 输入的渐变 模块的软开关 处理输入 BUG以及缺陷: 值得注意的: 前言 好久不见,在接下来的Unity随手记里,我会学着B站上的视 ...

最新文章

  1. 三下乡辅导孩子计算机知识,【青春“三下乡”】普及家庭教育知识,共促孩子健康成长...
  2. grafana美人鱼_编码美人鱼–我如何从海洋生物学家转到前端开发人员
  3. c++ 纯虚函数和抽象类那些事(三)
  4. 利用jquery给指定的table动态添加一行、删除一行
  5. 【Transformer】HRFormer:High-Resolution Transformer for Dense Prediction
  6. oracle半角全椒_Oracle全角和半角处理函数
  7. CSS核心的几个概念
  8. php 写入内存缓存,示例:通过内存缓存来提升性能
  9. 霍兰德职业兴趣测试题
  10. 一天天过得很快啊,今天大家都干了啥?我们拿出来晒晒
  11. C# 基于MySQL的数据层基类(MySQLHelper)
  12. 官宣!什么是新基建时代的混合云? | 凌云时刻
  13. 光电转换模块_针对100G QSFP28 SR4光模块的特征及工作原理进行分析
  14. 数据库和数据表的建立
  15. 步骤安装Ubuntu 11.04用五笔
  16. 【FPGA从0开始系列】黑金EP4CE10F17C8开发板按键实验(二)
  17. 电池SOC仿真系列-基于卡尔曼滤波算法的电池参数辨识
  18. 【JZOJ6011】天天爱跑步
  19. 工具 · GIF录屏licecap for Mac
  20. HTTP content-type

热门文章

  1. jQuery教程_编程入门自学教程_菜鸟教程-免费教程分享
  2. 有感觉,有深意的说辞
  3. Mac下如何将Safari书签导入Chrome
  4. 淘宝双11大数据分析(数据准备篇)
  5. 【MySQL--03】表的操作
  6. 如何培养小学生数学独立思考能力?
  7. 结果和过程到底哪个重要?
  8. 数值分析(7)-非线性方程求根
  9. 2022-2028年全球与中国汽车超声波传感器行业深度分析
  10. 【转】appStore上传苹果应用程序软件发布流程