PVInstance
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un A PVInstance ("Instance de vitesse de position") est une classe abstraite qui ne peut pas être créée.C'est la base de tous les objets qui ont une localisation physique dans le monde, spécifiquement BaseParts et Models.
Résumé
Propriétés
Méthodes
Obtient le pivot d'un PVInstance .
Transforme le PVInstance ainsi que tous ses descendants PVInstances de sorte que le pivot est désormais situé au point spécifié CFrame.
Propriétés
Méthodes
GetPivot
Cette fonction obtient le pivot d'un PVInstance . Cela est souvent utilisé avec PVInstance:PivotTo() pour déplacer un modèlisation.
Models et BaseParts sont tous deux PVInstances ("Instances de vitesse de position") et ont donc tous les deux cette fonction.
Retours
Échantillons de code
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
Transforme le PVInstance ainsi que tous ses descendants PVInstances de sorte que le pivot est désormais situé au point spécifié CFrame.C'est la fonction principale qui devrait être utilisée pour déplacer Models via le scripting.
BaseParts sont déplacés de cette manière en ayant leur CFrame transformé par le décentragenécessaire.Models sont déplacés de cette façon en ayant leur Model.WorldPivot transformé par le décentragenécessaire.
Notez que, pour des raisons d'efficacité, les événements Object.Changed ne sont pas déclenchés pour Position et Orientation de BaseParts déplacés de cette façon ; ils ne sont déclenchés que pour CFrame .
Lors de l'appel de PivotTo sur Models, les décalages des parties et des modèles descendants sont stockés, de sorte que les appels suivants à PivotTo sur le même modèle ne cumulent pas la dérive de point flottant entre les parties qui composent le modèlisation.
Models et BaseParts sont tous deux PVInstances ("Instances de vitesse de position") et ont donc tous les deux cette fonction.
Paramètres
Le CFrame que le PVInstance pivot devrait être égal après le déplacement.
Retours
Échantillons de code
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)