RayValue

Pokaż przestarzałe

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

Rays, RayValue and Raycasting

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

Value

Odczyt równoległy

Przechowywany promień.

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

value: Ray

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}".

How to Use RayValue.Changed

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