记录:Unity脚本的编写5.0

本文介绍了Unity中的Animation和Animator组件的区别,重点讲解了Animator的动画控制器功能,并提供了一个使用脚本控制动画播放的示例。
摘要由CSDN通过智能技术生成


大型连续剧之在untiy中(或者别的什么活动)

前言

之前在场景中添加了背景音乐,而在我们的日常的体验中,可以发现游戏或者场景中有很多有趣的动画效果,今天就给我们的场景添加一个动画效果,并通过脚本对其进行一定的控制吧

创建动画

先创建一个文件夹用来装动画效果
在这里插入图片描述

Unity Animation、Animator

在使用和编写关于动画的内容之前需要先了解一下unity关于动画的组件,那就是Animation和Animator
在unity的老版本中我们只有Animation组件,在4.6版本以后则增添了Animator组件,如果只是控制一个动画的播放我们则用Animaton组件,如果是很多动画之间相互转换则使用Animator组件,它们两者的区别就是Animator有一个动画控制器(俗称动画状态机),使用它来进行动画切换是非常方便的,但缺点是占用内存比Animaton组件大

常用类

Animator:动画控制器,控制Mecanim动画系统的接口,用来管理多个动画;

Animation:用于播放动画,老版中单独的一个Animation也可以完成动画的播放和切换,不过状态切换之类的需要程序猿代码控制。在新版中,状态管理部分交给了Animator;

AnimationClip:动画剪辑片段,储存基于关键帧的动画,是用于Animation来播放动画;

AnimationState:动画状态,用来改变单一动画的播放速度、权重、时间、层级、播放Mode,以及混合模式;

AnimationEvent:动画事件,用于某种条件下触发自定义函数;

StateMachineBehaviour: 动画状态机管理器拓展类,脚本继承了该类之后,绑定到Animator上某State上面。当状态发生变化,可以重载响应函数。类似 触发器的响应函数;

关于两者的区别

相对于老版Animation,新版的Animator加入了动画状态机
在这里插入图片描述
相对于老版Animation,新版的Animator加入了骨骼Avatar(不过现在用不到就是了
在这里插入图片描述
详细了解可以阅读这篇文章
linkhttps://www.cnblogs.com/01zxs/p/9965115.html

Animator

回归正题,由于unity自己的动画控制非常逆天,总之就是很难用,并且旧版还已经不太常用,在这里就不再赘述,想要了解的可以看看这篇文章或者视频什么的
linkhttp://t.csdnimg.cn/erxaa
所以在这里就说说Animator
先找一些动画效果,一个小人做一些动作
在这里插入图片描述
将小人拖到场景中(随便拖一个就行)
于是就出现了那行蓝字,就是拖过来的对象了
在这里插入图片描述
(熟悉的方块和球回来啦)
点击对象,进行操作
添加Animator组件对动画进行控制
在这里插入图片描述
打开动画器
在这里插入图片描述
将动画中的蓝色三角形图标拖到动画器中,这里随便拖了几个
在这里插入图片描述
在动画器的动作中创建过渡进行动画的衔接
在这里插入图片描述
同理,继续操作达成图中的效果
在这里插入图片描述
在参数中创建tigger
在这里插入图片描述
试运行一下,点击动画器
在这里插入图片描述
看看场景中
在这里插入图片描述
在这里插入图片描述

发现小人进行了动画的演示

编写脚本

使用脚本控制动画的播放

using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class NewBehaviourScript1 : MonoBehaviour
{
    Animator am;
    // Start is called before the first frame update
    void Start()
    {
        am = GetComponent<Animator>();

        StartCoroutine(learnConroitine());//开启协程
        //StopCoroutine();
        //StopAllCoroutines();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            am.SetTrigger("zcc");//设置触发   //这是我的那个动画的名字
            //yield return new WaitForSeconds(5);
            //am.SetBool();//设置bool值
            // am.SetFloat();//设置浮点数
            //am.SetInteger();//设置整数值
        }
        //else
        //{
        //    yield return null;
        //}
    }

    //Unity中协程的使用,采用的是yield return
    IEnumerator learnConroitine()
    {
        yield return new WaitForSeconds(5); 
       yield return null;           //yield用于将方法切割开
    }
}

这个脚本应该可以在按键盘F的时候使动画播放

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值