unity学习41:动画里的曲线curve参数 和 事件 events

目录

1 曲线 curve

1.1 生成和修改曲线

1.2 曲线命名  =  animator参数命名,关联起来

1.3 可以修改animator的参数,也可以获取animator的参数

1.4 用脚本获得曲线的参数数值,并打印出来

1.4.1 获得曲线的test1参数

1.4.2 代码

1.4.3 测试OK

1.4.4 应用

2  事件 Events

2.1 增加新事件

2.2 事件的核心是 函数 function

2.3 具体代码

2.4 报错处理


1 曲线 curve 和参数

1.1 生成和修改曲线

  • 点击+号 新建曲线
  • 默认有2个key帧,默认是直线
  • 可以右键添加新的key
  • 拖动曲线上的key点,可以调整曲线形状

可以生成多条曲线

1.2 曲线命名  =  animator参数命名,关联起来

  • 曲线命名= animator参数命名,关联起来
  • 命名必须相同
  • 修改曲线名字后,一定记得点apply 才会生效

1.3 可以修改animator的参数,也可以获取animator的参数

也可以从animator里去 设置参数

    animator1.SetBool("IsRun",false);

也可以从animator里获得参数

    比如 get

     animator1.GetBool("IsRun");

实际上可以

  • animator1.GetBool("IsRun");
  • nimator1.GetFloat("test1")
  • 等等

1.4 用脚本获得曲线的参数数值,并打印出来

1.4.1 获得曲线的test1参数

  •  //获得曲线的test1参数
  • Debug.Log(animator1.GetFloat("test1"));

1.4.2 代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestPlayer1 : MonoBehaviour
{private Animator animator1;// Start is called before the first frame updatevoid Start(){animator1=GetComponent<Animator>();}// Update is called once per framevoid Update(){float horzontal=Input.GetAxis("Horizontal");float vetical=Input.GetAxis("Vertical");Vector3 dir1=new Vector3(horzontal,0,vetical);Debug.DrawRay(transform.position,dir1,Color.red);//如果按下了移动按键if(dir1 != Vector3.zero){//面向向量transform.rotation=Quaternion.LookRotation(dir1);//播放跑步动画animator1.SetBool("IsRun",true);//朝着面向的前方移动transform.Translate(Vector3.forward*2*Time.deltaTime);}else{//播放walk动画animator1.SetBool("IsRun",false);}if(Input.GetKeyDown(KeyCode.Q)){//触发wave参数GetComponent<Animator>().SetTrigger("wave");}//获得曲线的test1参数Debug.Log(animator1.GetFloat("test1"));}
}

1.4.3 测试OK

  • 因为我是在walk动作上挂的曲线
  • 所以walk时,这个数值变化
  • run起来后,这个数值就不变了

1.4.4 应用

  • 可以应用于绑定在 这个动作上的一些其他行为
  • 比如,攻击特效,走路效果,声音,等等
  • 比如挥拳,声音逐渐变小
  • 比如挥拳,特效逐渐变大,变最大,然后消失

2  事件 Events

2.1 增加新事件

  • 拖动动画,寻找一些特殊帧
  • 特殊帧可以对应设置事件
  • 点击前面竖线+ 可以设置事件

  • 比如选择 rightfoot  和 leftfoot 着地的时间,设置事件
  • 这2个事件 rightfoot ,leftfoot 在Animator里就是函数

2.2 事件的核心是 函数 function

  • void rightfoot() {}
  • void rleftfoot() {}
  • 可以在 player 这个gameObject挂的脚本上直接使用

        void rightfoot()

        {

            Debug.Log("右脚");

        }

        void leftfoot()

        {

            Debug.Log("左脚");

        }

2.3 具体代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestPlayer1 : MonoBehaviour
{private Animator animator1;// Start is called before the first frame updatevoid Start(){animator1=GetComponent<Animator>();}// Update is called once per framevoid Update(){float horzontal=Input.GetAxis("Horizontal");float vetical=Input.GetAxis("Vertical");Vector3 dir1=new Vector3(horzontal,0,vetical);Debug.DrawRay(transform.position,dir1,Color.red);//如果按下了移动按键if(dir1 != Vector3.zero){//面向向量transform.rotation=Quaternion.LookRotation(dir1);//播放跑步动画animator1.SetBool("IsRun",true);//朝着面向的前方移动transform.Translate(Vector3.forward*2*Time.deltaTime);}else{//播放walk动画animator1.SetBool("IsRun",false);}if(Input.GetKeyDown(KeyCode.Q)){//触发wave参数GetComponent<Animator>().SetTrigger("wave");}//获得曲线的test1参数//Debug.Log(animator1.GetFloat("test1"));}void rightfoot(){Debug.Log("右脚");}void leftfoot(){Debug.Log("左脚");}}

2.4 报错处理

  • 如果出现如下的错误,一般是因为没有把  这2个函数放在根目录下
  • void rightfoot() {}
  • void rleftfoot() {}
  • 也就是这2个不能位于 start() 或者 update() 之内
  • 因为 start() 只开始执行1次
  • update()一帧内,动画基本执行不到这

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

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

相关文章

JVM学习

JVM 1、JVM是一个跨语言的平台&#xff0c;与语言无关 2、java虚拟机规范&#xff1a;一流企业做标准&#xff0c;二流企业做品牌&#xff0c;三流企业做产品 JVM种类 Hotspot&#xff1a;Oracle 公司&#xff0c;有商业版和免费版 open jdk 内部包含免费版本hotspot虚拟机 Jr…

DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

141,【1】buuctf web [SUCTF 2019]EasyWeb

进入靶场 代码审计 <?php // 定义函数get_the_flag&#xff0c;功能是处理文件上传相关操作 function get_the_flag() {// 注释说明&#xff1a;webadmin会每隔20分钟删除用户上传的文件$userdir "upload/tmp_" . md5($_SERVER[REMOTE_ADDR]);// 检查用户目录…

基于STM32的智能鱼塘养殖监控系统

1. 引言 水产养殖业正朝着智能化、精细化方向发展&#xff0c;传统养殖模式存在水质监控滞后、投喂不精准等问题。本文设计了一款基于STM32的智能鱼塘养殖监控系统&#xff0c;通过实时监测水质参数、自动投喂与远程管理&#xff0c;实现科学养殖&#xff0c;提高产量与经济效…

mapbox V3 新特性,添加下雪效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;mapbox 从入门到精通 文章目录 一、&#x1f340;前言1.1 ☘️mapboxgl.Map 地图对象…

Large Language Model Distilling Medication Recommendation Model

摘要&#xff1a;药物推荐是智能医疗系统的一个重要方面&#xff0c;因为它涉及根据患者的特定健康需求开具最合适的药物。不幸的是&#xff0c;目前使用的许多复杂模型往往忽视医疗数据的细微语义&#xff0c;而仅仅严重依赖于标识信息。此外&#xff0c;这些模型在处理首次就…

高血压危险因素分析(项目分享)

高血压危险因素分析&#xff08;项目分享&#xff09; 高血压作为一种极为常见的慢性疾病&#xff0c;正严重威胁着大众健康。它的发病机制较为复杂&#xff0c;涉及多个方面的因素。 在一份临床采集的数据的基础上&#xff0c;我们通过数据分析手段深入观察一下 BMI&#xf…

基于STM32的智能垃圾分类回收系统

1. 引言 随着城市化进程加快&#xff0c;传统垃圾处理方式已无法满足环保需求。本文设计了一款基于STM32的智能垃圾分类回收系统&#xff0c;通过图像识别、重量检测与自动分拣技术&#xff0c;实现垃圾精准分类&#xff0c;提高回收效率&#xff0c;助力城市可持续发展。 2. …

二、深入剖析线程安全性问题与底层原理

1.什么是线程安全&#xff1f;线程安全会带来哪些底层问题&#xff1f; 2.分析保证线程安全的三个性质-原子性、可见性、有序性 3.多场景剖析未保证原子性带来的问题 package imooc.atomic;public class AtomicTest {public static void main(String[] args) throws Interrupte…

IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini)

IntelliJ IDEA 接入 AI 编程助手&#xff08;Copilot、DeepSeek、GPT-4o Mini&#xff09; &#x1f4ca; 引言 近年来&#xff0c;AI 编程助手已成为开发者的高效工具&#xff0c;它们可以加速代码编写、优化代码结构&#xff0c;并提供智能提示。本文介绍如何在 IntelliJ I…

积家(Jaeger-LeCoultre):“钟表界的钟表师“(中英双语)

积家&#xff08;Jaeger-LeCoultre&#xff09;&#xff1a;瑞士高级制表的隐形巨匠 在瑞士高级制表领域&#xff0c;积家&#xff08;Jaeger-LeCoultre&#xff0c;简称JLC&#xff09; 被誉为“钟表界的钟表师”&#xff0c;它不仅是世界顶级腕表品牌之一&#xff0c;还为许…

Jenkins 新建配置Pipeline任务 三

Jenkins 新建配置Pipeline任务 三 一. 登录 Jenkins 网页输入 http://localhost:8080 输入账号、密码登录 一个没有创建任务的空 Jenkins 二. 创建 任务 图 NewItem 界面左上角 New Item 图NewItemSelect 1.Enter an item name&#xff1a;输入任务名 2.Select an ite…

盛铂科技 SMF106 低相位噪声贴片式频率综合器模块

在现代通信和电子设备领域&#xff0c;频率综合器作为关键组件&#xff0c;其性能优劣直接影响系统的整体表现。盛铂科技的 SMF106 低相位噪声贴片式频率综合器&#xff0c;以其卓越的性能和独特设计&#xff0c;成为众多高性能系统的选择。 一、频率覆盖范围广&#xff0c;步进…

ros:ur机械臂初识

这是用来可视化的launch文件 比如&#xff0c;我运行 roslaunch ur_description view_ur3.launch ur3模型 ur3e模型 ur5模型 ur5e模型 ur10模型 ur20模型 ur30模型 后来我搜了一下 UR5 和 UR10 都是由 Universal Robots&#xff08;简称 UR&#xff09;生产的协作机器人&…

智能陪诊与远程问诊:AI驱动的互联网医院APP开发路线图

智能陪诊与远程问诊作为现在医疗变革的前沿阵地&#xff0c;正在为广大患者提供更为便捷、高效的医疗服务。特别是在互联网医院APP的开发过程中&#xff0c;AI技术的应用已成为提升用户体验和医疗服务质量的重要手段。本文将探讨如何基于AI技术开发智能陪诊与远程问诊功能的互联…

pnpm, eslint, vue-router4, element-plus, pinia

利用 pnpm 创建 vue3 项目 pnpm 包管理器 - 创建项目 Eslint 配置代码风格(Eslint用于规范纠错&#xff0c;prettier用于美观&#xff09; 在 设置 中配置保存时自动修复 提交前做代码检查 husky是一个 git hooks工具&#xff08;git的钩子工具&#xff0c;可以在特定实际执行特…

格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具

格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具 功能&#xff1a;视频 音频 图片 文档PDF格式 各种转换&#xff0c;同格式调整压缩比例&#xff0c;调整大小 特色&#xff1a;果风图标 好看; 支持多任务队列&#xff0c;完成自动关机 下载地址&#xff1…

ai数字人分身系统开发源码saas化

#数字人分身系统# #数字人系统源码# #ai数字人123 123# 云罗抖去推数字人分身系统是一款融合了形象克隆、声音克隆、AI数字人分身、AI智能剪辑、智能文案等各种AI技术一体化的短视频营销工具&#xff0c;其核心功能优势主要体现在以下几方面&#xff1a; 真实度高&#xf…

基于Spring Boot的民宿租赁系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

李宏毅机器学习笔记:【6.Optimization、Adaptive Learning Rate】

Optimization 1.Adaptive Learning Rate2.不同的参数需要不同的学习率3.Root Mean Square4.RMSProp5.Adam6.learning rate scheduling7.warm up总结 critical point不一定是你在训练一个network时候遇到的最大的障碍。 1.Adaptive Learning Rate 也就是我们要给每个参数不同的…