PVInstance

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
不可浏览

Class.PVInstance (“位置速度实例”)是一个抽象类,无法创建。它是世界上具有物理位置的所有对象的基础。 它是 BasePartsModels 的基础。

概要

属性

方法

属性

Origin

未复制
不可写入脚本
读取并联

Pivot Offset

未复制
不可写入脚本
读取并联

方法

GetPivot

写入并联

此函数获取 Class.PVInstance 的枢轴。这通常用于使用 Class.PVInstance:PivotTo() 来移动模型。

ModelsBaseParts 都是 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事件不会在PositionOrientation的基础上触发,它们只会在2>Class.BasePart|BaseParts2>移动到这种方式时触发。它们只会在5>Datatype.CFrame5>。

当调用 PivotToModels 时,子后端零件和模型的 Offset 已被缓存,以便在同一模型上的后续调用 PivotTo 不会累加漂浮点漂移之间的累计漂浮点漂移。

ModelsBaseParts 都是 PVInstances ("位置速度实例") ,因此它们都有此功能。

参数

targetCFrame: CFrame

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)

活动