【Unity动画】为一个动画片段添加事件Events

2023-12-03 12:44

本文主要是介绍【Unity动画】为一个动画片段添加事件Events,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

动画不管播放到那一帧,我们都可以在这里“埋伏”一个事件(调用一个函数并且给函数传递一个参数,参数在外部设置,甚至传递一个物体)!

嗨,亲爱的Unity小伙伴们!你是否曾想过为你的动画增添一些特殊的瞬间,让它们更有生命力?那么,Animation Events就是你的神奇法宝!本文将带你深入了解Unity动画事件的方方面面。

 

 

1. 动画片段的Events 事件介绍

在谈论Unity动画事件之前,让我们首先了解一下它是如何工作的。动画事件允许你在动画的播放过程中,在指定的关键帧上执行脚本中的函数。这意味着你可以在动画的不同时刻触发自定义的逻辑,为角色、场景或其他元素注入更多生命力。

2. 实际应用场景举例

2.1 音效触发

想象一下,你的游戏角色挥动武器的瞬间,能否在这个瞬间播放一段炫酷的音效?通过Animation Events,你可以轻松实现这一点。

然后创建一个脚本,脚本必须挂在场景种播放动画的游戏对象上!

函数名必须和外边Function的名字一样

如:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class EventaddFrame : MonoBehaviour
{public void PlaySoundEffect(int para){Debug.Log("播放到第15帧了,开始播放声音" + para);}}

2.2 角色攻击判定

或许你希望在角色攻击动作的某一帧上进行攻击判定,检测是否击中敌人。是的,通过Animation Events,你可以在这一关键时刻触发判定逻辑。

public void AttackHitCheck() { // 在这里添加攻击判定的逻辑 }

3. 具体添加方式

3.1 打开动画窗口

首先,在Unity编辑器中,打开动画窗口。你可以通过双击导入的模型文件或选择模,然后点击"Open Animation Window"按钮来打开。

3.2 选择动画片段

在动画窗口中,选择你希望添加事件的具体动画片段。

3.3 添加事件

右键点击帧,选择"Add Event"。在事件视图中,设置事件的触发时间、调用函数名以及可能的参数。

4. 注意事项

为了确保一切顺利运行,请注意以下事项:

  • 函数的访问权限: 确保你的脚本函数是公共函数,以便Animator系统能够访问。

  • 事件的触发时机: 仔细选择事件的触发时间,确保它在正确的关键帧上。

  • Funtion的名字:必须是和函数名一样

  • Object参数:是传递一个游戏物体到函数种,函数需要一个变量接收

  • 脚本必须挂在:播放动画的游戏物体上

5. 示例代码

下面是一个简单的示例代码,展示了如何在脚本中定义函数:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class EventaddFrame : MonoBehaviour
{public void PlaySoundEffect(int para){Debug.Log("播放到第15帧了,开始播放声音" + para);}public void AttackHitCheck(float para){ // 在这里添加攻击判定逻辑 Debug.Log("播放到第25帧了,开始攻击" + para);}
}

6. 案例

6.1 刀光闪耀

在角色挥动武器的动画中,通过Animation Events触发刀光特效的闪耀,为战斗场景增色不少。

6.2 对话系统触发

在角色表情变化的动画中,通过Animation Events触发对话系统,使得角色动画更具交互性。

6.3 播放音效

这篇关于【Unity动画】为一个动画片段添加事件Events的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449487

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

【经验交流】修复系统事件查看器启动不能时出现的4201错误

方法1,取得『%SystemRoot%\LogFiles』文件夹和『%SystemRoot%\System32\wbem』文件夹的权限(包括这两个文件夹的所有子文件夹的权限),简单点说,就是使你当前的帐户拥有这两个文件夹以及它们的子文件夹的绝对控制权限。这是最简单的方法,不少老外说,这样一弄,倒是解决了问题。不过对我的系统,没用; 方法2,以不带网络的安全模式启动,运行命令行,输入“ne