跳至正文
版本:最新版 - a1.169.2 ⚖️

维度

关于维度你需要了解的一切

维度是什么​

维度是客户端中分开的世界,玩家和 Actor 在其中是分开的。在 nanos world 中,它们用数字表示。最多可以有 65,535 个不同的维度。

默认情况下,所有玩家和实体都在维度 1 中。将玩家移到另一个维度后,所有不属于该维度的实体对该玩家来说都会被销毁,而新维度中的所有实体都会为他生成。

如何使用​

要将 Actor 或 Player 发送到另一个维度,API 非常简单(仅在服务器端):

Server/Index.lua
my_actor:SetDimension(2)
my_player:SetDimension(2)

要向某个维度中的所有 Player 发送远程事件,请使用:

Server/Index.lua
-- 向维度 2 中的所有 Player 发送 "MatchStarted"
Events.BroadcastRemoteDimension("MatchStarted", 2, Reliability.Reliable, "some data")

若要向位置附近的维度中的 Player 发送远程事件,请使用 Events.BroadcastRemoteInRadiusDimension()。

你还可以使用 Server.SetDefaultPlayerDimension() 和 Server.SetDefaultEntityDimension() 更改新 Player 和新实体开始时所在的维度。

每当 Actor 或 Player 更改其维度时,都会在其身上触发 DimensionChange 事件。

备注

如果通过远程事件发送与玩家不在同一维度的实体,则参数将被替换为 nil,并显示警告。

Actor 层级​

通过发送一个实体,它的“子实体”也会被移动到那个维度,例如:

  • 发送一个 Actor 时,所有其他附加的 Actor 也会随之移动。
  • 发送玩家时,角色也会移动。
  • 发送角色时,玩家不会一起移动,但拾取的武器或道具(以及附加的 Actor)会一起移动。
  • 发送载具时,所有角色都会离开载具(此功能很快™会得到改进)。