RayValue

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Ein RayValue ist ein Objekt, dessen Zweck es ist, einen einzigen Ray zu speichern. Ähnlich wie CFrameValue kann ein RayValue's gespeicherter Ray nicht innerhalb des Eigenschaften-Fensters innerhalb von Studio angezeigt oder bearbeitet werden. Stattdessen verwenden Sie die Command-Leiste, um den Wert dieser Objekte zu erhalten und zu setzen. Zum Beispiel können Sie eine Zeile wie die unten verwenden

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

Da es keine triviale Möglichkeit gibt, Strahlen innerhalb von Studio zu bearbeiten, ist es manchmal besser, stattdessen einen CFrameValue zu verwenden (was durch ein Teil oder die Kamera geändert werden kann). Sie können einen Strahl aus einem CFrame mit Ray.new(cf.p, cf.lookVector * dist) wiederherstellen, in dem cf das gegebene CFrame ist und dist

Wie alle „-Value“-Objekte wird dieser einzelne Wert in das Eigenschaftengespeichert. Das zugeordnete Ereignis für dieses (und andere Objekte wie es) wird mit dem neuen Wert im Objekt ausgelöst, anstatt einer Zeichenfolge, die das Ereignis repräsentiert.

Code-Beispiele

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

Eigenschaften

Value

Parallel lesen

Der gespeicherte Ray.

Methoden

Ereignisse

Changed

Dieses Ereignis wird ausgelöst, wenn die Eigenschaft RayValue.Value geändert wird. Es wird mit dem neuen Wert, der im Argument-Objekt gespeichert wird, ausgeführt, anstatt mit einer Zeichenfolge, die die Eigenschaft ändert.

Dieses Ereignis, wie andere veränderte Ereignisse, kann verwendet werden, um zu verfolgen, wenn ein RayValue geändert wird, und die verschiedenen Werte zu verfolgen, die es ändern kann.

Ähnliche Objekte, wie z. B. NumberValue und StringValue, existieren für ähnliche Objekte, abhängig von dem, welcher Objekttyp am besten den Bedarf erfüllt.

Parameter

value: Ray

Der Wert nach der Änderung.


Code-Beispiele

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