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. 算法(第四版)C# 习题题解——1.1

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 善用 Ctrl + F 查找题 ...

  2. tp未验证内容-9

    在tp的数据库配置中, convention.php中所有的选项都没有设置,要自己在Home/conf/config.php中自己设置, 注意几个地方,一是数据库的名字是: db_name,不是db_ ...

  3. tp剩余未验证内容-6

    杂项 系统中的电感线圈元件, 虽然不消耗电能, 但是会 占用系统的容量(相当于占用资源但是不做事), 会使系统 的发电量的使用效率降低, 线路损耗增大, 发出同样有功用电量所需的设备容量扩大 将感性元 ...

  4. 【2.0】使用默认日志slf4j配置

    一.SpringBoot日志简介 SpringBoot使用Commons Logging进行所有内部日志记录,但底层日志实现保持开放状态.为Java Util Logging,Log4j2和Logba ...

  5. (转)A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers

    A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers. Updated 20 ...

  6. 通过修改DNS达到不FQ也能访问Google(2018-12-25至现在已失效)

    一.前言 不知道各位小伙伴们现在用的搜索引擎是用Google搜索还是百度搜索呢?但我个人还是比较极力推荐用Google搜索的,首先用百度搜索后的结果的前几项大部分是满屏的广告,甚至搜索的结果并不能直接 ...

  7. JAVA中字符串比较equals()和equalsIgnoreCase()的区别

    1.使用equals( )方法比较两个字符串是否相等(区分大小写) 2.使用equalsIgnoreCase( )方法比较两个字符串是否相等(不区分大小写) boolean equalsIgnoreC ...

  8. 《SQL 基础教程》第四章:数据更新

    数据更新包括了表存在的情况下数据的添加,数据的删除和数据的更新,主要是下面三个语句: INSERT 语句 DELETE 语句 UPDATE 语句 在本章的最后,讲了关于「事务」的相关知识,用于对作出的 ...

  9. caffe提取每一层中的特征,在matlab或python查看

    参考博客: http://blog.csdn.net/abc8730866/article/details/52522843 http://blog.csdn.net/lijiancheng0614/ ...

  10. PHP文件PHP代码及运行(适合PHP初学者)

    本文转自:https://blog.csdn.net/cnds123/article/details/80700444 如果在warmpserver上运行php只显示源代码,可能是在用记事本保存后缀为 ...