RayValue

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Une valeur de rayon est un objet dont le but est de stocker un seul rayon.Semblable à CFrameValue, le rayon stocké d'une valeur Ray ne peut pas être affiché ou modifié 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 une nouvelle valeur RayValue nommée « Valeur » dans le Workspace.Il crée un rayon à (0, 50, 0) et il se trouve dans la direction positive-X.

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

Comme il n'y a pas de façon trivial de modifier les rayons dans Studio, il vaut parfois mieux utiliser une valeur CFrame plutôt (qui peut être modifiée via une partie ou la caméra).Vous pouvez reconstruire un rayon à partir d'un CFrame en utilisant Ray.new(cf.p, cf.lookVector * dist) , où cf est un CFrame donné et dist est la longueur du rayon que vous voulez construction.

Comme tous les objets "-Value", cette seule valeur est stockée dans la propriété valeur.L'événement modifié pour cela (et d'autres objets comme celui-ci) 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

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

Propriétés

Value

Lecture parallèle

Le rayon stocké.

Méthodes

Évènements

Changed

Cet événement se déclenche chaque fois que la propriété RayValue.Value est 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 une valeur RayValue change et pour suivre les différentes valeurs qu'elle peut changer.

Des événements équivalents modifiés existent pour des objets similaires, tels que NumberValue et StringValue, en fonction du type d'objet qui convient le mieux aux besoins.

Paramètres

value: Ray

La valeur après le changement.


Échantillons de code

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