UnityVR--组件5--Animation动画

news2024/11/27 9:48:15

目录

新建动画Animation

Animation组件解释

应用举例1:制作动画片段

应用举例2:添加动画事件

Animator动画控制器

应用举例3:在Animator中设置动画片段间的跳转


本篇使用的API:Animation、Animator以及Animator类中的SetFloat、SetInteger、SetBool等,以及短小动画片段的制作

新建动画Animation

  必须选择一个对象来建立动画,选择Window->Animation->Animation,在弹出窗口中点击“创建”

  

创建完成后,Animation中就出现了动画帧,同时在放置动画的文件夹中会自动添加一个动画控制器Animator,并在添加动画的物体上挂载Animator组件:

 Animation组件解释

  可以制作位置移动、旋转或缩放等类型的动画,点击对应的+号,就可以在时间轴上创建相关的帧:

 

 应用举例1:制作动画片段

 1. 按上面的步骤创建Animation后,点击“AddProperty”选择Transform中的Position,先制作一个移动的动画。点击“录制”按钮开始录制动画:

   2. 这里是动画初始的状态,然后将帧的指针拖到下一个状态的位置,比如0:10的位置。同时也将动画人物放置到下一个位置,Animation会自动新建关键帧。:

  

   3. 以此类推,不断将指针移动到关键帧位置,并相应地设置动画人物到各个位置,完成后关闭录制按钮:

 

  4. 点击“播放”按钮,可以预览动画的效果:

 

应用举例2:添加动画事件

  在动画播放的过程中,有时候需要触发一些事件的回调,比如人物跳着跳着撒出一些金币,或者走着走着说了一句话,这就需要在动画中添加一个事件。

  1. 将指针拖到需要事件回调的位置,点击按钮“AddEvent”:

   2. 编辑脚本:这里写一个测试脚本Test.cs,并挂载在动画物体上:

public class Test : MonoBehaviour
{
    public void TestAnime()
    {
        Debug.Log("跳啊跳啊");
    }
}

  3. 点击动画上的事件,在下拉菜单中就能看到这个测试的函数:

   4. 运行一下场景,每当动画执行到这个事件时,就会调用TestAnime()这个函数:

 Animator动画控制器

  Animator是一个动画的控制器,在创建动画Animation时,自动会创建。它管理动画人物在什么状态下应该播放什么动画片段,这样就可以简单地使用设置来控制不同动画播放,而不用写代码。

  Animator组件就默认挂在动画人物上:

  同时还创建了一个Animator控制器,例如上面创建的动画“HeroAnimation”,它的Animator控制器“Hero”(默认在同一文件夹中),双击它就能打开控制界面:

   其中AnyState、Entry和Exit三个节点是默认的,目前只有一个HeroAnimation动画片段。单击HeroAnimation动画,可以在Inspector窗口中看到它的属性:

  如果需要添加第二段动画,可以在状态机的空白处点右键新建,并且添加跳转箭头到新的动画上:

  

   单击跳转箭头,可以看到右边的Inspector中的跳转条件设置:

  这里的跳转条件由Animator中设置的参数控制:

应用举例3:在Animator中设置动画片段间的跳转

  1. 先制作两个简单的动画片段Animation:站立动画HeroIdle(Scale上的变化),跳跃动画HeroJump

  

  2. 将两个动画片段拖入Animator:

   3. 建立动画过渡,在HeroIdle上点右键->MakeTransition,建立从HeroIdle到HeroJump的转场:

   

   4. 反向也建立一条:

   5. 在Animator的参数页,建立一个Float类型的参数,取名为changeFloat:

 

   6. 点击向下的专场箭头,在Inspector中为它建立转场的条件:

  在Conditions下方点“+”号,添加一个转场条件,在其中选择刚刚建立的这个浮点数changeFloat,设置条件,当它的值大于1时,动画跳转到HeroJump,而它的初始值是0:

   7. 测试代码,挂在Hero身上。这里使用API"SetFloat"就可以访问到转场的参数:

public class AnimeSwitch : MonoBehaviour
{
    private Animator animator;
    void Start()
    {
        animator= GetComponent<Animator>();//获取主角身上的Animator组件        
    }
    void Update()
    {
        if(Input.GetKey(KeyCode.Space))
        {//当按下Space按键时,把changeFloat值改为大于1
            animator.SetFloat("changeFloat", 1.1f);
        }
        else animator.SetFloat("changeFloat", 0f );//不按的时候改回0
    }
}

 8. 效果:平时播放站立动画,按下Space按键就跳一下。

   状态机中的表现,按下space的时候跳转到Jump动画,然后跳转回来:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序语言排行榜有哪些

程序语言排名 程序语言排行NO.1Java Java是基于类的面向对象的编程语言&#xff0c;拥有跨平台、面向对象、泛型编程的特性&#xff0c;广泛应用于企业级Web应用开发和移动应用开发。任职于Sun Microsystems的詹姆斯高斯林等人于1990年代初开发Java语言的雏形&#xff0c;最初被…

超低功耗待机血压计语音IC方案,智能提示NV080C-S8

随着我国步入21世纪的步伐和改革开放的不断深入&#xff0c;我国医疗水平和人民的生活水平不断提高&#xff0c;致使我国已经成为了全球老龄化为严重的国家&#xff0c;老年人占据的比重越来越大&#xff0c;一些常见的却不容易治愈的老年性疾病的预防工作已成为现今确保老年人…

LVM逻辑卷元数据丢失恢复案例 —— 筑梦之路

Lvm常见的故障主要是pv出现异常&#xff0c;有以下几种情况 一个是pv所在的磁盘发生了lvm的元数据损坏一个是系统无法识别到pv所在的磁盘一个是系统异常&#xff0c;断电等导致重启后盘符发生变化&#xff0c;也就是系统识别的磁盘uuid发生变化&#xff0c;但是wwid还是可以对应…

4.6 Monitor概念

目录 1、对象头2、原理Monitor3、原理之Synchronized4、原理之Synchronized进阶1&#xff09;轻量级锁2&#xff09;锁膨胀3&#xff09;自旋优化4&#xff09;偏向锁5&#xff09;锁消除 1、对象头 64 位虚拟机 在加锁的过程中&#xff0c;Mark Word中的62位将会指向操作系统…

外包呆了5年终上岸,劝各位别去了...

有些测试员朋友找工作过程中问我&#xff0c;或者网上问有外包公司的offer&#xff0c;要不要去外包公司?在这里我结合我自己的经历和身边一些朋友的情况来谈谈这个问题。首先我呆过两家外包公司&#xff0c;并且身边有不少朋友是在外包公司工作。所以我只是尽量客观的分析这个…

Python 接口自动化测试导入接口无法上传文件有什么原因? 详细教程

在Python接口自动化测试中&#xff0c;上传文件通常需要使用requests库来发送HTTP请求。以下是一个示例代码来实现上传文件的功能&#xff1a; 如果你想学习自动化测试&#xff0c;我这边给你推荐一套视频&#xff0c;这个视频可以说是B站百万播放全网第一的自动化测试教程&am…

畅聊趣坊项目测试报告

文章目录 项目背景项目功能测试计划与设计功能测试自动化测试 测试结果功能测试结果UI自动化测试结果 项目背景 在浏览网站时&#xff0c;发现好多网站开放出聊天的窗口&#xff0c;我们一发送消息就会收到一条消息&#xff0c;好奇这个功能是怎么实现的&#xff0c;最后查阅资…

七日杀EOS错误,开服出现房间无法被搜索的问题

如题&#xff0c;本问题建立在你的服务器已经正常启动的情况下。 如果你的服务器根本做不到正常启动&#xff0c;那么这个方案可能并不适合你。 这里只提供windows端的配套过程&#xff0c;如果你的os是linux&#xff0c;那么需要自行bing一下证书导入方法。 本文默认你的serve…

Numpy---类型修改、去重、级联、拆分、拷贝复制

1. 类型修改 ndarray.astype(type) 返回修改了类型之后的数组 stock_change np.random.normal(0, 1, (4, 5)) stock_change.astype(np.int32)ndarray.tostring([order]) ndarray.tobytes([order]) 构造包含数组中原始数据字节的Python字节 arr np.array([[[1, 2, 3], […

【C++学习】特殊类设计 | 类型转换

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 特殊类设计 | 类型转换 一、特殊类设计1.1 不能被拷贝的类1.2 只能在堆上创建的类1.3 只能在栈上创建…

SpringBoot整合ShardingSphere5.x实现数据加解密功能

环境&#xff1a;Springboot2.6.14 ShardingSphere5.3.0 准备环境 添加依赖 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core</artifactId><version>${shardingsphere.version}</ve…

【数据分享】1929-2022年全球站点的逐日最低气温(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01; 之前我们分享过1929-2022年全球气象站…

【资料分享】过压保护自锁控制电路

概述(电路类别、实现主要功能描述)&#xff1a; 在电源系统中&#xff0c;当反馈回路失效时&#xff0c;输出电压不受控&#xff0c;电压升高超出规定范围&#xff0c;此时过高的输出电压有可能造成后续电器设备的损坏。为解决这问题&#xff0c;通常在电源中增加过压保护电路…

神经网络学习率指数衰减ExponentialDecay策略的参数含义与使用方法详解

本文介绍在tensorflow库中&#xff0c;用于动态调整神经网络的学习率的一种方法——指数衰减ExponentialDecay()策略的参数含义及其具体用法。 在进行神经网络训练时&#xff0c;我们经常需要用到动态变化的学习率&#xff0c;其中指数衰减ExponentialDecay()策略是我们常用的一…

【鲁棒优化】具有可再生能源和储能的区域微电网的最优运行:针对不确定性的鲁棒性和非预测性解决方案(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Python 类方法和静态方法】零基础也能轻松掌握的学习路线与参考资料

一、Python类方法和静态方法的概念 在Python中&#xff0c;类方法和静态方法是常见的两种方法。两者都是Python中的函数&#xff0c;可以在类和实例上调用。但是&#xff0c;它们的作用和用法有所不同。 类方法是绑定到类而不是实例的方法&#xff0c;它们可以在实例和类上运…

高性能软件负载OpenResty常用命令

目录 1 案例介绍2 中小公司的详情页方案2.1 缺点 3 大型公司的商品详情页的核心思想3.1 生成静态页3.2 推送到文件服务器3.3 布隆过滤器过滤请求3.4 lua直连Redis读取数据3.5 OpenResty 渲染数据 4 环境准备4.1 配置文件服务器4.2 配置资源反向代理4.3 访问测试 1 案例介绍 商品…

【Unity100个实用小技巧】Git报错:error: some local refs could not be updated;

☀️博客主页&#xff1a;CSDN博客主页 &#x1f4a8;本文由 我是小狼君 原创&#xff0c;首发于 CSDN&#x1f4a2; &#x1f525;学习专栏推荐&#xff1a;面试汇总 ❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏 ⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&…

SpringBoot+Mybatis+Thymeleaf实现的疫情防控物资管理系统

本系统具体使用的技术是&#xff1a;后端使用SpringBootMybatis&#xff0c;前端使用了Thymeleaf框架&#xff0c;数据库使用的是MySql 8.0。开发工具使用的是IDEA。 本系统前端是使用了前辈的管理系统模板&#xff0c;具体的系统模块功能如下图所示&#xff1a; 一、系统首页…

《环信开发者技术等级考试》有奖问答正在进行中。。。

欢迎参加《环信开发者技术等级考试》&#xff0c;希望大家凝神静气&#xff0c;考出水平。 值此环信十周年&#xff0c;参与本次考试所有考生均可凭实力获得周年大礼包。 考场设置 本次考试主要考察大家对集成环信IM以及环信开通服务的熟悉度。 题型包含单选和多选&#xff…