unity中legacy动画用animation播放【播放,正播,倒播,重播】

这篇具有很好参考价值的文章主要介绍了unity中legacy动画用animation播放【播放,正播,倒播,重播】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Unity中的动画种类

目前unity中有两种动画,一种是legacy动画,用Animation播放, 另一种是Mecanim,用Anamator播放。

本文只讨论legacy动画的播放,不涉及其它动画,也不涉及legacy动画的制作。

二、动画的预备

确保物体上已经挂了动画,一般只有一个动画片段。检查是否能播放:勾选自动播放,点击运行进行测试。
unity中legacy动画用animation播放【播放,正播,倒播,重播】

三、动画的设置和播放

Animation动画片段主要属性:

  • time 相当于播放进度,正向播放的时候,记得设置成0【start位置】,反向播放的时候设置成clip.length【end位置】
  • speed 当为正的时候是正向播放,为负的时候是倒播
  • ***play(“动画片段名字”)***播放动画

注意:动画片段记得设置成legacy,不然不能播放
【1】选中片段
【2】出现Inspector面板
unity中legacy动画用animation播放【播放,正播,倒播,重播】

【3】Inspector处鼠标右键,选择【Debug】
unity中legacy动画用animation播放【播放,正播,倒播,重播】

【4】勾选legacy
unity中legacy动画用animation播放【播放,正播,倒播,重播】

四、效果

播放 = 从头播放【time设置成0】
倒播 = 从尾倒播【time设置成length】

播放的时候,记得设置time= 0
unity中legacy动画用animation播放【播放,正播,倒播,重播】文章来源地址https://www.toymoban.com/news/detail-457738.html

五、脚本代码

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

/// <summary>
/// 动画播放、暂停、倒放
/// </summary>
public class PlayAnimation:MonoBehaviour
{
    [Header("正播速度值(+)")]
    public float speed;

    [Header("倒播速度值(-)")]
    public float speedBack;

    /// <summary>
    /// 挂载动画的物体
    /// </summary>
    [Header("动画物体")]
    public GameObject animGo;

    /// <summary>
    /// 正播按钮
    /// </summary>
    [Header("正播按钮")]
    public Button BtnPlay;

    /// <summary>
    /// 倒播按钮
    /// </summary>
    [Header("倒播按钮")]
    public Button BtnPlayBack;

    /// <summary>
    ///播放动画的组件,该组件在动画物体上
    /// </summary>
    private Animation myAnim;

    private void Awake()
    {
        //事件侦听
        BtnPlay.onClick.AddListener(()=> Play(ref myAnim, speed));
        BtnPlayBack.onClick.AddListener(()=>PlayBack(ref myAnim, speedBack));
    }

    // Use this for initialization
    void Start()
    {
        myAnim = animGo.GetComponent<Animation>();       
    }   
  
    /// <summary>
    /// 动画正播
    /// </summary>
    /// <param name="myAnim">Animation组件</param>
    /// <param name="speed">播放的速度【为正】</param>
    public static void Play(ref Animation myAnim, float speed)
    {
        if (speed < 0)
        {
            Debug.LogError($"速度值设置为正数。Play()");
            return;
        }

        myAnim[myAnim.clip.name].time = 0;
        myAnim[myAnim.clip.name].speed = speed;
        myAnim.Play(myAnim.clip.name);
    }
 
    /// <summary>
    /// 动画倒播
    /// </summary>
    /// <param name="myAnim">Animation组件</param>
    /// <param name="speed">播放的速度【为负】</param>
    public static void PlayBack(ref Animation myAnim, float speed)
    {
        if(speed > 0f)
        {
            Debug.LogError($"速度值必须设置为负数。PlayBack()");
            return;
        }        
        myAnim[myAnim.clip.name].time = myAnim[myAnim.clip.name].length;//从最后倒播
        myAnim[myAnim.clip.name].speed = speed;
        myAnim.Play(myAnim.clip.name);
    }
}

到了这里,关于unity中legacy动画用animation播放【播放,正播,倒播,重播】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity解决动画不可用:The AnimationClip ‘XXX‘ used by the Animation component ‘XXX‘ must be marked as Legacy.

    在Unity 2019.4.38.f1c1以上的版本,创建的创建Animation Clip无法使用,作为组件的默认Clip的话,那么游戏运行的时候这个Clip其实是播不出来的,而且Console会报一条 “The AnimationClip ‘XXX’ used by the Animation component ‘XXX’ must be marked as Legacy.” 的警告信息,以及一条 “Default clip co

    2023年04月08日
    浏览(36)
  • Unity中,点击按钮Button,控制,动画Animator暂停播放

    在Unity中,你可以使用以下脚本来实现点击按钮时停止动画的功能: using UnityEngine; using UnityEngine.UI; public class StopAnimationOnClick : MonoBehaviour {     public Animator animator;     public Button button;     private bool isAnimationPlaying = true;     private void Start()     {         button.onClick.AddListen

    2024年04月27日
    浏览(30)
  • Unity Animation动画循环播放时卡顿、不连贯问题解决办法

    一、动画卡顿: 如上图,可看到,当循环播放动画时,动画像瘸了似的,一会块,一会慢,总之就是不连贯; 二、解决办法: 打开该元素对应的Animation,然后选中下方的Curves动画曲线,在这里我们可以看到,该动画是一条S型曲线,故而播放速度才会时快时慢; 在这里,我

    2024年02月12日
    浏览(31)
  • Unity Animator.Play(stateName, layer, normalizedTime) 播放动画函数用法

    接口: 参数 含义 stateName 动画状态机的某个状态名字 layer 第几层的动画状态机,-1 表示播放第一个状态或者第一个哈希到的状态 normalizedTime 从state动画进度的百分比(100%)开始播放到结束 Unity Animator.Play 详解 基于 Animator 制作一个Cube旋转的帧动画 在 Cube 上实现调用 Play(st

    2024年02月13日
    浏览(42)
  • 【Unity3D小技巧】Unity3D中Animation和Animator动画的播放、暂停、倒放控制

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 在日常开发中,常常会遇到要控制动画的播放、暂停和倒放的情况。 这篇文章就总结一下, Animation

    2024年02月02日
    浏览(72)
  • unity 动态获取Animator 状态机中某个动画片段的播放速度(获取到速度来计算 播放时长)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 这个功能主要是因为 每个动画片段的播放速度不一样,需要获取到速度来计算 播放时长。 代码如下(示例): 好记性不如烂笔头

    2024年04月11日
    浏览(32)
  • 在unity中如何实现视频播放暂停停止重播功能

    在Unity中实现视频播放、暂停、停止和重播功能,可以通过以下步骤实现: 将视频文件导入Unity项目中,并将其设置为资源。 创建一个新的Unity游戏对象,并将Video Player组件添加到该对象上。 将视频文件设置为Video Player组件的源。 创建一个脚本,并使用代码控制Video Player组件

    2024年02月11日
    浏览(30)
  • 微信小程序animation动画,微信小程序animation动画无限循环播放

    需求是酱紫的: 页面顶部的喇叭通知,内容不固定,宽度不固定,就是做走马灯(轮播)效果,从左到右的走马灯(轮播),每播放一遍暂停 1500ms ~ 2000ms 刚开始想的是 css 的 position: relative + animation,如果宽度固定还好说,宽度不固定,用百分比的话,想象很美好,现实很

    2024年02月13日
    浏览(41)
  • Unity Animation -- 使用Animator控制动画

            在很多实际场景中,我们经常需要根据特定的事件(比如玩家输入,敌人受到攻击等)来播放不同的动画。这需要我们了解一下Animator,Animator Controller和基础的动画状态机。         首先我们来创建一个简单的开门动画,示例中的门的模型来自官方教程。其实我们也

    2023年04月27日
    浏览(59)
  • Unity Animation -- 导入动画

            尽管Unity中的动画工具已经比较强大了,但对于非常复杂的或很长的动画,通常是由外部DCC创建。特别是对于角色动画来说,需要在动画过程中进行复杂的控制。因此我们通常需要将外部制作的动画导入到Unity中。         对于复杂的动画,制作过程会非常耗时。动

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包