PVInstance

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Brak możliwości przeglądania

A PVInstance ("Instancja prędkości pozycji") to abstrakcyjna klasa, która nie może zostać utworzona.Jest to podstawa dla wszystkich obiektów, które mają fizyczną lokalizację na świecie, w szczególności BaseParts i Models.

Podsumowanie

Właściwości

  • Bez replikacji
    Brak możliwości dodawania do skryptu
    Odczyt równoległy
  • Bez replikacji
    Brak możliwości dodawania do skryptu
    Odczyt równoległy

Metody

Właściwości

Origin

Bez replikacji
Brak możliwości dodawania do skryptu
Odczyt równoległy

Pivot Offset

Bez replikacji
Brak możliwości dodawania do skryptu
Odczyt równoległy

Metody

GetPivot

Zapis równoległy

Funkcja ta otrzymuje pivot PVInstance . Często jest używana z PVInstance:PivotTo() , aby przesunąć model.

Models i BaseParts są oba PVInstances ("Instancje prędkości pozycji") i oba mają tę funkcję.


Zwroty

Przykłady kodu

Ten przykład kodu to prosty skrypt teleportacji, który przesuwa twoją postać o 10 ćwieków w kierunku, w którym się obecnie znajdujesz, gdy naciśniesz klawisz F.Robi to, uzyskując obecny pivot za pomocą PVInstance:GetPivot() i wezwując PVInstance|PivotTo , aby przesunąć znak w przód.

Prosta teleportacja postaci

-- Ten kod powinien być umieszczony w lokalnym skrypcie pod 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
-- Przesuń postać o 10 szpilkami w kierunku, w którym się znajduje
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)

PivotTo

()

Przekształca PVInstance wraz z całym jego potomkiem PVInstances tak, że osie zostaną teraz umieszczone w określonym CFrame .To jest główna funkcja, którą należy używać do przesuwania Models za pomocą skryptowania.

BaseParts są przenoszone w ten sposób, mając ich CFrame przekształcone przez niezbędny offset.Models są przenoszone w ten sposób, mając ich Model.WorldPivot przekształcone przez niezbędny offset.

Zauważ, że ze względów wydajności, wydarzenia Object.Changed nie są uruchamiane dla Position i Orientation z BaseParts przeniesionymi w ten sposób; są uruchamiane tylko dla CFrame .

Podczas wezwania PivotTo na Models są przechowywane przesunięcia części i modeli potomnych, tak że kolejne wezwania do PivotTo na tym samym modelu nie gromadzą driftingu punktów zwrotnych między częściami składającymi się na model.

Models i BaseParts są oba PVInstances ("Instancje prędkości pozycji") i oba mają tę funkcję.

Parametry

targetCFrame: CFrame

The CFrame że pivot PVInstance powinien być równy po jego przesunięciu.

Wartość domyślna: ""

Zwroty

()

Przykłady kodu

Ten przykład kodu to prosty skrypt teleportacji, który przesuwa twoją postać o 10 ćwieków w kierunku, w którym się obecnie znajdujesz, gdy naciśniesz klawisz F.Robi to, uzyskując obecny pivot za pomocą PVInstance:GetPivot() i wezwując PVInstance|PivotTo , aby przesunąć znak w przód.

Prosta teleportacja postaci

-- Ten kod powinien być umieszczony w lokalnym skrypcie pod 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
-- Przesuń postać o 10 szpilkami w kierunku, w którym się znajduje
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)

Zdarzenia