Unity Blend Tree(动画混合树)与AnimationEvent(动画事件)一起使用所带来的多个动画事件触发的问题及解决方法

这篇具有很好参考价值的文章主要介绍了Unity Blend Tree(动画混合树)与AnimationEvent(动画事件)一起使用所带来的多个动画事件触发的问题及解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多个动画事件触发

最近在添加人物脚步声效,所以打算使用unity的动画事件来制作,但走路动画是用的2d的混合树,就导致了当动画进行混合播放的时候,动画事件也会一起触发
unity多个动画事件只执行一个,unity,游戏引擎,动画


解决方法

在unity社区进行搜索后发现了这篇2015年的帖子,在unity官方技术人员的评论下找到了答案:
unity多个动画事件只执行一个,unity,游戏引擎,动画
unity多个动画事件只执行一个,unity,游戏引擎,动画
具体做法是通过返回动画事件(AnimationEvent),来获取当前动画事件的权重,然后通过判断权重来限制方法
代码如下:

void Event(AnimationEvent animationEvent)
    {
        if(animationEvent.animatorClipInfo.weight > 0.5f)
        //权重不一定是0.5,看需要去修改
        	//这里写处理的事件
    }

因为动画事件只能返回一个参数,使用了返回AnimationEvent参后就不能再返回其他参了,所以想要传多参的话可以:

void Event(AnimationEvent animationEvent)
    {
    //传多参		
        string test_string = animationEvent.stringParameter;
        int test_int = animationEvent.intParameter;
        float test_float = animationEvent.floatParameter;
        object test_object = animationEvent.objectReferenceParameter;
    }

补充

还是上面那个帖子里面,22年有个老哥说自己明明在播放这个动画,但该动画的权重总是不能达到自己设置的权重,他给出的解决方法就是在设置参数时尽可能四舍五入(Mathf.Round)到最近的整数。如果有需要可以去参考一下
unity多个动画事件只执行一个,unity,游戏引擎,动画文章来源地址https://www.toymoban.com/news/detail-519670.html

到了这里,关于Unity Blend Tree(动画混合树)与AnimationEvent(动画事件)一起使用所带来的多个动画事件触发的问题及解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity中的声音(声音开关+动画事件播放声音+控制声音大小UI)

            声音组件(一个scene中只能有一个Audio Listener,位于Camera)         Audio Source 理解为 “嘴巴” Unity中支持的音频格式 效果 :点击背景音乐暂停,再点击音乐继续。 步骤 (1)创建UI—Toggle(切换) 与图片上对应:       Label 文字       Background 白色框框    

    2024年02月10日
    浏览(42)
  • [Unity][Bug记录] AnimationEvent has no function name specified!

     经过排查,这是在动画Animation界面添加了空的动画事件(如图) 一般是在一个点手滑添加了多个动画事件只给一个添加了对应函数     经过检查,删除动画事件上的没有附加函数的百点并且确保每个动画事件都附加函数即可不报错。

    2024年02月11日
    浏览(31)
  • 【Unity】GPU骨骼 GPU Spine动画 2D/3D渲染性能开挂 合批渲染 支持武器挂载 动画事件 动画融合 实时获取骨骼位置

     GPU 3D骨骼动画和 GPU 2D Spine动画插件均包含在【万人同屏整合方案】中,老板们可在某宝搜:[游戏开发资源商店] 以获取全套方案的所有源码插件。   万人同屏渲染避障锁敌方案实现对抗战斗demo 展示GPU动画高级功能 动画事件 动画平滑过渡 融合   插件功能: 1. 支持3D动画

    2024年02月22日
    浏览(48)
  • unity - Blend Shape - 变形器 - 实践

    拾遗,备份 blend shape 基于: vertex number, vertex sn 相同,才能正常混合、播放 也就是 vertex buffer 的顶点数量一样,还有 triangles 的 index 要一致 这样 blend shape 才能逐个顶点计算 计算公式:使用一张大佬整理的图,大佬的文章:BlendShapes基础与拓展练习(面捕与物体变形) Shift

    2024年04月14日
    浏览(29)
  • Unity Shader相关的ZTest,ZWrite,Blend

    画家算法: 以一个画布为背景,从远到近画一个画面,先画最远的背景,也就是天空 然后假如是雪山, 然后再画上树木,树木在雪山上 然后山下是若干个居民的房屋,以及若干条道路 其次房屋门前可能有树木又当道部分房屋 其中某片区域一定会进行若干次上色,这样在

    2024年02月03日
    浏览(43)
  • 又一起数据泄露事件五个月内的第二次

      据报道,T-Mobile 在发现攻击者从 2023 年 2 月下旬开始的一个多月内访问了数百名客户的个人信息后,披露了 2023 年的第二次数据泄露事件。 与之前报告的数据泄露事件(最近一次影响了 3700 万人)相比,此次事件仅影响了 836 名客户。  然而,暴露的信息量非常大,使相关

    2024年02月03日
    浏览(60)
  • UE4_官方动画内容示例1.3_ 运动混合空间(Locomotion BlendSpace)

    如何使用运动(Locomotion)混合空间将Actor在不同方向上及不同速度的运动混合起来。(例如,展示了一个混合了以不同速度向后、前、左和右走路/跑步动作的Actor)。 混合空间是允许根据多个输入的值混合任意数量动画的资源。 混合空间(Blend Space)  是可以在  动画图(

    2024年04月26日
    浏览(33)
  • Flutter中为控件添加交互,带你一起探究Android事件分发机制

    ), ); } } 代码运行效果如图: 2.父widget管理widget的状态 对于父widget来说,管理状态并告诉其子widget何时更新通常是最有意义的。 例如,IconButton允许您将图标视为可点按的按钮。 IconButton是一个无状态的小部件,因为我们认为父widget需要知道该按钮是否被点击来采取相应的处理

    2024年04月11日
    浏览(44)
  • Qt+C++多线程thread-QThread-QTimer视频-控件动画-混合应用实例

    程序示例精选 Qt+C++多线程thread-QThread-QTimer混合应用实例 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对Qt+C++多线程thread-QThread-QTimer混合应用实例编写代码,代码整洁,规则,易读。 学习与应用推荐首选。 功能:多线程thr

    2024年02月16日
    浏览(47)
  • el-tree与el-popover配合使用避免事件冒泡

    解决方法: 可以选择用一个 span 将整个 el-popover 包起来,给span加 一个 @click.stop,即可阻止冒泡

    2024年04月11日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包