PVInstance
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Bir PVInstance ("Pozisyon Hızı İstemi") soyut bir sınıftır ve oluşturulamaz.Dünyada fiziksel bir konuma sahip olan tüm nesnelerin temelidir, özellikle BaseParts ve Models.
Özet
Özellikler
Yöntemler
Bir PVInstance 'nin merkezini alır.
Dönüştürür PVInstance tüm altındaki PVInstances ile birlikte pivotun şimdi belirtilen CFrame 'de yer aldığını, böylece dönüşüm aşağıdaki gibi gerçekleşir:
Özellikler
Yöntemler
GetPivot
Bu işlev bir PVInstance 'nin merkezini alır. Bu genellikle bir modeli hareket ettirmek için PVInstance:PivotTo() ile kullanılır.
Models ve BaseParts her ikisi de PVInstances ("Pozisyon Hızı İstisnaları") ve bu nedenle her ikisi de bu işleve sahiptir.
Dönüşler
Kod Örnekleri
Bu kod örneği, karakterinizi şu anda yönlendiğiniz yönde 10 adım ileri taşıyan basit bir ışınlanma senaryosudur ve F tuşuna basarsanız.Bunu yapmak için mevcut pivotu alır PVInstance:GetPivot() ve karakteri ileri taşımak için PVInstance|PivotTo çağırır.
-- Bu kod, StarterPlayerScripts altında bir YerelScript'e yerleştirilmelidir
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
-- Karakteri, karşı karşıya olduğu yönde 10 damga ileri taşı
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)
PivotTo
Dönüştürür PVInstance tüm altındaki PVInstances ile birlikte pivotun şimdi belirtilen CFrame 'de yer aldığını, böylece dönüşüm aşağıdaki gibi gerçekleşir:Bu, senaryo aracılığıyla Models taşımak için kullanılması gereken temel işlevdir.
BaseParts , gerekli ofset tarafından dönüştürülerek böyle taşınır CFrame.Models şekilde hareket edilir ve gerekli ofset tarafından dönüştürülürler, böylece Model.WorldPivot dönüştürülürler.
Verimlilik açısından, Object.Changed etkinlikleri Position ve Orientation için atlanmaz; sadece BaseParts için ateşlenirler; yalnızca CFrame için ateşlenirler.
üzerinde çağrıldığında, alt kısımların ve modellerin ofsetleri önbelleğe alınır, böylece aynı modeldeki 'ye yapılan sonraki çağrılar modeli oluşturan parçalar arasındaki yüzde değişimini biriktirmez.
Models ve BaseParts her ikisi de PVInstances ("Pozisyon Hızı İstisnaları") ve bu nedenle her ikisi de bu işleve sahiptir.
Parametreler
Döndürülmesinden sonra eşit olması gereken CFrame döndürme noktası PVInstance .
Dönüşler
Kod Örnekleri
Bu kod örneği, karakterinizi şu anda yönlendiğiniz yönde 10 adım ileri taşıyan basit bir ışınlanma senaryosudur ve F tuşuna basarsanız.Bunu yapmak için mevcut pivotu alır PVInstance:GetPivot() ve karakteri ileri taşımak için PVInstance|PivotTo çağırır.
-- Bu kod, StarterPlayerScripts altında bir YerelScript'e yerleştirilmelidir
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
-- Karakteri, karşı karşıya olduğu yönde 10 damga ileri taşı
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(0, 0, -10))
end
end
ContextActionService:BindAction("Teleport", doTeleport, true, Enum.KeyCode.F)