RayValue
*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 darin besteht, einen einzigen Strahl zu speichern.Ähnlich wie bei CFrameValue kann ein im Speicher eines RayValue gespeicherter Strahl nicht innerhalb des Eigenschaften-Fensters im Studio angezeigt oder bearbeitet werden.Verwende stattdessen die Befehlsleiste, um den Wert dieser Objekte zu erhalten und zu setzen.Zum Beispiel können Sie eine Zeile wie die unten verwenden, um einen neuen RayValue mit dem Namen "Value" innerhalb von Workspace zu erstellen.Es erstellt einen Strahl bei (0, 50, 0) und ist in die positive-X-Richtung ausgerichtet.
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Da es keine trivialen Möglichkeit gibt, Strahlen innerhalb von Studio zu bearbeiten, ist es manchmal besser, stattdessen einen CFrameValue zu verwenden (der durch ein Teil oder die Kamera geändert werden kann).Du kannst einen Strahl aus einem CFrame mit Ray.new(cf.p, cf.lookVector * dist) rekonstruieren, wobei cf ein gegebener CFrame ist und dist die Länge des zu KonstruktStrahls ist.
Wie alle "-Value"-Objekte wird dieser einzige Wert in der Eigenschaftengespeichert.Das geänderte Ereignis für dieses (und andere Objekte wie es) wird mit dem neuen Wert feuern, der im Objekt gespeichert wird, anstatt mit einem String, der die zu ändernde Eigenschaft darstellt.
Code-Beispiele
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
Zusammenfassung
Eigenschaften
Der gespeicherte Ray.
Ereignisse
Feuert, wenn RayValue.Value geändert wird.
Eigenschaften
Methoden
Ereignisse
Changed
Dieses Ereignis wird immer dann ausgelöst, wenn das Attribut RayValue.Value geändert wird.Es wird mit dem neuen Wert laufen, der im Argument-Objekt gespeichert wird, anstatt mit einer Zeichenkette, die die zu ändernde Eigenschaft darstellt.
Dieses Ereignis, wie andere geänderte Ereignisse, kann verwendet werden, um zu verfolgen, wann sich ein RayValue ändert und die verschiedenen Werte zu verfolgen, die es ändern kann.
Äquivalente geänderte Ereignisse existieren für ähnliche Objekte wie NumberValue und StringValue, je nachdem, welcher Objekttyp am besten für die Bedürfnisse geeignet ist.
Parameter
Der Wert nach der Änderung.
Code-Beispiele
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