RayValue
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
RayValue adalah objek whose purpose is to store a single Ray. Mirip dengan CFrameValue, ray yang disimpan di RayValue tidak dapat dilihat atau diedit di jendela Properties dalam studio. Sebaliknya, gunakan bar Command untuk mendapatkan dan menetapkan nilai dari objek-objek ini. Misalnya, Anda dapat menggunakan garis seperti yang
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Karena tidak ada cara mudah untuk mengedit sinar di Studio, terkadang lebih baik menggunakan CFrameValue alih-alih (yang dapat diubah melalui bagian atau kamera). Anda dapat merekonstruksi sinar dari CFrame menggunakan Ray.new(cf.p, cf.lookVector * dist), di mana cf adal
Seperti semua objek “-Value”, nilai tunggal ini disimpan di nilai . The Changed acara untuk ini (dan objek lain seperti itu) akan diaktifkan dengan nilai baru yang disimpan dalam objek, bukan string mewakili prop性 yang berubah.
Contoh Kode
local partA = workspace.PartA
local partB = workspace.PartB
local origin = partA.Position
local direction = partB.Position - partA.Position
local ray = Ray.new(origin, direction)
local rayValue = Instance.new("RayValue")
rayValue.Value = ray
rayValue.Name = "PartA-to-PartB Ray"
rayValue.Parent = workspace
-- Raycast to find any parts in between PartA and PartB
local part = workspace:FindPartOnRay(ray)
if part then
print("Hit part: " .. part:GetFullName())
else
-- This ought to never happen, as our ray starts at PartA
-- and points towards PartB, so we should always hit PartB
-- or some other part.
print("No part hit!")
end
Properti
Metode
Acara
Changed
Acara ini diaktifkan setiap kali RayValue.Value property berubah. Ini akan berjalan dengan nilai baru yang disimpan dalam objek argumen, bukan string mewakili prop性 yang diubah.
Acara ini, seperti acara lain yang berubah, dapat digunakan untuk melacak kapan RayValue berubah dan melacak nilai yang berbeda yang dapat diubah.
Acara berubah yang setara ada untuk objek serupa, seperti NumberValue dan StringValue, tergantung pada jenis objek mana yang paling cocok dengan kebutuhan.
Parameter
Nilai setelah perubahan.
Contoh Kode
local value = Instance.new("RayValue")
value.Parent = workspace
value.Changed:Connect(function(NewValue)
print(NewValue)
end)
local start = Vector3.new(0, 0, 0)
local lookAt = Vector3.new(10, 10, 10)
local ray = Ray.new(start, (lookAt - start).Unit)
value.Value = ray