RayValue
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Um RayValue é um objeto cujo propósito é armazenar um único Ray. Semelhante a CFrameValue, um RayValue armazenado não pode ser visto ou editado dentro da janela Propriedades dentro do Studio. Em vez disso, use a barra de comando para obter e definir o valor desses objetos. Por exemplo, você pode usar uma linha como a abaixo para criar um novo RayValue chamado
Instance.new("RayValue").Value = Ray.new(Vector3.new(0, 50, 0), Vector3.new(10, 0, 0))
Como não há maneira trivial de editar raios dentro do Studio, às vezes é melhor usar um CFrameValue em vez disso (que pode ser alterado através de uma parte ou a Câmera). Você pode reconstruir um raio a partir de um CFrame usando Ray.new(cf.p, cf.lookVector * dist), onde cf é um CFrame dado e dist</
Como todos os objetos “-Value”, este único valor é armazenado na propriedade Valor. O evento Alterado para este (e outros objetos como ele) será disparado com o novo valor sendo armazenado na Objeto, em vez de uma string representando a propriedade sendo alterada.
Amostras de código
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
Propriedades
Métodos
Eventos
Changed
Este evento ocorre sempre que a propriedade RayValue.Value é alterada. Ele será executado com o novo valor armazenado no Objetode argumento, em vez de uma string representando a propriedade sendo alterada.
Este evento, como outros eventos alterados, pode ser usado para rastrear quando um RayValue muda e rastrear os diferentes valores que ele pode alterar.
Eventos equivalentes alterados existem para objetos semelhantes, como NumberValue e StringValue, dependendo do tipo de objeto que melhor atende às necessidades.
Parâmetros
O valor após a alteração.
Amostras de código
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