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 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
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 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
Der Wert nach der Änderung.
Code-Beispiele
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