PVInstance
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Um PVInstance ("Instância de Velocidade de Posição") é uma classe abstrata que não pode ser criada.É a base para todos os objetos que têm uma localização física no mundo, especificamente BaseParts e Models.
Resumo
Propriedades
Métodos
Obtém o pivô de um PVInstance .
Transforma o PVInstance ao longo de todos os seus descendentes PVInstances de modo que o pivô agora está localizado no CFrame especificado.
Propriedades
Métodos
GetPivot
Essa função obtém o pivô de um PVInstance . Isso é frequentemente usado com PVInstance:PivotTo() para mover um modelo.
Models e BaseParts são ambos PVInstances ("Instâncias de Velocidade de Posição") e, portanto, ambos têm essa função.
Devolução
Amostras de código
Este exemplo de código é um simples script de teletransporte que move seu personagem 10 studs para frente na direção que você está atualmente enfrentando quando pressiona a tecla F.Ele faz isso obtendo o pivô atual com PVInstance:GetPivot() e chamando PVInstance|PivotTo para mover o personagem para a frente.
-- Este código deve ser colocado em um LocalScript sob 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
-- Mova o personagem 10 metros para a frente na direção que ele está enfrentando
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)
PivotTo
Transforma o PVInstance ao longo de todos os seus descendentes PVInstances de modo que o pivô agora está localizado no CFrame especificado.Esta é a função principal que deve ser usada para mover Models via scripting.
BaseParts são movidos dessa maneira ao terem seu CFrame transformado pelo deslocamento necessário.Models são movidos dessa maneira ao terem seu Model.WorldPivot transformados pelo deslocamento necessário.
Observe que, para fins de eficiência, eventos Object.Changed não são disparados para Position e Orientation de BaseParts movidos dessa maneira; eles são disparados apenas para CFrame .
Ao chamar PivotTo em Models , os deslocamentos das peças descendentes e modelos são armazenados, de modo que chamadas subsequentes a PivotTo no mesmo modelo não acumulam débito de ponto flutuante entre as peças que compõem o modelo.
Models e BaseParts são ambos PVInstances ("Instâncias de Velocidade de Posição") e, portanto, ambos têm essa função.
Parâmetros
O CFrame que o PVInstance pivô deve ser igual depois de movê-lo.
Devolução
Amostras de código
Este exemplo de código é um simples script de teletransporte que move seu personagem 10 studs para frente na direção que você está atualmente enfrentando quando pressiona a tecla F.Ele faz isso obtendo o pivô atual com PVInstance:GetPivot() e chamando PVInstance|PivotTo para mover o personagem para a frente.
-- Este código deve ser colocado em um LocalScript sob 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
-- Mova o personagem 10 metros para a frente na direção que ele está enfrentando
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)