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

为什么要GetWorld()?

在 Unreal 里会频繁看到 GetWorld(),原因是很多引擎功能都不是“全局静态”的,而是属于某个 World(关卡 / 游戏实例)上下文,必须拿到对应的 UWorld* 才能访问这些功能。

为什么要 GetWorld()?(本质)

UWorld 是引擎里表示一个世界/关卡实例的核心对象。它包含并管理:

  • 当前关卡里的 Actor 列表(Spawn/Destroy Actor)

  • Tick / Timer 系统(GetTimerManager()

  • 网络角色(GameMode/GameState/PlayerState)

  • 玩家控制器(PlayerController)、本地玩家(LocalPlayer)

  • 场景中的物理、导航、子系统等

很多 API 都需要知道“对哪个世界/关卡执行操作”,所以函数签名里会需要 UWorld* 或需要通过 GetWorld() 来推断出上下文。

GetWorld() 的常见用途举例

  • 生成/销毁 Actor

    GetWorld()->SpawnActor<AActor>(MyBPClass, Location, Rotation);
  • 设置定时器

    GetWorld()->GetTimerManager().SetTimer(MyTimerHandle, this, &ThisClass::MyFunc, 1.0f, true);
  • 获取 PlayerController / Pawn / HUD

    APlayerController* PC = GetWorld()->GetFirstPlayerController();
  • 开始 ServerTravel / Open Level(在 Server 上)

    GetWorld()->ServerTravel("/Game/Maps/MyMap?listen");
  • 访问 GameMode / GameState / GameInstance

    AGameModeBase* GM = GetWorld()->GetAuthGameMode(); UGameInstance* GI = GetWorld()->GetGameInstance();
http://www.dtcms.com/a/569318.html

相关文章:

  • HBase安装配置
  • 【开题答辩实录分享】以《基于Java的校园心理咨询服务系统的设计与实现》为例进行答辩实录分享
  • 佛山网站建设的品牌2345网址导航下载安装到桌面
  • 场外衍生品系统开发实战:TRS收益互换与场外个股期权架构解析
  • 网站需求分析模板浅谈电子商务网站建设与规划
  • Spring Boot整合MQTT
  • 《Nginx进阶实战:反向代理、负载均衡、缓存优化与Keepalived高可用》
  • 第6章 结构体与方法
  • 为什么 transformers 要 import TensorFlow
  • 网站建设要学哪些软件偃师网络营销的概念
  • 【AI学习-comfyUI学习-翻译文本工作流-各个部分学习-第二步】
  • 短期与长期利益平衡
  • 简单网站建设 有教程网络服务费绩效目标申报表
  • 网站建设技术知乎中文域名的网站有哪些
  • 二十一、STM32的ADC(一)(ADC介绍)
  • AWS helmchart包适CCE
  • 【LeetCode】98. 验证二叉搜索树
  • 摄影师网站html52017 wordpress宽屏主题
  • 【软件安全】什么是XSS(Cross-Site Scripting,跨站脚本)?
  • 2025年Java面试指南(持续更新)
  • leetcode 190. 颠倒二进制位 python
  • 网站用什么域名东莞网络营销策划
  • springboot 工具类 日期时间列表工具类详解:高效处理日期范围的利器
  • MYSQL第四次作业
  • 某游戏大厂分布式系统经典实战面试题解析
  • 某游戏大厂计算机网络面试问题深度解析(一)
  • C#基础:如何从现有类库复制一个新的类库,并且加入解决方案
  • C# 中 Entity Framework (EF) 和 EF Core 里的 `AsNoTracking` 方法
  • 基于视觉分析的加油站通话行为安全预警系统 构建加油安全新防线 通话行为模式识别 边缘计算通话动作监测设备
  • Traefik vs Spring Cloud:微服务架构的两种截然不同的技术路线