概要
方法
获得 PVInstance 的枢轴。
形成 PVInstance 与所有的后代 PVInstances ,使 pivot 现在位于指定的 CFrame 。
属性
方法
GetPivot
此函数获取 Class.PVInstance 的枢轴。这通常用于使用 Class.PVInstance:PivotTo() 来移动模型。
Models 和 BaseParts 都是 PVInstances ("位置速度实例") ,因此它们都有此功能。
返回
代码示例
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 一起变形的,使得 pivot 现在位于指定的 PVInstances 上。 此是使用脚本移动 CFrame 的主要功能。
BaseParts 被移动为此,因为它们的 CFrame 被必要的 Offset 变形。Models 被移动为此,因为它们的 0> Class.Model.WorldPivot0> 被必要的 Offset 变偏移值。
注意,为了效率目的,Object.Changed事件不会在Position和Orientation的基础上触发,它们只会在2>Class.BasePart|BaseParts2>移动到这种方式时触发。它们只会在5>Datatype.CFrame5>。
当调用 PivotTo 在 Models 时,子后端零件和模型的 Offset 已被缓存,以便在同一模型上的后续调用 PivotTo 不会累加漂浮点漂移之间的累计漂浮点漂移。
Models 和 BaseParts 都是 PVInstances ("位置速度实例") ,因此它们都有此功能。
参数
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)