RayValue
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un RayValue è un oggetto il cui scopo è archiviare un singolo Ray. Come CFrameValue, un RayValue's ray memorizzato non può essere visualizzato o modificato all'interno della finestra Proprietà all'interno dello studio. Invece, usa la barra di comando per ottenere e impostare il valore di questi oggetti. Ad esempio, puoi usare una linea come quella qui sotto per creare
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Poiché non esiste modo truccato per modificare i raggi all'interno di Studio, è meglio utilizzare invece un CFrameValue (che può essere cambiato attraverso una parte o la Telecamera). Puoi ricostruire un raggi da un CFrame usando Ray.new(cf.p, cf.lookVector * dist), dove cf è un CFrame dato e dist
Come tutti gli oggetti "Value", questo singolo valore viene memorizzato nella ProprietàValore. L'evento Modificato per questo (e altri oggetti come esso) verrà attivato con il nuovo valore memorizzato nell'oggetto, invece che una stringa che rappresenta la proprietà che viene cambiata.
Campioni di codice
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
Proprietà
Metodi
Eventi
Changed
Questo evento si attiva ogni volta che la proprietà RayValue.Value viene cambiata. Eseguirà con il nuovo valore che viene memorizzato nell'argomento oggetto, invece di una stringa che rappresenta la proprietà che viene cambiata.
Questo evento, come altri eventi cambiati, può essere utilizzato per tracciare quando un RayValue cambia e per tracciare i diversi valori che può cambiare.
Eventi equivalenti cambiati esistono per oggetti simili, come NumberValue e StringValue, a seconda del tipo di oggetto che meglio soddisfa le esigenze.
Parametri
Il valore dopo il cambiamento.
Campioni di codice
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