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

FPS游戏框架漫谈第五天

今天想了想整理下AnimatorManager 他的职责是负责动画的播放,那么在介绍该对象具备的对外接口,必须先介绍下拥有动画的对象他是怎么管理动画数据的,打个比方如果我们一个把武器需要播放开火动画,那么我们基于unity引擎可视化动画编辑器直接在动画状态机中对动画之间的联系进行编辑器,然后保存起来。 但是???????????????
今天我们要说的是假如我们没有编辑器的帮助,假如这个动画状态机由我们自己建立Json文件并解析出来 提供给我们播放动画的业务逻辑用呢。那么现在我要实现这样一个功能我的武器在开火之后自动回到idle状态。那么我们的AnimatorManager 必须具备一个Tick行为,然后假如我们的开火和自然状态之间通过触发器进行关联,也就是开火之后,会自动回到idle状态,并且支持我开火之后可以停留多久才进入idle的逻辑。
那么AnimatorManager的Tick行为必须干一件事,什么事呢,那就是轮询触发器数据,那么我们AnimatorManager对外的播放动画的接口其实就是把触发器的数据加入缓存,等待Tick到进行执行,并不是直接调用unity引擎提供的Animator.Play去播放了。
下面先想下我的武器的状态机Json文件怎么去组织,首先我们可以把AnimatorManager看成一个状态机对象,那么状态机支持多层的 那么我们就可以定义一个叫AnimatorControllerLayer的对象去对应一个层,我们继续深入研究一个Layer层中有什么呢,打开我们的unity引擎找到一个武器打开他的状态机(哈哈 啥都没有啊) 加动作 创建动作之间的转换关系以及转换条件 直到武器有正常的开火动作等其他。好了我们是不是发现其实layer层就是由很多的状态数据组成的。同时发现没有unity中还有一个默认的状态数据
一般情况都是"DefaultState":“Idle”
那么照旧啊 我们定义一个叫AnimatorControllerState的对象来表示玩家可以添加的动画数据 注意啊默认的状态数据其实是属于AnimatorControllerLayer的一个字段 不是AnimatorControllerState
好了 那么AnimatorControllerState中包含什么信息呢 ???????? 第一个是一个动画片段的名字 第二个字段其实是一个数组 也就是记录了第一个动画片段可以过度的一些动画片段集合
那么这个动画片段集合可以叫AnimatorStateTransition 他包含的参数是什么呢
1.第一个目标动画的名字 有了这个数据当我要开火之后 我要查看我可以转换到idle不,那么目标
2.是否可以流转回自身 也就是我播放了过度之后的动画 我能不能回到原先动画
3.有没有离开时间 支持延迟过度动画
4.条件集合 可以采用AnimatorCondition对象来表示 可以存在多个条件 该条件决定了什么情况下可以过度

下面先给出状态机JSON文件
{
"Layers":[{"DefaultState":"Idle","States":[{"Name":"Any","Transitions":[{"DestinationState":"StartFire","CanTransitionToSelf":false,"HasExitTime":false,"Conditions":[{"Mode":1,"Parameter":"Fire","Threshold":0}]}]}]}
],
"parameters":[
{"defaultBool":false,"defaultFloat":0,"defaultInt":0,"name":"Fire","type":1}
]

}
第六天继续…

相关文章:

FPS游戏框架漫谈第五天

今天想了想整理下AnimatorManager 他的职责是负责动画的播放,那么在介绍该对象具备的对外接口,必须先介绍下拥有动画的对象他是怎么管理动画数据的,打个比方如果我们一个把武器需要播放开火动画,那么我们基于unity引擎可视化动画编…...

83.如何设计高可用系统

文章目录 一、简介二、导致系统不可用的常见原因三、高可用系统设计基本原则四、容错性设计五、弹性伸缩六、可观测七、安全防护设计八、自动化 一、简介 什么是高可用 高可用是指系统在面对各种故障和异常情况时,仍能够提供稳定、可靠的服务。对于企业和用户而言&…...

Map和Set讲解

🎥 个人主页:Dikz12📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 集合框架 模型 Set 常见方法和说明 Set总结 Map说明 Map常见方法和说明 Map 中HashMap的 …...

PHP集成开发环境 PhpStorm 2023 for mac中文激活版

PhpStorm 2023 for Mac是一款功能强大的PHP集成开发环境(IDE),旨在帮助开发者更高效地编写、调试和测试PHP代码。该软件针对Mac用户设计,提供了丰富的功能和工具,以简化开发过程并提高开发效率。 软件下载:…...

数学建模 - 线性规划入门:Gurobi + python

在工程管理、经济管理、科学研究、军事作战训练及日常生产生活等众多领域中,人们常常会遇到各种优化问题。例如,在生产经营中,我们总是希望制定最优的生产计划,充分利用已有的人力、物力资源,获得最大的经济效益&#…...

SpringBoot security 安全认证(二)——登录拦截器

本节内容:实现登录拦截器,除了登录接口之外所有接口访问都要携带Token,并且对Token合法性进行验证,实现登录状态的保持。 核心内容: 1、要实现登录拦截器,从Request请求中获取token,从缓存中获…...

详解WebRTC rtc::Thread实现

rtc::Thread介绍 rtc::Thread类不仅仅实现了线程这个执行器(比如posix底层调用pthread相关接口创建线程,管理线程等),还包括消息队列(message_queue)的实现,rtc::Thread启动后就作为一个永不停止的event l…...

阿赵UE学习笔记——13、贴花

阿赵UE学习笔记目录 大家好,我是阿赵。   继续学习虚幻引擎的使用。这次介绍一种特殊的材质类型,贴花。 一、获取贴花资源 在没有分析贴花的原理之前,可以先去获得一些免费的贴花资源来使用,比如在Quixel上面就有专门的一个资源…...

简单说说mysql的日志

今天我们通过mysql日志了解mysqld的错误日志、慢查询日志、二进制日志,redolog, undolog等。揭示它们的作用和用途,让我们工作中更能驾驭mysql。 redo 日志 如果mysql事务提交后发生了宕机现象,那怎么保证数据的持久性与完整性?…...

如何在CentOS安装DataEase数据分析服务并实现远程访问管理界面

如何在CentOS安装DataEase数据分析服务并实现远程访问管理界面 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 🌈你好呀!我是 是Yu欸 🌌 202…...

HTTP请求传递参数方式【2024-02-01】

1、HTTP请求传递参数分类 1.1、按照请求方式分类 GET方法:通过查询字符串(Query String,每个参数由参数名和参数值组成,使用等号 连接,不同参数之间使用 & 符号分隔)的方式或直接将参数放在URL中来传递参数POST…...

Error: Projects must list all files or use an ‘include‘ pattern.

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...

移动应用开发的方式

移动应用开发的方式(三种) Native App: 本地应用程序(原生App) Web App:网页应用程序(移动web) Hybrid App:混合应用程序(混合App) hybrid应用场景 1、微信公众号&…...

C#学习笔记_类(Class)

类的定义 类的定义是以关键字 class 开始,后跟类的名称。类的主体,包含在一对花括号内。 语法格式如下: 访问标识符 class 类名 {//变量定义访问标识符 数据类型 变量名;访问标识符 数据类型 变量名;访问标识符 数据类型 变量名;......//方…...

壹[1],Xamarin开发环境配置

1,环境 VS2022 注: 1,本来计划使用AndroidStudio,但是也是一堆莫名的配置让人搞得很神伤,还是回归C#。 2,MAUI操作类似,但是很多错误解来解去,且调试起来很卡。 3,最…...

SAM:基于 prompt 的通用图像分割模型

Paper: Kirillov A, Mintun E, Ravi N, et al. Segment anything[J]. arXiv preprint arXiv:2304.02643, 2023. Introduction: https://segment-anything.com/ Code: https://github.com/facebookresearch/segment-anything SAM 是 Meta AI 开发的一款基于 prompt 的通用视觉大…...

2024美赛数学建模C题思路+模型+代码+论文

2024美赛A-F题思路代码模型论文:2.2开赛第一时间更新,获取见文末名片 美赛流程以及经验分享 今天主要和大家分享一下我之前参加美赛的经验,主要分两部分来讲。一部分是美赛流程,另一部分是美赛经验。 一 美赛流程 比赛前&#x…...

npm run serve和npm run dev的区别

1. 功能:通常,"npm run serve"用于启动开发服务器,提供实时的开发环境,支持自动重新加载和热模块替换。这样可以在开发过程中实时查看代码更改的效果。而"npm run dev"可以是一个自定义的指令,用于…...

已解决:winform开发中删除某方法导致窗体设计报错

一、报错截图 二、解决方案 第一步,点击上图的转到代码 第二步,注释掉报错的部分(代码前面加//) 第三步,重新编译 最后,恢复正常...

开源软件的影响力

开源软件如何推动技术创新 开源软件通过开放源代码,为全球开发者提供了共同的平台,促进了协作、交流,并推动了软件技术的创新和发展。以下是一些关键方面的分析: 透明度与信任: 开源软件的源代码是公开可见的,这种透明度带来了更高水平的信任。开发者和用户能够审查代码,…...

从零构建MAX30102心率血氧监测系统

1. MAX30102传感器基础认知 第一次接触MAX30102时,我盯着这个5mm3mm的小芯片看了半天——很难想象这么小的器件能同时测量心率和血氧。它本质上是个光电生物传感器,工作原理就像用手电筒照手指:内置的红光(660nm)和红外光(880nm)LED穿过皮肤组…...

【无线通信】基于统计信道的低复杂度旋转和位置优化为6D可移动天线无线通信附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

AI写论文实用宝典,4款AI论文生成工具搞定各类论文写作!

在2025年的学术写作智能化浪潮中,越来越多的人开始依赖AI写论文工具进行创作。尽管这些工具的使用越来越普遍,但在撰写硕士、博士论文等较长篇幅的学术文章时,许多AI论文写作工具往往陷入缺乏理论深度和逻辑性不强的问题。普通的AI写专著或AI…...

冒险岛V128单机版服务端魔改指南:从基础搭建到自定义任务/装备修改

冒险岛V128单机版深度定制指南:从零构建个性化游戏世界 在数字娱乐的黄金时代,怀旧游戏焕发新生已成为一种文化现象。作为横版卷轴网游的经典之作,冒险岛凭借其独特的艺术风格和社交属性,至今仍拥有大量忠实玩家。而单机版的出现&…...

OpenClaw故障排查大全:GLM-4.7-Flash接口超时与网关启动失败

OpenClaw故障排查大全:GLM-4.7-Flash接口超时与网关启动失败 1. 问题背景与典型症状 最近在本地部署OpenClaw对接GLM-4.7-Flash模型时,遇到了两个棘手问题:接口调用频繁超时和网关服务启动失败。作为一个习惯用技术解决实际问题的开发者&am…...

天津专业的阀门厂排名

在天津,阀门行业发展态势良好,众多阀门厂各有特色与优势。中国通用机械工业协会最新发布的《2026年阀门行业高质量发展白皮书》显示,天津的阀门产业在技术创新、产品质量和市场份额等方面都有不错的表现。下面为大家介绍几家天津比较知名的阀…...

Undecimus革新性全流程越狱技术指南:从核心价值到实用工具

Undecimus革新性全流程越狱技术指南:从核心价值到实用工具 【免费下载链接】Undecimus unc0ver jailbreak for iOS 11.0 - 12.4 项目地址: https://gitcode.com/gh_mirrors/un/Undecimus 一、核心价值:破解iOS生态三大痛点 Undecimus作为针对iOS…...

Android开机向导定制实战:从源码分析到禁用状态栏的隐藏技巧

Android开机向导深度定制:从源码解析到状态栏控制实战 第一次接触Android开机向导定制时,我被这个看似简单却隐藏复杂逻辑的系统组件深深吸引。作为设备初始化的第一道门户,开机向导不仅承载着用户体验的第一印象,更是厂商品牌展示…...

抖音视频批量下载器:如何快速高效地收集和管理海量抖音内容

抖音视频批量下载器:如何快速高效地收集和管理海量抖音内容 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 抖音作为国内最大的短视频平台,每天产生数以百万计的视频内容,…...

各向异性方解石晶体的双折射效应

1. 摘要 双折射效应是各向异性材料最重要的光学特性,并广泛应用于多种光学器件。当入射光波撞击各向异性材料,会以不同的偏振态分束到不同路径,即众所周知的寻常光束和异常光束。在本示例中,描述了如何利用VirtualLab Fusion对双折…...