这是一个来自unity官网实例的行走脚本,经过我的简单整理后发布在这里,写的非常好,条理分明,一目了然,运行起来很有操作手感。

这个脚本是在animator系统下运行的,所以在写这个脚本前需要先对animator controller进行一些简单的设置:

1. idle状态(默认)和run状态(blend tree,混合了walk和run)

2.定义一个float类型的参数,idle->run(speed>0.1), run->idle(speed<0.1)

3.在run的blend tree里将speed作为过渡动画的参数自动匹配阀值(方法:Compute Thresholds,选择speed)

4.为主角添加刚体和碰撞器

5.勾选Apply Root Montion,使用模型行走的步伐来计算行走距离

using UnityEngine;
using System.Collections;public class test : MonoBehaviour {public Animator anim;public Rigidbody rb;public float turnSmoothing = 15f;   // 玩家平滑转向的速度public float speedDampTime = 0.1f;  // 速度缓冲时间void FixedUpdate (){float h = Input.GetAxis("Horizontal");      float v = Input.GetAxis("Vertical");     MovementManagement(h, v);}void MovementManagement (float horizontal, float vertical){// 如果横向或纵向按键被按下 也就是说角色处于移动中if(horizontal != 0f || vertical != 0f){// 设置玩家的旋转 并把速度设为5.5
            Rotating(horizontal, vertical);//函数参数解释 anim.SetFloat (当前速度,  最大速度, 加速缓冲时间, 增量时间)anim.SetFloat("speed", 5.5f, speedDampTime, Time.deltaTime); }else// 否则 设置角色速度为0anim.SetFloat("speed", 0);}void Rotating (float horizontal, float vertical){// 创建角色目标方向的向量Vector3 targetDirection = new Vector3(horizontal, 0f, vertical);// 创建目标旋转值 //对应参数分别是 1.四元数看向的目标 2.需要沿着旋转的轴Quaternion targetRotation = Quaternion.LookRotation(targetDirection, Vector3.up); // 创建新旋转值 并根据转向速度平滑转至目标旋转值Quaternion newRotation = Quaternion.Lerp(rb.rotation, targetRotation, turnSmoothing * Time.deltaTime);// 更新刚体旋转值为 新旋转值
        rb.MoveRotation(newRotation);}
}

PS:

处理物理效果的代码需要写在FixedUpdate函数内;

完整行走的三要素分别是动画、旋转、移动, 这个实例把动画和旋转分别写在2个方法里,移动使用模型的步伐自动计算;

转载于:https://www.cnblogs.com/hellozzz/p/4180613.html

unity3d之角色的移动篇 -- 俯视视角下的键盘移动番外篇相关推荐

  1. unity3d之角色的移动篇 -- 俯视视角下的键盘移动

    这个知识点我想分成几个章节来写,分别记录不同情况下不同的移动方式. 首先是在俯视角摄像机下的键盘控制角色移动(如下图), 先写一个最简单的移动脚本吧(这个脚本也可以用于平常的小测试) 在这之前先得为角 ...

  2. MongoDB 教程番外篇之添加用户及设置用户权限 ( Rockmongo登陆设置 )

    继上一篇 MongoDB 教程番外篇之管理工具: Rockmongo ,MongoDB 缺省是没有设置鉴权的,业界大部分使用 MongoDB 的项目也没有设置访问权限.这就意味着只要知道 MongoD ...

  3. clang static analyzer源码分析(番外篇):RegionStore以及evalCall()中的conservativeEvalCall

    引子 我们在上一篇文章<clang static analyzer源码分析(番外篇):evalCall()中的inline机制>中提及了clang如何创建CallGraph,如何进行函数i ...

  4. 20.番外篇——Vue如何自定义组件并且进行全局配置

    20.番外篇--如何自定义组件并且进行全局配置 前言 1.创建自定义组件 2.导出自定义组件 3.main.js中引入自定义的公共组件并挂在到Vue 4.使用自定义的公共组件 前言 通过之前的系列文章 ...

  5. 有画快说番外篇-张聪-专题视频课程

    有画快说番外篇-2845人已学习 课程介绍         美术绘画的基础教程,用视频的形式呈现出来!让美术绘画更加清晰自然! 课程收益     让更多的人了解美术绘画的详细过程 讲师介绍     张 ...

  6. 【Unity】Avatar与AvatarMask系统介绍(TPS.番外篇)

    [Unity]Avatar与AvatarMask系统介绍(TPS.番外篇) 一些动画知识 动画文件格式 Avatar系统-Unity统一骨骼的解决方案 AvatarMask-部分动画的应用 这次也是拖 ...

  7. 程序猿成长之路番外篇之前后端加解密(rsa+aes混合加解密算法)

    今年国庆前夕接手一个外部项目,说是要保障接口数据安全,数据安全相对容易些,接口安全嘛emmmmm, 这个要考虑加解密算法.白名单之类的问题了.于是打算今天搞一期接口安全为题的成长之路番外篇. 为什么要 ...

  8. 揭开 Growth Hacking 的神秘面纱(番外篇)+ 大结局

    揭开 Growth Hacking 的神秘面纱(番外篇)+ 大结局 覃超帝国兴亡史  12月11日 11:45 FACEBOOK  互联网  分类 :互联网 阅读:1527 抢沙发 Growth Ha ...

  9. [zt]数学之美番外篇:平凡而又神奇的贝叶斯方法

    数学之美番外篇:平凡而又神奇的贝叶斯方法 Tags: 数学, 机器学习与人工智能, 计算机科学 save it69 saved tags: 贝叶斯 math bayesian algorithm 数学 ...

  10. 『中级篇』docker之wordpress容器SSL(番外篇)(78)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之wordpress容器SSL(番外篇)(78) 搞了2天终于搞定了,现在分享给大家. apache2 ...

最新文章

  1. 40个Java多线程问题总结
  2. Qt Designer 编辑Tab顺序
  3. html显示后台传来的byte类型的数据_java的数据类型
  4. r语言逻辑向量相加_R语言基础教程——第3章:数据结构——向量
  5. LSTM之父重提30年前的「快速权重存储系统」:线性Transformer只是它的一种变体...
  6. C++判断一个数是否为armstrong number阿姆斯特朗数(附完整源码)
  7. Linux内核代码,第一次看到这样使用的宏
  8. MySQL循环语句之while循环测试
  9. tems软件语音测试模板,测试软件使用-TEMS.ppt
  10. java高级工程师认证考试_java高级工程师开放面试题集
  11. 脾气好的领导不是好领导
  12. ESP32开发 3.bat批处理文件,批量删除编译后的build文件夹,方便Git上传分享
  13. ObjC学习7-C语言特性
  14. Leetcode796.Rotate String旋转字符串
  15. Python学习之路(2)
  16. openwrt 3G上网功能配置(联通版本)
  17. Outliers: The Story of Success
  18. 如何进行隐私协议测试
  19. 中国传统民间游戏汇总
  20. LCD液晶屏接口和显示器接口介绍

热门文章

  1. 有道词典“网络已断开”的解决办法
  2. 魔咒词典 HDU - 1880 (字符串hash 单hash转int或者 双hash )
  3. Android中的传感器之---陀螺仪传感器
  4. php程序 导出表格文件后缀,PHPExcel生成Excel文件---提示导出文件或者文件扩展名不一致,或导出的文件或文件扩展名无效...
  5. 如何经营好自己的朋友圈
  6. 汉字风格迁移篇--基于生成对抗网络的无监督字体风格转换模型
  7. php 生成多个水印,php 生成水印的完整代码
  8. 两部苹果手机同步照片_Windows同步查看iPhone手机的照片
  9. ArchLinux安装配置及美化
  10. 递归实现费氏数列:0,1,1,2,3,5,8,13,21,34,55,89,... ...