PVInstance
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Một PVInstance ("Vị trí tốc độ của ví dụ") là một lớp trừu tượng không thể tạo được.Nó là nền tảng cho tất cả các đối tượng có vị trí vật lý trên thế giới, cụ thể là BaseParts và Models.
Tóm Tắt
Thuộc Tính
Phương Pháp
Nhận trung tâm của một PVInstance .
Biến đổi PVInstance cùng với tất cả con cháu của nó PVInstances như vậy mà trục trung tâm bây giờ được đặt tại điểm CFrame được chỉ định.
Thuộc Tính
Phương Pháp
GetPivot
Chức năng này nhận được trục của một PVInstance . Điều này thường được sử dụng với PVInstance:PivotTo() để di chuyển một mô hình.
Models và BaseParts cả hai đều là PVInstances ("Sự thay đổi tốc độ vị trí") và vì vậy cả hai đều có chức năng này.
Lợi Nhuận
Mẫu mã
This code sample is a simple teleport script that moves your character 10 studs forwards in the direction you're currently facing when you press the F key. It does so by getting the current pivot with PVInstance:GetPivot() and calling PVInstance|PivotTo to move the character forwards.
-- 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
Biến đổi PVInstance cùng với tất cả con cháu của nó PVInstances như vậy mà trục trung tâm bây giờ được đặt tại điểm CFrame được chỉ định.Đây là chức năng chính mà nên được sử dụng để di chuyển Models bằng cách lập trình.
BaseParts được di chuyển theo cách này bằng cách có được CFrame biến đổi bởi khoảng trừ bị cần thiết.Models được di chuyển theo cách này bằng cách có được Model.WorldPivot biến đổi bởi khoảng trừ bị cần thiết.
Lưu ý rằng vì mục đích hiệu quả, sự kiện Object.Changed không bị kích hoạt cho Position và Orientation của BaseParts được di chuyển theo cách này; chúng chỉ bị kích hoạt cho CFrame .
Khi gọi PivotTo trên Models, các khoảng trống của các bộ phận con và mô hình được lưu trữ, do đó các cuộc gọi tiếp theo vào PivotTo trên cùng một mô hình không tích lũy sự chênh lệch điểm nổi giữa các bộ phận tạo nên mô hình.
Models và BaseParts cả hai đều là PVInstances ("Sự thay đổi tốc độ vị trí") và vì vậy cả hai đều có chức năng này.
Tham Số
Các CFrame mà trục PVInstance phải bằng sau khi di chuyển nó.
Lợi Nhuận
Mẫu mã
This code sample is a simple teleport script that moves your character 10 studs forwards in the direction you're currently facing when you press the F key. It does so by getting the current pivot with PVInstance:GetPivot() and calling PVInstance|PivotTo to move the character forwards.
-- 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)