RayValue
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Wartość promienia jest obiektem, którego celem jest przechowywanie pojedynczego promienia.Podobnie jak w przypadku CFrameValue, przechowany promień RayValue nie może być wyświetlony lub edytowany w oknie Właściwości w studio.Zamiast tego użyj paska poleceń, aby uzyskać i ustawić wartość tych obiektów.Na przykład możesz użyć linii takiej jak poniższa, aby utworzyć nową wartość RayValue o nazwie "Wartość" w ramach Workspace.Tworzy promień w (0, 50, 0) i skierowany jest w kierunku pozytywnego X.
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Ponieważ nie ma prostego sposobu na edycję promieni w Studio, czasami lepiej jest użyć wartości CFrameValue zamiast tego (którą można zmienić za pomocą części lub kamery).Możesz odbudować promień z CFrame używając Ray.new(cf.p, cf.lookVector * dist), gdzie cf jest danym CFrame, a dist jest długością promienia, który chcesz zbudować.
Podobnie jak wszystkie obiekty "-Value", ta pojedyncza wartość jest przechowywana w właściwości Value.Zmienione wydarzenie dla tego (i innych obiektów takich jak to) zostanie uruchomione z nową wartością przechowywaną w obiekcie, zamiast ciągiem reprezentującym zmienianą właściwość.
Przykłady kodu
This code sample demonstrates constructing a Ray, storing the Ray within a RayValue and Raycasting to find other parts between two parts named "PartA" and "PartB".
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
Właściwości
Metody
Zdarzenia
Changed
To wydarzenie wystrzeliwuje się za każdym razem, gdy właściwość RayValue.Value jest zmieniana.Będzie uruchomiony z nową wartością przechowywaną w obiekcie argumentu, zamiast ciągu reprezentującym właściwość zmienianą.
To wydarzenie, podobnie jak inne zmienione wydarzenia, można wykorzystać do śledzenia, kiedy zmienia się wartość RayValue i śledzenia różnych wartości, które może zmienić.
Równoważne zmienione zdarzenia istnieją dla podobnych obiektów, takich jak NumberValue i StringValue, w zależności od tego, który typ obiektu najlepiej odpowiada potrzebie.
Parametry
Wartość po zmianie.
Przykłady kodu
The below example, assuming all referenced objects existed, would print the RayValue's new value each time it changed. In the example below it would print "{0, 0, 0}, {0.577350199, 0.577350199, 0.577350199}".
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