跳至正文
版本:latest - a1.147.x ⚖️

🔍 跟踪

Failed to load class data.

🎒 示例

Client/Index.lua
-- 获取本地玩家
local local_player = Client.GetLocalPlayer()

-- 获取相机旋转和位置
local camera_rotation = local_player:GetCameraRotation()
local start_location = local_player:GetCameraLocation()

-- 根据相机旋转计算方向向量
local direction = camera_rotation:GetForwardVector()

-- 计算跟踪的终点位置
-- (起点位置 + 沿相机方向延伸 20000 个单位)
local end_location = start_location + direction * 20000

-- 过滤所有想要检测的碰撞通道(例如 WorldStatic、WorldDynamic、PhysicsBody、Vehicle)
local collision_trace = CollisionChannel.WorldStatic | CollisionChannel.WorldDynamic | CollisionChannel.PhysicsBody | CollisionChannel.Vehicle

-- 定义跟踪的参数
-- TraceMode.TraceOnlyVisibility 表示只对可见物体进行跟踪
-- TraceMode.DrawDebug 表示我们要绘制跟踪的调试线以实现可视化
-- TraceMode.TraceComplex 表示我们要针对复杂的碰撞形状进行跟踪
-- TraceMode.ReturnEntity 表示我们要返回被射线击中的实体
local trace_mode = TraceMode.TraceOnlyVisibility | TraceMode.DrawDebug | TraceMode.TraceComplex | TraceMode.ReturnEntity

-- 执行跟踪
local trace_result = Trace.LineSingle(start_location, end_location, collision_trace, trace_mode)

-- 如果跟踪成功
if (trace_result.Success) then
-- 如果获取到了实体,则打印碰撞实体的名称,否则只打印位置
if (trace_result.Entity) then
Console.Log("跟踪成功!实体:" .. trace_result.Entity:GetClass():GetName() .. "。位置:" .. tostring(trace_result.Location))
else
Console.Log("跟踪成功!位置:" .. tostring(trace_result.Location))
end
else
-- 如果跟踪失败,则打印消息
Console.Log("跟踪失败")
end

🗿 静态函数

Failed to load class data.

🚀 事件

Failed to load class data.