RayValue

Visualizza obsoleti

*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 è quello di archiviare un singolo Raggio.Simile a CFrameValue, il raggio memorizzato di un RayValue non può essere visualizzato o modificato all'interno della finestra Proprietà all'interno dello studio.Invece, usa la barra dei comandi per ottenere e impostare il valore di questi oggetti.Ad esempio, puoi usare una linea come quella qui sotto per creare un nuovo RayValue chiamato "Value" all'interno del Workspace .Crea un raggio a (0, 50, 0) e si trova nella direzione positiva-X.

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

Poiché non esiste un modo trivial per modificare i raggi all'interno di Studio, a volte è meglio utilizzare un CFrameValue invece (che può essere modificato attraverso una parte o la Telecamera).Puoi ricostruire un raggio da un CFrame utilizzando Ray.new(cf.p, cf.lookVector * dist) , dove cf è un CFrame dato e dist è la lunghezza del Raggio che vuoi Costruzione.

Come tutti gli oggetti "-Value", questo singolo valore viene memorizzato nella ProprietàValore.L'evento modificato per questo (e altri oggetti come esso) si attiverà con il nuovo valore memorizzato nell'oggetto, invece di una stringa che rappresenta la proprietà che viene modificata.

Campioni di codice

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

Proprietà

Value

Lettura Parallela

Il Raggio memorizzato.

Metodi

Eventi

Changed

Questo evento si attiva ogni volta che la proprietà RayValue.Value viene modificata.Funzionerà con il nuovo valore memorizzato nell'argomento oggetto, invece di una stringa che rappresenta la proprietà che viene modificata.

Questo evento, come altri eventi modificati, può essere utilizzato per tracciare quando un valore RayValue cambia e per tracciare i diversi valori che può cambiare.

Eventi equivalenti modificati esistono per oggetti simili, come NumberValue e StringValue, a seconda del tipo di oggetto che meglio soddisfa il bisogno.

Parametri

value: Ray

Il valore dopo il cambiamento.


Campioni di codice

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