网站开发外包公司合同邦策网站建设平台

张小明 2026/1/10 0:37:58
网站开发外包公司合同,邦策网站建设平台,国外网站做调查,网站开发项目的规划与设计文档ActionPlayers ActionPlayers是Boss Room项目中负责管理和执行动作(Action)的核心组件,分为客户端和服务器端两个版本,分别处理动作的视觉表现和逻辑执行。 1. 系统架构 1.1 核心组件 组件 职责 位置 ClientActionPlayer 客户端动作可视化与生命周期管理 Assets/Scripts/G…ActionPlayersActionPlayers是Boss Room项目中负责管理和执行动作(Action)的核心组件,分为客户端和服务器端两个版本,分别处理动作的视觉表现和逻辑执行。1. 系统架构1.1 核心组件组件职责位置ClientActionPlayer客户端动作可视化与生命周期管理Assets/Scripts/Gameplay/Action/ActionPlayers/ClientActionPlayer.csServerActionPlayer服务器端动作逻辑执行与队列管理Assets/Scripts/Gameplay/Action/ActionPlayers/ServerActionPlayer.cs1.2 关键依赖ActionFactory:负责Action对象的创建和回收,实现对象池机制Action:所有具体动作的基类,定义了动作的基本接口和行为ClientCharacter/ServerCharacter:动作的执行主体,提供角色状态和能力2. ClientActionPlayer2.1 核心功能2.1.1 动作生命周期管理OnUpdate():每帧更新所有正在播放的动作,处理动作的结束、超时和取消PlayAction():播放服务器确认的动作,处理与预期动作的衔接CancelAllActions():取消所有正在播放的动作2.1.2 动作预期机制AnticipateAction():在客户端预期执行动作,减少网络延迟的感知预期超时保护:预期动作如果超过1秒未得到服务器确认,将被取消动作衔接:当服务器确认的动作到达时,与预期动作无缝衔接publicvoidAnticipateAction(refActionRequestDatadata){if(!ClientCharacter.IsAnimating()Action.ShouldClientAnticipate(ClientCharacter,refdata)){varactionFX=ActionFactory.CreateActionFromData(refdata);actionFX.AnticipateActionClient(ClientCharacter);m_PlayingActions.Add(actionFX);}}2.2 工作流程客户端检测到输入,立即调用AnticipateAction()创建预期动作同时将动作请求发送到服务器每帧更新预期动作,直到超时或收到服务器确认收到服务器确认后,调用PlayAction()处理实际动作如果预期动作与实际动作匹配,直接转换;否则创建新动作3. ServerActionPlayer3.1 核心功能3.1.1 动作队列管理PlayAction():将新动作添加到队列或中断现有动作队列深度控制:限制队列最大执行时间,防止动作堆积动作优先级:支持高优先级动作中断低优先级动作3.1.2 自动辅助动作合成SynthesizeChaseIfNecessary():自动生成追逐动作,确保角色移动到攻击范围内SynthesizeTargetIfNecessary():自动生成目标选择动作,更新角色的当前目标privateintSynthesizeChaseIfNecessary(intbaseIndex){ActionbaseAction=m_Queue[baseIndex];if(baseAction.Data.ShouldClosebaseAction.Data.TargetIds!=null){ActionRequestDatadata=newActionRequestData{ActionID=GameDataSource.Instance.GeneralChaseActionPrototype.ActionID,TargetIds=baseAction.Data.TargetIds,Amount=baseAction.Config.Range};baseAction.Data.ShouldClose=false;ActionchaseAction=ActionFactory.CreateActionFromData(refdata);m_Queue.Insert(baseIndex,chaseAction);returnbaseIndex+1;}returnbaseIndex;}3.1.3 动作执行与状态管理StartAction():开始执行队列中的第一个动作OnUpdate():更新所有动作的状态,处理动作的转换和结束UpdateAction():检查动作是否应该继续执行或结束AdvanceQueue():推进动作队列,处理动作的结束和下一动作的开始3.1.4 冷却时间与重用逻辑IsReuseTimeElapsed():检查动作是否已经过冷却时间m_LastUsedTimestamps:记录每个动作的最后使用时间3.2 工作流程服务器接收客户端的动作请求检查动作是否可以执行(冷却时间、资源等)将动作添加到队列或中断现有动作自动合成必要的辅助动作(如追逐、目标选择)开始执行队列中的第一个动作每帧更新动作状态,处理动作的结束和转换当动作完成或超时,推进队列执行下一个动作4. 关键设计模式与优化4.1 对象池模式ActionFactory:使用对象池管理Action对象的创建和回收性能优化:减少频繁创建和销毁对象带来的性能开销4.2 状态机模式Action状态管理:每个Action都有自己的状态转换逻辑动作队列:ServerActionPlayer使用队列实现动作的顺序执行和状态转换4.3 网络延迟优化客户端预期:在客户端提前执行动作,减少网络延迟的感知无缝衔接:预期动作与服务器确认动作的无缝转换超时保护:防止预期动作无限期存在5. 协同工作流程客户端输入 → ClientInputSender.RequestAction() → ClientActionPlayer.AnticipateAction() → 发送动作请求到服务器 → ServerActionPlayer.PlayAction() → 动作执行 → 服务器广播动作结果 → ClientActionPlayer.PlayAction() → 替换预期动作6. 代码优化建议6.1 ClientActionPlayer优化预期动作管理增强// 优化前booltimedOut=action.AnticipatedClientaction.TimeRunning=k_AnticipationTimeoutSeconds;// 优化后booltimedOut=action.AnticipatedClientaction.TimeRunning=k_AnticipationTimeoutSeconds;if(timedOut){// 记录预期超时,用于网络质量分析Debug.LogWarning($"Action{action.ActionID}anticipation timed out");}动作优先级支持// 新增方法:按优先级播放动作publicvoidPlayActionWithPriority(refActionRequestDatadata,intpriority){// 根据优先级决定是否中断现有动作// ...}6.2 ServerActionPlayer优化队列深度动态调整// 优化前privateconstfloatk_MaxQueueTimeDepth=1.6f;// 优化后privatefloatm_MaxQueueTimeDepth=1.6f;// 根据网络延迟动态调整队列深度publicvoidAdjustQueueDepthBasedOnLatency(floatlatency){m_MaxQueueTimeDepth=Mathf.Clamp(1.0f+latency*0.5f,1.0f,3.0f);}动作执行统计// 新增字段:动作执行统计privateDictionaryActionID,intm_ActionExecutionCount=newDictionaryActionID,int();// 在StartAction()中记录m_ActionExecutionCount.TryGetValue(m_Queue[0].ActionID,outintcount);m_ActionExecutionCount[m_Queue[0].ActionID]=count+1;7. 总结ActionPlayers系统是Boss Room项目中动作管理的核心组件,通过客户端预期和服务器权威执行的结合,实现了低延迟的动作响应和一致的游戏状态。ClientActionPlayer专注于提供流畅的视觉反馈,而ServerActionPlayer负责确保游戏逻辑的正确性和一致性。该系统的关键设计亮点包括:客户端预期机制减少网络延迟感知自动辅助动作合成简化玩家操作对象池模式提高性能灵活的动作队列管理支持复杂的游戏机制通过这些设计,ActionPlayers系统为Boss Room项目提供了一个强大、灵活且高效的动作执行框架。ClientActionPlayer.cs1. 类概述ClientActionPlayer是Boss Room项目中负责客户端动作可视化与生命周期管理的核心组件,与ServerActionPlayer对应,专注于提供流畅的视觉反馈和减少网络延迟感知。publicsealedclassClientActionPlayer{privateListActionm_PlayingActions=newListAction();privateconstfloatk_AnticipationTimeoutSeconds=1;publicClientCharacterClientCharacter{get;privateset;}// ...}2. 核心功能与设计2.1 动作生命周期管理OnUpdate()- 核心更新方法,每帧处理所有正在播放的动作:publicvoidOnUpdate(){// 逆向遍历以便安全地在循环中移除元素for(inti=m_PlayingActions.Count-1;i=0;--i)
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

门户网站静态页面循环视频做网站背景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个最小化的bitmap分析原型,能在1小时内完成。要求:1) 读取虚拟磁盘镜像 2) 解析bitmap区域 3) 识别明显错误标记 4) 输出简单报告。使用Python实现&am…

张小明 2026/1/10 0:37:57 网站建设

发布工程信息的网站有哪些免费空间凡科

Wan2.2-T2V-5B在广告创意测试中的敏捷应用价值 你有没有经历过这样的场景?市场团队开了三天会,终于敲定了一条“夏日畅饮”的广告概念,结果等拍摄、剪辑、调色做完,发现用户根本不买账——点击率惨淡,完播率垫底。更扎…

张小明 2026/1/10 0:35:55 网站建设

网站优化策略分析wordpress分类目录标签转换器

在大数据与微服务架构中,Kafka 作为消息中间件的“扛把子”,其高可用性直接决定了整个数据链路的稳定性。而支撑 Kafka 高可用的两大核心支柱,正是分区策略与副本机制。很多开发者在使用 Kafka 时,常因对这两大机制理解不深&#…

张小明 2026/1/10 0:33:52 网站建设

中国城投建设集团有限公司网站线上销售有哪些渠道

第一章:Open-AutoGLM在非Root环境下的核心价值 在现代企业IT基础设施中,系统权限管理日趋严格,多数生产环境禁止普通用户获取Root权限。在此背景下,Open-AutoGLM凭借其无侵入式架构设计,展现出卓越的适应性与实用性。该…

张小明 2026/1/10 0:31:49 网站建设

网站建设质量保证wordpress制作公司

基于YALMIP 的微网优化调度模型基于YALMIP 的微网优化调度模型 %在当今能源转型的大背景下,微网的优化调度变得愈发重要。而YALMIP作为一个强大的建模工具,为我们构建微网优化调度模型提供了便捷。 一、YALMIP简介 YALMIP是一个用于在MATLAB环境下进行优…

张小明 2026/1/10 0:29:46 网站建设

沧州网站营销推广拖拽式建站

实验室装修:如何选择靠谱的公司?前言实验室装修不仅是一项技术活,更是一项系统工程。选择一个靠谱的装修公司,直接关系到实验室的使用效率和安全性。那么,在众多的装修公司中,哪家公司最靠谱呢?…

张小明 2026/1/10 0:27:41 网站建设