PVInstance

Hiển Thị Bản Đã Lỗi Thời

*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.

Không Thể Tạo
Không Thể Duyệt

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à BasePartsModels.

Tóm Tắt

Thuộc Tính

  • Không Sao Chép
    Không Thể Viết Kịch Bản
    Đọc Song Song
  • Không Sao Chép
    Không Thể Viết Kịch Bản
    Đọc Song Song

Phương Pháp

Thuộc Tính

Origin

Không Sao Chép
Không Thể Viết Kịch Bản
Đọc Song Song

Pivot Offset

Không Sao Chép
Không Thể Viết Kịch Bản
Đọc Song Song

Phương Pháp

GetPivot

Ghi Song Song

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.

ModelsBaseParts 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.

Simple Character Teleportation

-- 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 PositionOrientation 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.

ModelsBaseParts 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ố

targetCFrame: CFrame

Các CFrame mà trục PVInstance phải bằng sau khi di chuyển nó.

Giá Trị Mặc Định: ""

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.

Simple Character Teleportation

-- 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)

Sự Kiện