Unity动画机制Animator


本文提供全流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)

Chinar —— 心分享、心创新!

助力快速完成 Animator 动画的添加与控制

为新手节省宝贵的时间,避免采坑!

Chinar 教程效果:



全文高清图片,点击即可放大观看 (很多人竟然不知道)


1

Animator —— 动画

Unity 中为我们提供了而全面的动画设计解决方案,用来完成游戏对象的动态效果的控制和创建

我们想要一个人物模型动起来,非常简单

只需要在人物的游戏对象上添加 Animator 组件

然后创建一个 Animator Controller 来控制对应的游戏对象的动画 Animator 即可






2

Animator Controller —— 动画控制器面板

选中 Animator Controller文件,点击 Open 即可打开控制器面板

新创建一个 Animator Controller 默认是没有任何状态的

需要自己创建空状态,并进行相应设置




3

Specifies Animation —— 指定动画

创建一个状态后,我们需要给该状态改名(为了区分状态),并指定一个动作 Motion

这里我创建的是 站立,所以就需要找到对应的 Idel 动画,指定给 Motion





相同流程创建跑步动作:


4

Status Swithing —— 状态切换

由于丧尸这个游戏对象,具备跑和站立 2 个状态/动作 Motion

我们需要的是点击鼠标,它就开始移动,保持跑起来的状态

走到目的地,它就停下,保持站立状态

所以这里 站立——跑,状态是需要切换的,如上图,我们可以简单的建立连接

那么我们需要添加一个 bool 参数,并设置对应条件,来使2个状态可以进行切换

添加完成后,我们就可以通过代码,来控制人物的站立和跑 2个状态了





具体流程:


5

Code Control —— 通过代码控制状态

完成上边所有设置,即可通过代码控制 动画状态的切换

调用 Animator 中的函数,通过设置 bool 值,即可改变 游戏对象的 动画状态

animator.SetBool("ZombieRun", true) 让僵尸切换为 跑 状态

animator.SetBool("ZombieRun", false) 让僵尸切换为 站立 状态

Animator.StringToHash("ZombieRun")可以将字符参数转为 ID(int 值) ,同样用来控制状态

using UnityEngine;
using UnityEngine.AI; /// <summary>
/// <para>作用:控制丧尸的移动</para>
/// <para>作者:Chinar</para>
/// <para>创建日期:2018-08-05</para>
/// </summary>
public class ZombieMove : MonoBehaviour
{
private NavMeshAgent navMeshAgent;
private Animator animator; /// <summary>
/// 初始化函数
/// </summary>
void Start()
{
navMeshAgent = GetComponent<NavMeshAgent>(); //获取自身AI组件
animator = GetComponent<Animator>(); //动画组件
} /// <summary>
/// 每帧刷新
/// </summary>
void Update()
{
if (Input.GetMouseButton(1)) //右键
{
object ray = Camera.main.ScreenPointToRay(Input.mousePosition); //屏幕坐标转射线
RaycastHit hit; //射线投射碰撞
bool isHit = Physics.Raycast((Ray) ray, out hit); //射线投射(射线,结构体信息) ;返回bool 值 是否检测到碰撞
if (isHit)
{
print("坐标:" + hit.point); //射线与物体碰撞点
navMeshAgent.SetDestination(hit.point); //AI组件,设置目的地/终点
animator.SetBool("ZombieRun", true); //让僵尸跑起来
}
}
if (navMeshAgent.remainingDistance < 0.5f) //当前位置 与终点 的 剩余距离<0.5f
{
animator.SetBool("ZombieRun", false); //让僵尸站立
}
}
}

动画效果:


支持

May Be —— 搞开发,总有一天要做的事!

拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!

先点击领取 —— 阿里全产品优惠券 (享受最低优惠)



1 —— 云服务器超全购买流程 (新手必备!)



2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)



3—— Windows 服务器配置、运行、建站一条龙 !



4 —— Linux 服务器配置、运行、建站一条龙 !




" role="presentation">

技术交流群:806091680 ! Chinar 欢迎你的加入


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究


对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com


对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

Unity动画机制 Animator与Animator Controller教程的更多相关文章

  1. Unity 动画系统 Animation 和 Animator的小实例

    本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式: 方法1:单独使用Animation 方法2:Animation结合Animator 动画De ...

  2. Unity 动画系统 Animation和Animator 常用小功能

  3. Unity 动画系统 Animation和Animator等常用类

  4. Unity 动画系统 Animation 和 Animator 联系与区别

  5. Unity 动画系统目录 之 Animation

    返回 Unity 动画系统目录 官方文档 Animation:https://docs.unity3d.com/ScriptReference/Animation.html Animator:http ...

  6. [Android 动画]简要分析一下Animator 与 Animation

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 在 A ...

  7. Unity 动画

    Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelli ...

  8. Unity动画

    Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelli ...

  9. Android群英传》读书笔记 (3) 第六章 Android绘图机制与处理技巧 + 第七章 Android动画机制与使用技巧

    第六章 Android绘图机制与处理技巧 1.屏幕尺寸信息屏幕大小:屏幕对角线长度,单位“寸”:分辨率:手机屏幕像素点个数,例如720x1280分辨率:PPI(Pixels Per Inch):即DP ...

随机推荐

  1. 03:CDN原理

    1.1 CDN简介 1.CDN作用(缓存静态资源) 1. CDN的全称Content Delivery Network,(缩写:CDN)即内容分发网络. 2. CDN解决由于网络带宽小.用户访问量大. ...

  2. Codeforces 955F Heaps - 动态规划

    题目传送门 传送点I 传送点II 传送点III 题目大意 给定一棵以1为根的树,定义$dp_{k}(u)$表示在$u$的子树内存在的深度最大的满k叉树的深度,求$\sum_{u = 1}^{n}\su ...

  3. 网站基础html javascript jquery

    第二章HTML HBuilder的使用 边改边看模式 chrome浏览器看. HTML的基本格式 超文本标记语言 HyperText Markup Language HyperText 超文本 Mar ...

  4. Windows下nginx+tomcat实现简单的负载均衡

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请 ...

  5. idea热部署+自动编译

    https://blog.csdn.net/z15732621582/article/details/79439359

  6. Lintcode482-Binary Tree Level Sum-Easy

    482. Binary Tree Level Sum Given a binary tree and an integer which is the depth of the target level ...

  7. 剑指offer 04:重构二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  8. 1.6 安全认证与授权(springboot与安全)

    引言:以下文档是学习尚硅谷关于springboot教学视频后整理而来! 一.安全 认证(Authentication):证明你是谁? 授权(Authorization):你能干什么? 参考资料: Sp ...

  9. java语言规范,main方法必须声明为public

    注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...

  10. mybatis_generator合并xml和Java

    之前写了合并xml的插件,今天改了改mybatis-generator源码,合并java和xml都改进去了. 先上图吧. 左边是一开始生成的,中间去掉author加了password字段和方法,右边重 ...