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
Cet exemple de code est un simple script de téléportation qui déplace votre personnage de 10 studs vers l'avant dans la direction que vous affrontez actuellement lorsque vous appuyez sur la touche F.Il le fait en obtenant le pivot actuel avec PVInstance:GetPivot() et en appelant PVInstance|PivotTo pour déplacer le caractère vers l'avant.
-- Ce code doit être placé dans un LocalScript sous 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
-- Déplacez le caractère de 10 studs vers l'avant dans la direction qu'il affronte
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
Cet exemple de code est un simple script de téléportation qui déplace votre personnage de 10 studs vers l'avant dans la direction que vous affrontez actuellement lorsque vous appuyez sur la touche F.Il le fait en obtenant le pivot actuel avec PVInstance:GetPivot() et en appelant PVInstance|PivotTo pour déplacer le caractère vers l'avant.
-- Ce code doit être placé dans un LocalScript sous 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
-- Déplacez le caractère de 10 studs vers l'avant dans la direction qu'il affronte
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)