Teleport

坐标传送、标记点传送、地图传送。

include/XBase/Teleport.h · XBase::Teleport

传送动作在 XBase 后端内完成对象校验、场景流式加载与水上/水下处理;宿主只提交坐标和模式。支持情况由 FeatureCapability::TeleportBasic 控制,宿主不应直接调用 Teleport::Process()

bool TryGetCurrentPosition(Vec3& position);
Vec3 GetCurrentPosition();
bool To(float x, float y, float z, int interior = 0);
bool Forward(float distance);
bool MapPosition(float x, float y, bool spawnUnderwater = false);
bool Marker(bool spawnUnderwater = false);
bool Center();
void Process();
  • TryGetCurrentPosition — 读取当前位置;玩家不可用时返回 falseposition 保持不变。
  • GetCurrentPosition — 便捷读取,失败时返回安全默认值。
  • To — 传送到指定坐标;玩家在载具内时会保留载具并重新落位。
  • Forward — 朝面前方向移动指定距离。
  • MapPosition — 按地图坐标传送(x,y 自动计算地面 z),可选水面落点。
  • Marker — 传送到雷达标记点;没有标记时返回 false,仅 SA 实现。
  • Center — 传送到世界原点。

Teleport::Process() 没有宿主可见的持续策略;领域启用后仍由 Core::Process() 统一调度,宿主不要直接调用。