unity 动画卡顿,操作角色时有卡手感

这篇具有很好参考价值的文章主要介绍了unity 动画卡顿,操作角色时有卡手感。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

        当操作一个角色连续进行一些动作时,如跳跃,攻击时,有时会出现卡手的感觉。

解决

        一般角色执行一个动作时,为了和动画配合和防止该动作再次执行打断上一个正在执行的动作,代码执行时会加上一个锁。

例如跳跃动作的执行

if(jumpStopped){

        jumpStart(); 执行跳跃

        jumpStopped = false;

        

        jumpStartAt = Time.time;

}文章来源地址https://www.toymoban.com/news/detail-819564.html

 这是为了防止这个跳跃动作在短时间内反复执行,同时也是为了和跳跃动画配合,一般解锁的时间和动画时间相等。

假如这个跳跃动画的时间是0.5s,解开锁的时间也是0.5s,解锁的代码如下所示,

if(!jumpStopped){

        if(Time.time >= jumpStartAt + 0.5s){

                jumpStopped = true;

        }

}

当跳跃动画播放结束的时候,这个跳跃动作的锁也解开了,可以再次执行跳跃动作,上述代码中是使用了时间作为开锁的条件,当然也可以使用其它的条件进行开锁,如检测角色在地面上的条件。

        现在回归主题,由上面介绍了给动作上锁和动画时间,现在想要解决问题还需要玩家的输入,玩家的输入是一个时间点。一般玩家操控角色执行一个跳跃动作后,玩家会从屏幕上角色的动画播放程度判断动画是否结束,当动画快要结束时,玩家要快速再次使角色跳跃,将输入space,但玩家的时机判断毕竟是有些偏差的,可能时机抓的没有那么准,这是的动画还没有结束,可能就差个0.09才结束,但是毕竟很接近了,这时玩家就觉得我明明已经在动画结束时再次跳跃动作了,为什么角色没有反应,可能玩家就感觉卡手了。

        unity 动画卡顿,操作角色时有卡手感,unity,游戏引擎

        由上述说明了解锁时间与动画时间相同,会由卡手的感觉。请想象一下解锁时间与动画时间配置不同情况,1.解锁时间大于动画时间情况,解锁时间1s,动画时0.5s,玩家看着跳跃动画结束了想要再次跳跃,按了space好一会角色都没反应.

2.解锁时间小于动画时间,解锁时间0.5s,动画时间1s,玩家在角色还没结束动画的时候,再次按了space输入,角色再次执行了跳跃.

        想要不卡手,第一种方法是使锁时间小于动画时间,第二中是使用输入缓冲,把输入从时间点变成时间段,如图

unity 动画卡顿,操作角色时有卡手感,unity,游戏引擎

 使用缓冲输入

ExtendBuffer(){

        if(!buffering){

                buffering = true;

                bufferEndAt = Time.time + bufferDurationSecond;

        }

}

HandleBuffer(){

        if(buffering && jumpStopped){

                if(bufferEndAt > Time.time){

                        jumpStart();

                }else{ buffering = false }

        }

}

到了这里,关于unity 动画卡顿,操作角色时有卡手感的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小游戏开发之unity-精灵的创建动画和操作移动

    我们的目标是通过unity开发微信小游戏! 这是第一篇正式实战开发文章,将会很详细介绍每一个步骤和代码。 废话不多说直接操作! 由于目标开发游戏是2D小游戏,我们选择2D核心模板. 我们的目标是开发微信小游戏所以我们需要修改setting,选择运行平台选择转换 WebGL ,刚开

    2024年01月16日
    浏览(66)
  • 【还在传统绑骨骼动画?】让AI助力你实现2D游戏角色动画流程

    需要的知识 : 会调+chatGpt( 看小红书、抖音、B站、Youtube、Telegrame等等都行,别傻忽忽跑到知识星球被收割了,就是一帮割韭菜的。 )学会怎么结合这两款不同的AI先。 如果你对此文字生成图片嗤之以鼻的话,那还是自己手绘线稿吧。 画手问题的解决方案(我更喜欢

    2024年02月04日
    浏览(41)
  • 【Unity】为角色添加动画

     在Animations的AnimationClips文件夹下自己为角色创建一个文件夹 为角色添加Animator  然后选中上面创建的文件夹,拖动到上图中的Controller中 点击最上方任务栏的Window=Animation=Animation,这会弹出一个Animation窗口  该窗口存在时,点击想要添加动作的对象,即可查看其已有的动作

    2024年02月16日
    浏览(43)
  • Unity Animation动画循环播放时卡顿、不连贯问题解决办法

    一、动画卡顿: 如上图,可看到,当循环播放动画时,动画像瘸了似的,一会块,一会慢,总之就是不连贯; 二、解决办法: 打开该元素对应的Animation,然后选中下方的Curves动画曲线,在这里我们可以看到,该动画是一条S型曲线,故而播放速度才会时快时慢; 在这里,我

    2024年02月12日
    浏览(43)
  • Unity开发日记【第三天】——角色动画效果的实现

    目录 一、站立和跑步动画效果 二、跳跃动画 三、对移动过程中的一些优化和修正 本部分我们尝试给我们的角色添加各种动画效果 首先给角色添加组件Animator,我们可以看见该组件要求一个控制器。 接下来在根目录下新建一个文件夹Animation用来存放所有的动画效果,在文件

    2024年02月05日
    浏览(49)
  • 【Unity2D】角色动画的切换

    第一种方法是设置一个中间状态,从中间状态向其余各种状态切换,且各状态向其他状态需要设置参数 实现动作转移时右键点击Make Transition即可  实现动画转移需要设置条件 点击一种动画到另一种动画的线 ,然后点击加号添加Condition 比如机器人从向左走切换到向右走的条件

    2024年02月15日
    浏览(51)
  • 游戏引擎之高级动画技术

    当我们拥有各类动画素材(clips)时,要将它们融合起来成为一套完整的动画。 最经典的例子就是从走的动画自然的过渡到跑的动画。 1.1 线性插值 不同于上节课的LERP(同一个clip内不同pose之间),动画融合需要的线性插值是不同clip之间的插值。 以走-跑为例,可以用速度来

    2024年04月14日
    浏览(68)
  • Unity 3D 人形角色动画(Avatar)||Unity 3D 导航系统||Unity 3D 障碍物

    Mecanim 动画系统 适合人形角色动画的制作,人形骨架是在游戏中普遍采用的一种骨架结构。。 由于人形骨架在骨骼结构上的相似性,用户可以将动画效果从一个人形骨架映射到另一个人形骨架,从而实现动画重定向功能。 除了极少数情况之外,人物模型均具有相同的基本结

    2024年01月16日
    浏览(47)
  • 关于UE5角色动画蓝图的基本操作(基础向)

    1、在做角色蓝图动画前,首先需要有一个可操控的角色。操作方法如下:         新建Player文件夹-在其中创建关于世界设置的蓝图:GameModeBase、PlayerController、以及角色所需要的Character(在这里因为是以第三人称为基础所以创建此蓝图类)为了区分与系统的区别可以在命名前

    2024年02月11日
    浏览(86)
  • UE4动作游戏实例RPG Action解析一:角色移动,旋转,动画创建,创建武器,及武器配置

    1.1、官方RPGAction Demo下载地址: ​ 1.2、在场景中创建一个空的角色 创建一个Character蓝图和一个PlayerController蓝图,添加弹簧臂组件和摄像机,并为网格体添加上一个骨骼网格体 ​ 1.3、如何让这个角色出现在场景中, 创建一个GameMode蓝图,把默认Pawn类设置成我们创建的角色,

    2024年02月03日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包