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.

RayValue jest obiektem, którego celem jest przechowywanie pojedynczego promienia. Podobnie jak CFrameValue, przechowywany promień Ray nie może być wyświetlany lub edytowany w oknie Proprietści w studio. Zamiast tego użyjте linii takiej jak poniżej, aby utworzyć nowy promień o nazwie "Value" w Class.Workspace

Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))

Ponieważ nie ma trywialnego sposobu na edytowanie promieni w Studio, czasami lepiej jest użyć CFrameValue zamiast tego (który można zmienić poprzez część lub kamerę). Można zrekonstruować promień z użyciem Ray.new(cf.p, cf.lookVector * dist), gdzie cf to jest dany

Podobnie jak wszystkie obiekty „-Value”, ten pojedynczy wartości są przechowywane w właściwości Value. Wystąpienie zmienione dla tego (i innych obiektów, takich jak niego) zostanie uruchomiony z nową wartością przechowywana w obiekcie, zamiast ciągu znaków reprezentującego właściwość, która jest zmieniana.

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 Laser.

Metody

Zdarzenia

Changed

Ten wążek zostanie uruchomiony, gdy właściwość RayValue.Value zostanie zmieniona. Będzie on działać z nową wartością przechowywaną w obiekcie argumentu, zamiast być właściwością zmienianą.

Ten wątek, podobnie jak inne zmienione wątki, może być używany do śledzenia, kiedy RayValue się zmienia i śledzenia różnych wartości, które może zmienić.

Zmienne zmiany istnieją dla podobnych obiektów, takich jak NumberValue i StringValue, w zależności od tego, jaki typ obiektu najlepiej odpowiada na potrzeby.

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