FindObjOnRayWithWhiteList

格式

FindObjOnRayWithWhiteList(ray,whiteTable,Distance)

简介

FindObjOnRay的变体,只检查输入表格中的对象。

参数

变量名称 类型 默认 描述
ray Ray Ray 射线
whiteTable table whiteTable 要检查的对象
Distance float -1 Distance最远查找距离,默认-1无限距离

返回值

类型 描述
RWObject target 找到的对象
Vector3 point 射线命中点坐标
Vector3 normal 接触面法线

实例

在工作区创建一个零件1,不停从摄像机打出到鼠标位置的射线,只检查表中的对象,射线打到表中对象后,当前物体颜色改变,并观察打印返回值的是否正常。

wait(1)
local workSpace=GetService("WorkSpace") --获取工作区服务

local part = RWObject:New("Part") --生成两个零件,修改大小和位置
part.Position = Vector3.New(2,0,2)
part.Scale = Vector3.New(0.5,0.5,0.5)
part.Parent = workSpace
local part1 = RWObject:New("Part")
part1.Name = "零件1"
part1.Position = Vector3.New(-2,0,2)
part1.Scale = Vector3.New(2,2,2)
part1.Parent = workSpace

local function MyUpdate() --从摄像机啊发射射线检测碰触到的物体,并将碰触到的物体变红,仅检测大的零件1
    local ray = workSpace.Camera:ScreenToRay(Mouse.MousePosition)
    local mt = {workSpace.零件1} 
    local e,p = workSpace:FindObjOnRayWithWhiteList(ray,mt,10)
    if e then
        e.Color = Vector3.New(255,0,0)
        print(tostring(e.Name))
        print(tostring(p))
    end
end

local function coroutineUpdate()
    while true do
        coroutine.wait(0.1)
        MyUpdate()
    end
end

coroutine.start(coroutineUpdate)
文档更新时间: 2020-09-18 11:53   作者:王辰剑