【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 播放音效

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

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

相关文章

WPF halcon 机器视觉

1 鼹鼠的故事第14集 鼹鼠与智能房 鼹鼠无意中坐进了一辆小汽车,小汽车开进了一所智能住宅。鼹鼠看到房主在智能房里,享受着现代化的服务。趁着主人看电视的时候,鼹鼠也享用了一顿丰盛的智能晚餐。 小编大胆的畅想,这些食物 前一秒…

上传文件获得下载链接方法:直链!直链!

!非 百度网盘 不是直接用网盘下载,要用直链,百度上有很多方法。 我自己研究了个,跳过百度网盘输密码进网页的方法 还是先还是要把文件上传网盘让后搜索网盘获取直链的方法(那百度网盘举例) 地址 https:…

数据结构:字典树(前缀树,Trie树),压缩字典树(Radix)

字典树Trie Tree 字典树也称前缀树,Trie树。在 Elasticsearch 的倒排索引中用的也是 Trie 树。是一种针对字符串进行维护的数据结构。 字典树是对词典的一种存储方式,这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径,…

<JavaEE> 多线程编程中的“等待和通知机制”:wait 和 notify 方法

目录 一、等待和通知机制的概念 二、wait() 方法 2.1 wait() 方法的使用 2.2 超时等待 2.3 异常唤醒 2.4 唤醒等待的方法 三、notify() 方法 四、notifyAll() 方法 五、wait 和 sleep 的对比 一、等待和通知机制的概念 1)什么是等待和通知机制&#xff1f…

EM32DX-E4【C#】

1外观: ecat总线,分布式io 2电源: 靠近SW拨码:24V 中间:0V 靠近面板:PE接地 3DI: 6000H DI输入寄存器 16-bit (16位输入) 00H U8 子索引总数 01H Unsigned16 IN1…

事务管理 springboot

事务是一组操作的集合 它是一个不可分割的工作单位 这些操作 要么同时成功要么同时失败 Spring事务管理 #Spring事务管理日志 logging: level: org.springframework.jdbc.support.JdbcTransactionManager: debug

【深度学习】回归模型相关重要知识点总结

回归分析为许多机器学习算法提供了坚实的基础。在这篇文章中,我们将总结 10 个重要的回归问题和5个重要的回归问题的评价指标。 一、线性回归的假设是什么 线性回归有四个假设: 线性:自变量(x)和因变量(y&…

CoreDNS实战(一)-构建高性能、插件化的DNS服务器

1 概述 在企业高可用DNS架构部署方案中我们使用的是传统老牌DNS软件Bind, 但是现在不少企业内部流行容器化部署,所以也可以将Bind替换为 CoreDNS ,由于 CoreDNS 是 Kubernetes 的一个重要组件,稳定性不必担心,于此同时还可将K8S集…

智能优化算法应用:基于社会群体算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于社会群体算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社会群体算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社会群体算法4.实验参数设定5.算法结果6.参考…

【unity3D】unity中如何查找和获取游戏物体

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity中游戏物体的查找与获取 这里写自定义目录标题 获取当前物体的基本属性查找其它物体- 通过名称查找其它物体- 通过标签查找- 通过类…

使用UART和USART在STM32上进行双向通信

在本文中,我们将深入了解如何在STM32上使用UART(通用异步收发传输器)和USART(通用同步异步收发传输器)实现双向通信。UART和USART是常见的串口通信协议,通常用于与其他设备进行数据传输。我们将重点介绍如何…

基于PaddleSeg开发的人像抠图web api接口

前言 基于PaddleSeg开发的人像抠图web api接口,提取官方代码,适配各种系统,通过api的接口进行访问。 环境要求 1、Python3.7以上 2、源码(文章最后下载) 源码结构 测试module.py中添加如下代码: if __na…

字符串函数strlen的用法详解及其相关题目

strlne函数的使用 一.strlen函数的声明二.strlen函数的头文件三.相关题目代码1代码2题目1题目2题目3题目4题目5题目6 一.strlen函数的声明 size_t strlen ( const char * str );二.strlen函数的头文件 使用strlen函数我们需要使用以下头文件 #include <string.h>三.相…

Powercli常用命令

背景 vcenter web界面不如命令行快&#xff0c;且不能批量操作。 根据实际需求逐步补充使用到的powercli 命令。 00 通过bat脚本配置terminal标签页 在WindowsTerminal上配置新的标签页&#xff0c;实现打开标签页即默认连接vcenter。 脚本内容如下&#xff1a; echo off p…

Unity中C#使用协程控制Shader材质变化

文章目录 前言一、协程是什么二、在Unity中使用协程1、我们在 Start 中测试一下协程的执行顺序2、我们实现一个点击按钮实现角色受击效果 三、协程中的动画过渡1、首先&#xff0c;在协程内实现中毒并且消散的效果2、在 OnGUI 内&#xff0c;给一个新按钮使用刚刚定义的协程 四…

STM32通用定时器

本文实践&#xff1a;实现通过TIM14_CH1输出PWM&#xff0c;外部显示为呼吸灯。 通用定时器简介 拥有TIM2~TIM5、TIM9~TIM14 一共10个定时器&#xff0c;具有4路独立通道&#xff0c;可用于输入捕获、输出比 较&#xff0c;同时包含了基本定时去的所有功能。 通用定时器的结…

深入分析爬虫中time.sleep和Request的并发影响

背景介绍 在编写Python爬虫程序时&#xff0c;我们经常会遇到需要控制爬取速度以及处理并发请求的情况。本文将深入探讨Python爬虫中使用time.sleep()和请求对象时可能出现的并发影响&#xff0c;并提供解决方案。 time.sleep()介绍 首先&#xff0c;让我们来了解一下time.s…

前端——html拖拽原理

文章目录 ⭐前言⭐draggable属性&#x1f496; api&#x1f496; 单向拖动示例&#x1f496; 双向拖动示例 ⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端——html拖拽原理。 vue3系列相关文章&#xff1a; vue3 fastapi 实现选择目录所有文…

根据已有安装的cuda配置合适的pytorch环境

目前网络上根据电脑配置安装合适的深度学习环境的帖子已经很多了&#xff0c;但是现实中会出现很久之前已经安装了对应的cuda&#xff0c;但是现在忘记了当时安装的是什么版本。本文针对这一问题展开攻略。 1 cuda安装版本查询 我们在查询自己应该安装什么版本的cuda时&#…

【模电】直流通路与交流通路

直流通路与交流通路 通常&#xff0c;在放大电路中&#xff0c;直流电源的作用和交流信号的作用总是共存的&#xff0c;即静态电流、电压和动态电流、电压总是共存的。但是由于电容、电感等电抗元件的存在&#xff0c;直流量所流经的通路与交流信号所流经的通路不完全相同。因此…