当前位置: 首页 > news >正文

unity学习笔记18

模型文件属性简介

1.动画类型:一共有四种:无 表示没有动画,旧版 就表示这个模型文件里面的动画片段可以用animation组件来播放的,最后两个 ”泛型“和“人形”都是animator组件来播放的。区别是泛型支持所有类型的动画播放,而人形是把人物的动画类型单独做一个分类。

选择Animation

这个时间轴表示动画的长度,可以修改长度

这个表示动画剪辑,点击加号可以生成。选择对应的动画剪辑,那么下方的设置都是为对应的动画剪辑做设置。

这个颜色表示匹配的程度,绿色代表很匹配,黄色代表勉强匹配,红色代表特别不匹配。

2.曲线:这个表示随着动画的执行返回的数值会越来越大,曲线上也可以增加关键帧来对曲线进行修改。

作用:比如角色有个挥拳动作,随着时间的增加拳头上的火焰特效越大,那么就可以给挥拳一个曲线数值由小到大,拿到这个数值再将这个数值返回给火焰特效,就可以通过这个数值来控制火焰的大小。

获取曲线数值的方式;

现在Run动画里面有一个曲线Test,且曲线数值是一个float类型的,可以在动画器中添加以恶搞float类型的参数来获取曲线的数值,当跑步动画执行的时候这个Test的数值就会发生改变。动画器的参数和曲线的名称必须一致才有值。

通过脚本来获取数值

Debug.Log(animator.GetFloat("Test"));

当动画执行Run的时候就能获取到属性的变化,动画可以设置多个曲线

3.事件:

是一种允许在动画播放的特定时间点上调用脚本方法的机制。通过动画事件,可以在动画播放的过程中触发自定义代码,实现一些特殊的逻辑、声音效果、粒子效果等。

使用方式:这两个白色线条是同步的,如果想在动作的某个时刻执行方法,在时间轴上找到希望触发事件的关键帧,就在该关键帧上添加事件。比如在run动画中,角色的脚接触地面时打印一个数值。然后脚本中编写将在动画事件触发时执行的方法。确保方法的签名是 void YourMethodName()。

示例:当角色左脚接触地面时添加一个事件将函数命名为LeftFoot,右键添加一个事件rightFoot。

只要动画执行的物体的脚本中有对应的方法就能执行这些事件。

测试代码,执行不同的方法时打印不同消息。

 void leftFoot()
    {
        Debug.Log("左脚");
    }

    void rightFoot()
    {
        Debug.Log("右脚");
    }

效果如下:

事件的应用场景:

播放声音:在动画的特定时刻播放声音效果。粒子效果:触发粒子系统的特效。触发动画状态切换:在动画的某个关键帧上切换到不同的动画状态。改变游戏状态:触发脚本中的方法来改变游戏状态或执行其他游戏逻辑。动态生成物体:在特定时间点生成新的游戏对象。
 

相关文章:

  • docker-compose脚本编写及常用命令
  • 【JavaScript】3.2 JavaScript性能优化
  • 【Azure 架构师学习笔记】- Azure Databricks (1) - 环境搭建
  • 011 OpenCV warpAffine
  • 如何在vs2017及以前版本(vs2010、vs2015)上添加 添加类型库中的MFC类
  • MySQL的安装步骤教程以及基本操作--详细讲解
  • 全微分方程@曲线积分的基本定理(公式)
  • 做一件荒谬的事:用AI推理下一次双色球结果 v0.1
  • Echarts大屏可视化_04 横向柱状图模块的引入和开发
  • 修改element的抽屉<el-drawer的宽度
  • 数据库管理-第120期 初探Halo数据库(202301201)
  • react native 环境准备
  • 初步认识结构体
  • BearPi Std 板从入门到放弃 - 后天篇(1)(I2C1 读取 光照强度)
  • 36.位运算符
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • JavaScript 基础知识 - 入门篇(一)
  • Mysql5.6主从复制
  • PHP 7 修改了什么呢 -- 2
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python docx文档转html页面
  • python3 使用 asyncio 代替线程
  • sublime配置文件
  • win10下安装mysql5.7
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 关于extract.autodesk.io的一些说明
  • 简析gRPC client 连接管理
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 如何在招聘中考核.NET架构师
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (LeetCode) T14. Longest Common Prefix
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (学习日记)2024.01.09
  • (一)插入排序
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)人的集合论——移山之道
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 使用配置文件
  • .NET 事件模型教程(二)
  • .NET关于 跳过SSL中遇到的问题
  • @font-face 用字体画图标
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [android] 练习PopupWindow实现对话框
  • [codevs] 1029 遍历问题
  • [ERROR] Plugin 'InnoDB' init function returned error
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽