FindObjOnRay
格式
FindObjOnRay(ray,ignoreInstance,Distance)
- 函数
- 所属对象:WorkSpace
简介
发出一条射线,当与碰到的第一个零件
类对象接触时,返回接触的对象、接触点坐标、接触面的曲面法线。
参数
变量名称 | 类型 | 默认 | 描述 |
---|---|---|---|
ray | Ray | Ray 射线 | |
ignoreInstance | RWObject | Instance 要忽略的对象 | |
Distance | float | -1 | Distance最远查找距离,默认-1无限距离 |
返回值
类型 | 描述 |
---|---|
RWObject | target 找到的对象 |
Vector3 | point 射线命中点坐标 |
Vector3 | normal 接触面法线 |
实例
在客户端最先加载中创建客户端脚本
不停从摄像机打出到鼠标位置的射线,忽略表中对象,射线打到对象后,当前物体颜色改变,并观察打印返回值的是否正常。
local workSpace=GetService("WorkSpace") --获取工作区服务
local function MyUpdate()
local ray = workSpace.Camera:ScreenToRay(Mouse.MousePosition) --从摄像机到鼠标位置的射线
local e,p,n = workSpace:FindObjOnRay(ray,workSpace:WaitForChild("New Plate"),10) --根据射线找到对象,并忽略列表中的指定对象
if e~=nil then
e.Color = Vector3.New(255,0,0) --将射线经过的非忽略对象变红
print(tostring(e.Name)) --打印对象的名称
print(tostring(p)) --打印射线接触的位置
print(tostring(n)) --打印接触点的法线
end
end
local function coroutineUpdate()
while true do
coroutine.wait(1) --每1秒执行射线检测
MyUpdate()
end
end
coroutine.start(coroutineUpdate)
文档更新时间: 2020-09-18 14:23 作者:王辰剑