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. nginx代理配置 配置中的静态资源配置,root 和 alias的区别

    这篇主要内容是:nginx代理配置 配置中的静态资源配置,root 和 alias的区别.启动注意事项! 为什么会在window上配置了nginx呢?最近我们的项目是静态资源单独放在一个工程里面,后端 ...

  2. linux驱动编写(pwm驱动)【转】

    本文转载自:https://blog.csdn.net/feixiaoxing/article/details/79889240 pwm方波可以用来控制很多的设备,比如它可以被用来控制电机.简单来说, ...

  3. python链接Hive

    之前一直用thrift链接Hive,但在运行时总出现问题,一直报缺少模块的错误,装了这个模块,又报缺少那个模块,连了半天,全是泪啊! 原来thrift链接Hive的.py文件后续没人维护,是连不上的. ...

  4. robot framework学习五——AutoltLibrary库

    安装中遇到的问题: 安装好了AutoItLibrary,但是导入到RIDE后,仍然红色显示 搜索了下解决办法,说要安装下autoit-v3-setup.exe https://www.autoitsc ...

  5. 放大镜js实现效果

    今天我想写一个放大镜因为毕竟在做网页的时候,特别是一些电商的详情页放大镜是必不可少的.什么都不说了上代码 1,html代码 <div id='small'><img src=&quo ...

  6. vue form表单验证

    <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> <el-option ...

  7. vue的技巧代码

    转载:https://segmentfault.com/a/1190000014085613 第一招:化繁为简的Watchers 场景还原: created(){ this.fetchPostList ...

  8. 亲自打造Deferred对象

    经过对比之后,决心学习jQuery,自己打造一个Deferred对象.var util = require('./util.js');function Callbacks() { var list = ...

  9. Oracle的sql导入

    sqlldr: 一般用于导入以任何后缀结束的文件,我这次就是因为要导入一张以.20160101为后缀的文件,当初简直束手无策 结合input.ctl使用,可以在DOS下使用,可以对一张表导入数十万,百 ...

  10. Com 调用word和excel

    using Microsoft.Office.Interop.Word;using System;using System.Collections.Generic;using System.Compo ...