PVInstance
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
A PVInstance ("Instans Kecepatan Posisi") 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 PVInstance .
Mengubah PVInstance bersama dengan semua keturunannya PVInstances sehingga pivot sekarang terletak di lokasi yang ditentukan CFrame .
Properti
Metode
GetPivot
Fungsi ini mendapatkan titik pivot dari PVInstance . Ini sering digunakan dengan PVInstance:PivotTo() untuk memindahkan model.
Models dan BaseParts adalah keduanya PVInstances ("Instans Kecepatan Posisi") dan 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 keturunannya PVInstances sehingga pivot sekarang terletak di lokasi yang ditentukan CFrame .Ini adalah fungsi utama yang harus digunakan untuk memindahkan Models melalui scripting.
BaseParts dipindahkan dengan cara ini dengan memiliki transformasi CFrame mereka oleh offset yang diperlukan. Models dipindahkan dengan cara ini dengan memiliki transformasi Model.WorldPivot mereka oleh offset yang diperlukan.
Perhatikan bahwa untuk tujuan efisiensi, acara Object.Changed tidak ditembak untuk Position dan Orientation dari BaseParts dipindahkan dengan cara ini; mereka hanya ditembak untuk CFrame .
Saat menelepon PivotTo pada Models , offset bagian dan model turunan disimpan, sehingga panggilan berikutnya ke PivotTo pada model yang sama tidak mengumpulkan ketidakpastian mengambang antara bagian yang membentuk model.
Models dan BaseParts adalah keduanya PVInstances ("Instans Kecepatan Posisi") dan keduanya memiliki fungsi ini.
Parameter
The CFrame yang harus sama setelah dipindahkan adalah PVInstance pivot.
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)