我该如何使用射线投射来创建基于起点和方向的射线?

我在一个三维空间的中间有一个块,我知道那个块的位置,也知道我想要投射的射线方向。

这个方向应该如何用数据表示?角度?向量?大小?我真的很困惑。

我该如何在 Lua 中设置它?(按照以下大致轮廓:)

local ray = Ray.new( --origin(Vector3.new(x,y,z)), -- direction )

例如:我在--direction中该放什么?

点赞
用户858951
用户858951

我假设这是 Rbx.Lua,从外表看。

Ray.new() 需要两个参数。CFrame 方向和距离(以 stud 为单位)。就像这样

Ray.new(Direction, Distance)

例如以下代码

local cf = CFrame.new(0,1,0)
local ray = Ray.new(cf,10)

将沿着 Y 轴投射一条长度为 10 的射线。

现在,从它的声音来看,你有一个方块,你想要的方向是正面朝向的方向。Roblox 提供了一个名为 'LookVector' 的属性。因此,您可以执行以下操作,以沿着方块朝向的方向投射光线。

local cf = Part.CFrame.lookVector
local ray = Ray.new(cf,10)

编辑:

这里有另一个示例,用于在两个 Roblox Vector3 值之间进行光线投射。

local point1 = Vector3.new(0,0,0)
local point2 = Vector3.new(0,1,0)
local cf = CFrame.new(point1,point2)
local ray = Ray.new(cf,10)

这将从点 1 沿着点 2 的方向投射光线。

2014-11-05 17:41:52