PVInstance
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Eine PVInstance ("Positiongeschwindigkeitsinstanz") ist eine abstrakte Klasse, die nicht erstellt werden kann.Es ist die Basis für alle Objekte, die eine physische Position in der Welt haben, insbesondere BaseParts und Models.
Zusammenfassung
Eigenschaften
Methoden
Holt den Pivot eines PVInstance .
Verwandelt die PVInstance zusammen mit all ihren Nachkommen PVInstances, so dass der Pivot jetzt an der angegebenen CFrame position ist.
Eigenschaften
Methoden
GetPivot
Diese Funktion erhält den Pivot eines PVInstance . Dies wird oft mit PVInstance:PivotTo() verwendet, um ein Modell zu verschieben.
Models und BaseParts sind beide PVInstances ("Positiongeschwindigkeitsinstanzen") und haben daher beide diese Funktion.
Rückgaben
Code-Beispiele
This code sample is a simple teleport script that moves your character 10 studs forwards in the direction you're currently facing when you press the F key. It does so by getting the current pivot with PVInstance:GetPivot() and calling PVInstance|PivotTo to move the character forwards.
-- 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
Verwandelt die PVInstance zusammen mit all ihren Nachkommen PVInstances, so dass der Pivot jetzt an der angegebenen CFrame position ist.Das ist die Hauptfunktion, die verwendet werden sollte, um Models über Scriptingzu verschieben.
BaseParts werden auf diese weise verschoben, indem ihre CFrame transformiert werden, durch die erforderliche versatz.Models werden auf diese weise verschoben, indem ihre Model.WorldPivot transformiert werden, durch die erforderliche versatz.
Beachten Sie, dass aus Effizienzgründen keine Object.Changed-Ereignisse für Position und Orientation von BaseParts in dieser Weise abgefeuert werden; sie werden nur für CFrame abgefeuert.
Wenn du PivotTo auf Models aufrufst, werden die Versätze der abstehenden Teile und Modelle zwischengespeichert, so dass nachfolgende Aufrufe von PivotTo auf demselben Modell keinen Treibersprung zwischen den Teilen verursachen, aus denen sich das Modell zusammensetzt.
Models und BaseParts sind beide PVInstances ("Positiongeschwindigkeitsinstanzen") und haben daher beide diese Funktion.
Parameter
Die CFrame, die der PVInstance Pivot nach dem Verschieben gleich sein sollte.
Rückgaben
Code-Beispiele
This code sample is a simple teleport script that moves your character 10 studs forwards in the direction you're currently facing when you press the F key. It does so by getting the current pivot with PVInstance:GetPivot() and calling PVInstance|PivotTo to move the character forwards.
-- 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)