RayValue
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un RayValue est un objet dont le but est de stocker un seul Ray. Semblable à CFrameValue, un RayValue's raye stockée ne peut pas être affichée ou modifiée dans la fenêtre propriétés dans le studio. Au lieu de cela, utilisez la barre de commande pour obtenir et définir la valeur de ces objets. Par exemple, vous pouvez utiliser une ligne comme celle ci-dessous pour créer un nouveau RayValue nommé «
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Puisque il n'y a pas de manière triviale d'éditer les rayons dans Studio, il est parfois préférable d'utiliser une valeur CFrame à la place (qui peut être modifiée via une partie ou la caméra). Vous pouvez réinitialiser un rayon à partir d'un CFrame en utilisant Ray.new(cf.p, cf.lookVector * dist), où cf est un CFrame donné et
Comme tous les objets « valeur », cette seule valeur est stockée dans la propriété valeur. L'événement Changé pour cet (et d'autres objets comme lui) se déclenchera avec la nouvelle valeur stockée dans l'objet, au lieu d'une chaîne représentant la propriété modifiée.
Échantillons de code
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
Propriétés
Méthodes
Évènements
Changed
Cet événement se déclenche toujours que la propriété RayValue.Value soit modifiée. Il s'exécutera avec la nouvelle valeur stockée dans l'objet d'argument, au lieu d'une chaîne représentant la propriété modifiée.
Cet événement, comme d'autres événements modifiés, peut être utilisé pour suivre quand un RayValue change et pour suivre les différentes valeurs qu'il peut changer.
Des événements équivalents existent pour des objets similaires, tels que NumberValue et StringValue, en fonction du type d'objet qui convient le mieux aux besoins.
Paramètres
La valeur après le changement.
Échantillons de code
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