功能实现:Unity中一个动画,只播放中间指定的一截,而且循环播放

2023-11-18

一、要播放的动画(直播中间一截)

如图:总的动画为长度为2分钟零8秒
在这里插入图片描述

二、Button和对应事件

在这里插入图片描述

三、事件的代码

在Start()里面绑定

private void Awake()
{
   myAnim = animGo.GetComponent<Animation>();
   
   //【循环播放自定义段落】事件侦听
   BtnPlayLoop.onClick.AddListener(async () =>
   {
       var skipFirstFrameTime = 1 / myAnim[myAnim.clip.name].clip.frameRate;      //跳过一帧的时间是多少【第一帧是初始姿势,需要排除】
       stopLoop = false;

       while (!stopLoop)
       {
           myAnim[myAnim.clip.name].time = skipFirstFrameTime;                     //跳过第一帧
           myAnim.Play(myAnim.clip.name);                                          //Play()
           await UniTask.DelayFrame(1);                                            //帧延缓,等Play()启动

           //方式一:播放到中间指定的进度点则停止                                                                           
           //await UniTask.WaitUntil(()=>myAnim[myAnim.clip.name].time > endTime); //播放进度到达某点的时候
           //myAnim.Stop();                                                        //停止播放

           //方式二:播放到末尾(动画属性设置成once)
           await UniTask.WaitUntil(() => myAnim.isPlaying == false);               //等待播放结束【myAnim.isPlaying == false】
       }            
   });

   //【停止循环播放】事件侦听
   BtnStopLoop.onClick.AddListener(async() => 
   {
       stopLoop = true;

       myAnim[myAnim.clip.name].time = myAnim[myAnim.clip.name].length; //这一句用于跳到结束位,酌情添加
       await UniTask.DelayFrame(1);                                     //配合上一句服用:延缓一帧,用于渲染

       myAnim.Stop();           
   });
}

四、总结

本文所涉及动画播放控制的异步用UniTask包(GitHub地址自行谷歌)实现。用异步实现,逻辑清晰,好控制,不容易被自己绕晕。
【1】凡是涉及渲染处理的那部分,都丢到Update里面
【2】凡是涉及时序控制的,都用丢到一个异步方法里面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

功能实现:Unity中一个动画,只播放中间指定的一截,而且循环播放 的相关文章

  • Unity-AR 简介

    Unity AR 简介 现有Unity AR Sdk ARKit 苹果推出的AR开发平台 ARCore Google 推出的增强现实 SDK ARFoundation ARFoundation是ARKit XR插件和ARCore XR插件
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity中按钮检测鼠标状态

    改方法主要是用于按钮检测鼠标的进入 滑出 点击 抬起 长按 长按停止 1 先将下面这个脚本挂载到需要检测鼠标状态的按钮上 using System Collections using System Collections Generic u
  • UnityVR--组件3--Line Renderer--线性渲染

    目录 线性渲染组件简介 绘制线条Line Renderer组件介绍 绘制拖尾Trail Renderer组件介绍 应用1 使用Line Renderer绘制线段 应用1实现 使用系统工具或自定义工具绘制线段 应用2 Trail Render
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • VLC for unity 插件如何使用

    VLC for unity 插件如何使用 先去下载一个VLC播放器 安装完成后 然后导入插件链接https download csdn net my 这个插件我的另一个上传资源里有 或者到商店去下载 这个插件链接下载完是一个txt文档 里面
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • unity3d切换场景Application.LoadLevel(1)含义

    Application LoadLevel 1 场景ID
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • VS2022 | 显示Unreal Engine日志

    VS2022 显示Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志
  • 游戏开发常见操作梳理之NPC任务系统

    多数游戏存在任务系统 接下来介绍通过NPC触发任务的游戏制作代码 using System Collections using System Collections Generic using UnityEngine
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作系列之敌人系统的开发一(U3D)

    在开发游戏的过程中 我们常常会出现一些敌人攻击我们玩家 并且实现掉血以及死亡的现象 敌人还会源源不断地生成 这是怎么制作的呢 接下来为大家提供方法 其中使用了NGUI 后续会更新其它方法 敬请期待 使用HUDText实现扣血时显示文本 直接

随机推荐

  • lineageos 编译出错:error: VNDK version 30 not found.

    同步源代码后开始编译 结果一开始就提示这个错误 los17 1和los19 1都正常 los18 1就不行 提取了vndk 30后又会提示新的错误 该怎么解决
  • WSL2 Ubuntu+gnome图形界面的安装血泪史(亲测有效)

    WSL2 Ubuntu gnome图形界面 写在最前面 血泪史 1 wsl2 安装 2 Ubuntu安装 3 VcXsrv安装与启动 4 gnome图形界面的配置 5 显卡驱动的升级 6 wsl2与VMware虚拟机共存 本地与WSL文件传
  • docker常用的Linux命令

    docker 帮助 docker h 查看镜像 docker images 查看容器 docker ps 进入容器 docker exec it web 容器id的前几位或容器名 bin bash 有些地方是bash 具体地方具体定 退出容
  • Cesium教程 (3) 矢量切片mvt-imagery-provider加载

    Cesium教程 3 矢量切片mvt imagery provider加载 目录 0 矢量切片 1 开源项目 2 环境 3 代码 4 进阶 5 TODO 0 矢量切片 WMTS 加载最快 图片格式 样式固定 WMS 加载数量大则慢 但可以点
  • VScode项目中文件后面的A/U/M...是什么意思?

    问题 VScode项目中文件后面的A U M 是什么意思 回答 git 添加过该文件 然后你对这个文件进行了修改 就会文件后标记M M modified 你在本地新建了这个文件 还未提交到 git 上 就会标记文件或没有被合并 你需要完成合
  • rocksd mysql_mysql rocksdb使用报告

    作者 某网盘DBA 转发已经过作者同意 如果有其他问题请及时联系 非经过允许请勿随意转发 尊重版权 感谢 背景 rocksdb是facebook基于google的leveldb二次开发的key value存储引擎 目前 facebook已将
  • cenos 6.4 安装memcached 服务端

    本文查考借鉴 yum 安装memcached 前提 阿里云 EDS 服务器 操作系统 CentOs 6 4 第一步 查询memcached 安装资源包信息 yun search memcached 该指令可以查询yum库中 所包含memca
  • Centos 安装Vsftpd

    1 安装VSFTP 1 root localhost yum y install vsftpd 2 配置vsftpd conf文件 root localhost vi etc vsftpd vsftpd conf 001 002 003 0
  • tkinter绘制组件(12)——表格

    tkinter绘制组件 12 表格 引言 构思 外观 绘制方法 布局 函数结构 绘制表头 绘制表格内容 获取高度和重绘 完整代码函数 效果 测试代码 最终效果 2021 12 12新样式 2022 1 2新样式 2022 7 3新功能 补充
  • 知识图谱实现步骤和用到的方法

    PDF 下载 https download csdn net download nrlovestudy 10938925 参考资料 1 知识图谱入门 一 知识图谱与语义技术概览 https blog csdn net pelhans art
  • 【CSS】background相关属性深入学习

    最近一次需求中对于background相关的一些属性使用较多 总结下 希望提高下次的开发效率 background属性 background color background image background position backgr
  • .NET面试题——第7篇 C#类和对象

    1 什么是类和对象以及关系 对象 一种具有状态 属性 和行为 方法 的编程实体 用于描述现实世界的某个具体事物 类 具用一系列对象共同特征和行为的通用类型 对象和类的关系 类是对象的抽象 而对象是类的具体实例 类是抽象的 不占用内存 而对象
  • go爬虫框架colly的精简讲解

    1 拉取软件包 go get github com gocolly colly 2 创建colly的收集器 colly NewCollector 可以在创建的时候进行配置 c colly NewCollector colly AllowUR
  • Java 断点调试 循环调试

    java断点调试 以eclipse为例 1 基础调试 这里都是一些基础 除了最后一个都十分常用 名称 快捷键 作用 Resume F8 运行至下一断点 Step Into F5 进入方法 Step Over F6 运行完当前语句 User
  • PCL 点云按高程渲染颜色

    目录 一 算法原理 二 代码实现 三 结果展示 四 CloudCompare 五 备注 一 算法原理 首先按照Z轴方向求取所在点云的高程极值 包括高程最大值与最小值 计算高程中值 然后选取渲染的红 绿 蓝三种颜色的值 最后 自上而下 为红绿
  • NBA的字母哥如何拿到2415万美金年薪

    前言 NBA是世界上最成功的体育联盟之一 为了制定合理的运作规范 联盟会与球员工会签署劳资协议 协议里规定了球队的工资帽 一支球队球员工资总额的上限 顶薪 球员薪水的上限 底薪 球员的最低薪水 和其他规范 2011年 经历了停摆事件 联盟和
  • 一张图理清ASP.NET Core启动流程

    1 引言 对于ASP NET Core应用程序来说 我们要记住非常重要的一点是 其本质上是一个独立的控制台应用 它并不是必需在IIS内部托管且并不需要IIS来启动运行 而这正是ASP NET Core跨平台的基石 ASP NET Core应
  • JS 数组定义及详解

    一 数组简介 1 什么是数组 数组是值的有序集合 每个值叫做元素 每个元素在数组中都有数字位置编号 也就是索引 JS中的数组是弱类型的 数组中可以含有不同类型的元素 数组元素甚至可以是对象或其他数组 例如 var arr 1 true nu
  • kubernetes运维---calico之ipip模式抓包分析

    一 calico介绍 Calico是Kubernetes生态系统中另一种流行的网络选择 虽然Flannel被公认为是最简单的选择 但Calico以其性能 灵活性而闻名 Calico的功能更为全面 不仅提供主机和pod之间的网络连接 还涉及网
  • 功能实现:Unity中一个动画,只播放中间指定的一截,而且循环播放

    一 要播放的动画 直播中间一截 如图 总的动画为长度为2分钟零8秒 二 Button和对应事件 三 事件的代码 在Start 里面绑定 private void Awake myAnim animGo GetComponent