RayValue
*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 RayValue là một đối tượng có mục đích là lưu một Ray. Tương tự như CFrameValue, một RayValue được lưu không thể được xem hoặc chỉnh sửa trong các lớp trong các lớp trong studio. Thay vào đó,
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Vì không có cách trực tiếp để chỉnh sửa các tia trong Studio, đôi khi nó là tốt hơn để sử dụng một CFrameValue thay vì (which can be changed through a part or the camera). You can reconstruct a ray from a CFrame using Ray.new(cf.p, cf.lookVector * dist) , where
Giống như tất cả các thống kê “-Value”, thống kê này được lưu trong thuộc tính giá trị. Sự kiện Thay đổi đơn này (và các thống kê khác như nó) sẽ kích hoạt với giá trị được lưu trong thống kê, chứ không phải là một chuỗi đại diện cho thuộc tính đang được thay đổi.
Mẫu mã
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
Thuộc Tính
Phương Pháp
Sự Kiện
Changed
Sự kiện này sẽ bắt đầu mỗi khi điều kiện RayValue.Value được thay đổi. Nó sẽ chạy với giá trị mới được lưu trong đối tượng người dùng, thay vì một chuỗi đại diện cho giá trị đang thay đổi.
Sự kiện này, giống như các sự kiện đã thay đổi khác, có thể được sử dụng để theo dõi khi một RayValue thay đổi và theo dõi các giá trị khác nhau mà nó có thể thay đổi.
Các sự kiện tương đương thay đổi tồn tại cho các đối tượng tương tự, chẳng hạn như NumberValue và StringValue, tùy thuộc vào loại đối tượng phù hợp nhu cầu tốt nhất.
Tham Số
Giá trị sau khi thay đổi.
Mẫu mã
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