概要
方法
取得 PVInstance 的中心點。
以下是 PVInstance 和所有其子 PVInstances 的描述,以便 pivot 現在位於指定的 CFrame 。
屬性
方法
GetPivot
此函數取得 Class.PVInstance 的扶手。這常常與 Class.PVInstance:PivotTo() 用於移動模型。
Models 和 BaseParts 都是 PVInstances ("位置速度 Instances") ,因此兩者都有此功能。
返回
範例程式碼
Simple Character Teleportation
-- This code should be placed in a LocalScript under StarterPlayerScripts
local Players = game:GetService("Players")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
local function doTeleport(_actionName, inputState, _inputObject)
local character = player.Character
if character and character.Parent and inputState == Enum.UserInputState.Begin then
-- Move the character 10 studs forwards in the direction they're facing
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)
PivotTo
void
以下是 PVInstance 和所有兒輩 PVInstances 的描述,以便 pivot 現在位於指定的 CFrame 。這是移動 2>Class.Model|Models2> 的主要功能,應該用於通過指令碼移動。
BaseParts 被移動到這邊,因為它們的 CFrame 被必要的 Offset 變形。Models 被移動到這邊,因為它們的 0> Class.Model.WorldPivot0> 被必要的 Offset 變偏移值。
注意,為了效率目的, Object.Changed 事件不會在 Position 和 Orientation 的基礎上移動;它們只會在 2>Datatype.CFrame2> 中發生;它們只會在 5>Class.BasePart|BaseParts5> 移動到此
當在 PivotTo 上呼叫 Models 時,子孫零件和模型的 Offset 已被存取,以便在同一模型上的後續呼叫 PivotTo 時不會累積漂浮點漂移之間的點數漂移。
Models 和 BaseParts 都是 PVInstances ("位置速度 Instances") ,因此兩者都有此功能。
參數
Class.PVInstance 的 PVInstance 應該在移動它後平移。
返回
void
範例程式碼
Simple Character Teleportation
-- This code should be placed in a LocalScript under StarterPlayerScripts
local Players = game:GetService("Players")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
local function doTeleport(_actionName, inputState, _inputObject)
local character = player.Character
if character and character.Parent and inputState == Enum.UserInputState.Begin then
-- Move the character 10 studs forwards in the direction they're facing
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)