news 2026/6/23 19:11:54

UnrealEngine中角色类型判断方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UnrealEngine中角色类型判断方法

角色类型判断方法

在Unreal Engine的网络架构中:

  1. 专用服务器(Dedicated Server):所有角色都有控制器(AI控制器或玩家控制器)
  2. 监听服务器(Listen Server):服务器同时也是一个客户端
  3. 客户端(Client):只有本地控制的角色有玩家控制器

正确的判断逻辑

voidUTargetDataUnderMouse::DetermineCharacterType(){if(AActor*AvatarActor=GetAvatarActor()){ENetRole LocalRole=AvatarActor->GetLocalRole();boolbHasAuthority=AvatarActor->HasAuthority();boolbIsLocallyControlled=false;if(APawn*Pawn=Cast<APawn>(AvatarActor)){bIsLocallyControlled=Pawn->IsLocallyControlled();}// 正确的判断逻辑:if(bHasAuthority){// 服务器端角色(专用服务器或监听服务器)if(bIsLocallyControlled){// 监听服务器:服务器同时是本地客户端UE_LOG(LogTemp,Warning,TEXT("监听服务器 - 本地控制角色"));}else{// 专用服务器:服务器端AI控制或远程玩家角色UE_LOG(LogTemp,Warning,TEXT("专用服务器 - 服务器端角色"));}}else{// 客户端if(bIsLocallyControlled){// 客户端本地控制的角色UE_LOG(LogTemp,Warning,TEXT("客户端 - 本地控制角色"));}else{// 客户端远程玩家控制的角色UE_LOG(LogTemp,Warning,TEXT("客户端 - 远程控制角色"));}}}}

更精确的专用服务器判断

voidUTargetDataUnderMouse::CheckForDedicatedServer(){if(AActor*AvatarActor=GetAvatarActor()){// 判断是否是专用服务器环境boolbIsDedicatedServer=IsRunningDedicatedServer();// 或者通过World判断UWorld*World=GetWorld();if(World){ENetMode NetMode=World->GetNetMode();bIsDedicatedServer=(NetMode==NM_DedicatedServer);}if(bIsDedicatedServer){// 专用服务器环境if(AvatarActor->HasAuthority()){UE_LOG(LogTemp,Warning,TEXT("专用服务器 - 权威角色"));}}}}

在TargetDataUnderMouse中的实际应用

在你的代码中,可以在以下关键位置进行判断:

voidUTargetDataUnderMouse::SendMouseCursorData(){// 只在本地控制的客户端发送鼠标数据if(AActor*AvatarActor=GetAvatarActor()){if(APawn*Pawn=Cast<APawn>(AvatarActor)){if(!Pawn->IsLocallyControlled()){// 不是本地控制的角色,不发送鼠标数据return;}}// 继续发送鼠标数据的逻辑...}}

关键概念澄清

  • 专用服务器(Dedicated Server)NetMode == NM_DedicatedServer
  • 监听服务器(Listen Server)NetMode == NM_ListenServer
  • 权威控制(Authority)HasAuthority() == true
  • 本地控制(Locally Controlled)IsLocallyControlled() == true

总结

正确的判断流程应该是:

  1. 先判断网络模式(专用服务器/监听服务器/客户端)
  2. 再判断权威性(HasAuthority()
  3. 最后判断本地控制(IsLocallyControlled()

这样就能准确区分各种情况下的角色类型了。感谢你的指正!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 19:54:59

vue导出excel文件

Vue.js 本身不提供直接导出 Excel 的功能&#xff0c;但可以通过以下几种方式实现&#xff1a; 1. 前端导出方案 使用 xlsx 库&#xff08;推荐&#xff09; npm install xlsx # 或 yarn add xlsx <template><button click"exportExcel">导出Excel&l…

作者头像 李华
网站建设 2026/6/23 16:10:14

基于STM32的自动售货机控制系统设计

第一章&#xff1a;系统核心硬件架构与选型 基于STM32的自动售货机控制系统以“高效交易、稳定出货”为核心&#xff0c;采用STM32F103ZET6作为主控芯片&#xff0c;其32位Cortex-M3内核与512KB Flash可满足多通道控制与支付交互需求。核心模块包括&#xff1a; 货道控制&#…

作者头像 李华
网站建设 2026/6/23 19:52:33

液压挖掘机回转能量回收系统设计与仿真

一、系统整体方案设计 液压挖掘机回转能量回收系统以“能量回收-存储-再利用”为核心逻辑&#xff0c;适配挖掘机回转制动阶段的能量特性&#xff0c;整体采用“液压蓄能电控调节”的混合架构。系统在原有回转液压回路基础上&#xff0c;新增能量回收支路与释放支路&#xff1a…

作者头像 李华
网站建设 2026/6/23 19:51:02

android 媒体之 MediaSession

一、框架1. MediaSession (媒体会话) • 角色&#xff1a; 核心枢纽和状态机。它是整个媒体播放控制的核心。 • 作用&#xff1a; 封装播放状态&#xff1a; 持有当前播放状态&#xff08;如播放/暂停、当前播放位置、播放速度、播放队列、当前媒体项元数据等&#xff09;…

作者头像 李华
网站建设 2026/6/23 18:45:18

校园网络规划

一、需求分析与总体目标 校园网络规划需综合考虑教学、科研、管理和生活等多场景需求&#xff0c;构建高速、稳定、安全、可扩展的网络基础设施。 主要需求&#xff1a; 带宽需求&#xff1a;支持高清视频教学、在线实验、大规模文件传输覆盖范围&#xff1a;教学楼、实验室、图…

作者头像 李华
网站建设 2026/6/22 21:54:30

护眼灯已足够优秀,为何仍需眼调节训练灯?答案藏在近视防控里

如今的优质护眼灯&#xff0c;早已是家庭学习场景中的“性能王者”——照度远超国标要求&#xff0c;确保读写区域光线均匀充足&#xff0c;无明显明暗死角&#xff1b;达到RG0蓝光豁免级标准&#xff0c;从根源上杜绝蓝光对眼睛带来的潜在伤害&#xff1b;搭配高显色指数与无感…

作者头像 李华