unity开宝箱动画_[技术博客]Unity3d 动画控制

在制作游戏时,导入的箱子模型本身自带动画。然而,它的动画是一个从打开到关闭的完整过程,并且没有给出控制打开关闭的方法。

最直接的想法是对该动画进行拆分,再封装成不同的动画状态,但是不巧的是,这个动画被设置了不可修改。因此我们只能退而求其次,采取添加动画帧事件的方式对动画进行控制。

动画帧事件,顾名思义,是动画运行到某一帧就会执行的事件。即在动画的某一帧上添加一个函数,利用多个这类函数,就能间接地达到控制动画的目的。

1.实现前的功能分析

再来回顾一下我们的需求。首先我们拥有的是一个箱子从打开到关闭的完整动画,而在我们游戏中想要做到的是:

按下开始按钮之前,箱子保持关闭状态。

按下开始按钮之后,箱子开始打开,在完全打开之后箱子动画暂停,执行流水线的流程。

流水线流程结束之后,箱子关闭,在完全关闭之后,给出流水线执行的结果。

因此,我们要加的动画帧事件其实只有两个。第一个是在箱子完全打开的关键帧处,第二个在箱子完全关闭的关键帧处。

2.关键帧事件的添加

如下图所示,这是箱子动画内容,用红圈圈出的就是我们添加的关键帧事件。

ab2fccfb8f2e8e4c7d7b2f6f61cfce75.png

如何添加这些关键帧事件呢?

如下图所示,点开箱子模型,在它的inspector中选择Animation。

ef7e2a6a56b8c2b57e95797cc133d056.png

下拉inspector界面,就能看到下图内容,其中用红圈圈出的Events就是我们添加事件的地方。

点击Events下方的按钮,即可创建一个新的事件,通过左右拖动这个事件让其到达指定的帧数,下方的Function栏是指定该事件对应函数的函数名。

d9140337b0fa8e63b6feb3240dd3be68.png

3.关键帧事件具体实现函数的添加

完成上述操作之后,仅仅只是加入关键帧事件,但事件对应的具体实现函数还没有添加,因此它还不能实现我们需要的功能。

这些具体实现函数所在的脚本一定得加在播放函数的物体上,并且脚本中需要有与我们刚刚添加的关键帧事件Function栏中名字相同的函数。

在我们的实现中,我创建了一个名为AnimationControl的脚本来实现对应函数。

0175bcd68b20cd30ac4bbacc63d6f3b4.png

4.具体实现函数的编写

最后一步是编写对应函数。

两个函数都非常简单,每一个函数主要是实现两个功能:

-1.暂停动画。

-2.调用流水线控制脚本中的函数实现流水线的运转。

下图为函数内容

ed02a57bacb987abd11bc2c9a04e94e4.png

至此,我们就完成了对动画的控制。

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

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

相关文章

php上传大文件时,服务器端php.ini文件中需要额外修改的选项

几个修改点: 1、upload_max_filesize 上传的最大文件 2、post_max_size 上传的最大文件 3、max_execution_time 修改为0表示无超时,一直等待 4、max_input_time 参考网址: 在php.ini中把max_input_time 和 max_execution_time设置得特别长…

《中国人工智能学会通讯》——11.21 结束语

11.21 结束语 本文针对交通流的网络性、异质性和动态性特点,结合当前多任务学习方法的不足提出了相应的解决方案。然而,在实际的应用场景中还存在更多的挑战,需要进一步深入的研究方向包括:① 高维任务的共同学习方法。在高维数据…

如何把一个软件嵌入另一个软件_自动化正在成为一个“软件”行业

摘要在智能制造时代,自动化行业正在成为一个软件行业,它正在改变着整个产业的未来,也将为制造业带来更为广阔的空间。自动化正在成为一个“软件”行业,在智能时代,软件正在成为自动化行业竞争的关键。自动化已然成为软…

leetcode1020. 飞地的数量(dfs)

给出一个二维数组 A,每个单元格为 0(代表海)或 1(代表陆地)。 移动是指在陆地上从一个地方走到另一个地方(朝四个方向之一)或离开网格的边界。 返回网格中无法在任意次数的移动中离开网格边界…

未来编程语言的走向_在编程方面我从失败走向成功的过程以及让我成功的原因

未来编程语言的走向In the past 10 years, I’ve had three separate experiences trying to learn programming. I’ve wondered why I’ve had such different results. What had caused me to both fail and succeed?在过去的10年中,我有3种不同的尝试学习编程的…

《中国人工智能学会通讯》——5.16 结 论

5.16 结 论 在过去的 30 年中,移动操作机器人在机器人实验室受到了广泛的关注并获得了比较充分的研究。未来随着工业领域的自动化需求,移动操作机器人将会深入到生产的各个环节。目前,几乎所有的移动操作机器人都没有在实际环境中获得广泛及充…

【转载 | 笔记】IIS无法删除应该程序池 因为它包含X个应用程序

IIS无法删除应该程序池 因为它包含X个应用程序 今天代码主分支在vs2015创建了虚拟目录http://localhost/webapp指向的物理路径是E:\webapp 之后新开了一个分支把代码放在了D:\webapp之后又在vs2015中创建了虚拟目录 http://localhost/webapp/home 这下就杯具了。在主分支调试的…

python作中国地图背景气泡图_exce表格中怎么制作中国地图背景数据气泡图

exce表格中怎么制作中国地图背景数据气泡图exce表格中怎么制作中国地图背景数据气泡图?excel表格中想要在中国地图上显示气泡来看看地区分布情况,该怎么设置中国地图气泡图表呢?下面我们就来看看详细的教程,需要的朋友可以参考下1、如图1所示&#xff…

leetcode979. 在二叉树中分配硬币(dfs)

给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。 在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到…

python怎么显示求余的除数_Python算术运算符及用法详解

算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了 Python 支持所有基本算术运算符。表 1 Python 常用算术运算符运算符说明实例结果加12.45 1527.45-减4.56 - 0.264.3*乘5 * 3.618.0/除法(和数学中的规则一样)7 / 23.5//整除…

任务完成:我从CNC2018 GetAJob挑战中学到的东西

什么是CNC2018? (What is CNC2018?) CNC2018 stands for the CodeNewbie Challenge of 2018 put on by CodeNewbie. If you haven’t heard of CodeNewbie, it’s a community and podcast run by Saron Yitbarek. They also host live Twitter Chats on Sundays a…

HTML td 标签的 colspan 属性

表格单元横跨两列的表格&#xff1a; <table border"1"><tr><th>Month</th><th>Savings</th></tr><tr><td colspan"2">January</td></tr><tr><td colspan"2">Fe…

Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)

作者&#xff1a;Antonio Leiva 时间&#xff1a;Jan 5, 2017 原文链接&#xff1a;https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式函数&#xff0c;所以它是Kotlin和任何其他现代开发语言的最强工具之一。 在Java6中&#xff0c;我们仅能下…

Pyhon进阶9---类的继承

类的继承 基本概念 定义 格式如下 继承中的访问控制 class Animal:__CNOUT 0HEIGHT 0def __init__(self,age,weight,height):self.__CNOUT self.__CNOUT 1self.age ageself.__weight weightself.HEIGHT heightdef eat(self):print({} eat.format(self.__class__.__name__…

python怎么备份列表_python实例:backup 备份

python实例&#xff1a;backup 备份本文来源于《python简明教程》中的实例1. 提出问题&#xff1a; 我想要一个可以为我的所有重要文件创建备份的程序。2. 分析明确问题&#xff1a;我们如何确定该备份哪些文件&#xff1f;备份保存在哪里&#xff1f;我们怎么样存储备份&#…

leetcode1466. 重新规划路线(dfs)

n 座城市&#xff0c;从 0 到 n-1 编号&#xff0c;其间共有 n-1 条路线。因此&#xff0c;要想在两座不同城市之间旅行只有唯一一条路线可供选择&#xff08;路线网形成一颗树&#xff09;。去年&#xff0c;交通运输部决定重新规划路线&#xff0c;以改变交通拥堵的状况。 路…

mysql数学函数名_Mysql数学函数

所有的数学函数在发生错误的情况下&#xff0c;均返回 NULL。-一元减。改变参数的符号&#xff1a;mysql> SELECT - 2;-> -2注意&#xff0c;如果这个操作符被用于一个 BIGINT&#xff0c;返回值也是一个 BIGINT&#xff01;这就意味着&#xff0c;应该避免在一个可能有值…

angular 渐进_如何创建具有Angular和无头CMS的渐进式Web应用程序

angular 渐进by Ondrej Chrastina通过Ondrej Chrastina 如何创建具有Angular和无头CMS的渐进式Web应用程序 (How to create a progressive web app featuring Angular and headless CMS) Have you ever wondered how a headless Content Management System fits in with Progr…

win10不用第三方工具激活的方法

步骤&#xff1a;1、本机上装个win7旗舰版&#xff0c;这个得拿第三方工具激活一下&#xff0c;当然你如果已经购买了正版更没问题了。第三方工具推荐那个啥啥loader&#xff0c;记住&#xff1a;chew_wga系列的暴力工具是不行的哦&#xff1b;2、把需要安装的win10官方安装镜像…

CentOS 7 搭建 LAMP

一、安装httpd 1、yum install httpd -y 2、启动服务&#xff1a;systemctl start httpd 3、设置开机启动&#xff1a;systemctl enable 二、安装mariadb 1、yum groupinstall mariadb 2、启动服务&#xff1a;systemctl start mariadb 3、设置开机启动&#xff1a;systemctl e…