PVInstance
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
A PVInstance ("Position Velocity Instance") adalah kelas abstrak yang tidak dapat dibuat. Ini adalah dasar untuk semua objek yang memiliki lokasi fisik di dunia, khususnya BaseParts dan Models .
Rangkuman
Properti
Metode
Mendapatkan pivot dari Class.PVInstance .
Mengubah PVInstance bersama dengan semua anaknya PVInstances sehingga pivot sekarang berada di CFrame yang ditentukan.
Properti
Metode
GetPivot
Fungsi ini mendapatkan pivot dari PVInstance . Ini sering digunakan dengan PVInstance:PivotTo() untuk menggerakkan model.
Models dan BaseParts keduanya PVInstances ("Position Velocity Instances") dan jadi keduanya memiliki fungsi ini.
Memberikan nilai
Contoh Kode
-- 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
Mengubah PVInstance bersama dengan semua anak cendawan PVInstances sehingga pivot sekarang berada di CFrame yang ditentukan. Ini adalah fungsi utama yang harus digunakan untuk menggerakkan 1> Class.Model|Model1> melalui scripting
BaseParts digerakkan dengan cara ini dengan membuat CFrame mereka berubah olehOffset yang diperlukan. Models digerakkan dengan cara ini dengan membuat 0> Class.Model.WorldPivot0> mereka berubah denganOffset yang diperlukan.
Catat bahwa untuk tujuan efisiensi, Object.Changed acara tidak diaktifkan untuk Position dan Orientation dari 2>Class.BasePart|BaseParts2> yang pindah dengan cara ini; mereka hanya diaktifkan untuk 5>Datatype.CFrame
Ketika memanggil PivotTo di Models, makaOffset dari bagian dan model turunan diaktifkan untuk menghindari mengumpulkan mundur poin mengambang antara bagian yang membuat model.
Models dan BaseParts keduanya PVInstances ("Position Velocity Instances") dan jadi keduanya memiliki fungsi ini.
Parameter
Datatype.CFrame yang pivotnya setelah pindahnya harus sama setelah pindahnya.
Memberikan nilai
Contoh Kode
-- 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)