PVInstance

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Nicht durchsuchbar

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

Eigenschaften

Origin

Nicht repliziert
Nicht skriptfähig
Parallel lesen

Pivot Offset

Nicht repliziert
Nicht skriptfähig
Parallel lesen

Methoden

GetPivot

Parallel schreiben

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

Dieses Codebeispiel ist ein einfaches Teleportationsskript, das deinen Charakter 10 Stollen in die Richtung bewegt, in die du gerade zeigst, wenn du die F Taste drückst.Es tut dies, indem es den aktuellen Pivot mit PVInstance:GetPivot() erhält und PVInstance|PivotTo ruft, um den Charakter nach vorne zu bewegen.

Einfache Charakterteleportation

-- Dieser Code sollte in einem LocalScript unter StarterPlayerScripts platziert werden
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
-- Bewegen Sie den Charakter 10 Stollen in die Richtung, in die er sich dreht
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

targetCFrame: CFrame

Die CFrame, die der PVInstance Pivot nach dem Verschieben gleich sein sollte.

Standardwert: ""

Rückgaben

()

Code-Beispiele

Dieses Codebeispiel ist ein einfaches Teleportationsskript, das deinen Charakter 10 Stollen in die Richtung bewegt, in die du gerade zeigst, wenn du die F Taste drückst.Es tut dies, indem es den aktuellen Pivot mit PVInstance:GetPivot() erhält und PVInstance|PivotTo ruft, um den Charakter nach vorne zu bewegen.

Einfache Charakterteleportation

-- Dieser Code sollte in einem LocalScript unter StarterPlayerScripts platziert werden
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
-- Bewegen Sie den Charakter 10 Stollen in die Richtung, in die er sich dreht
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)

Ereignisse