Moderator elections are being held. See Valve Developer Community:Moderator elections for more details.
Users who would like to run for moderator must be autoconfirmed and have at least 100 edits. Users can check their own edit count at Special:Preferences.

Dota 2 Workshop Tools/Scripting/API/Global.TraceLine=zh

From Valve Developer Community
Jump to: navigation, search
Note.pngNote: This page was previously automatically generated. Any changes may be overwritten

函数介绍

bool TraceLine(table parameters)

沿由两个向量指定的线进行追踪,返回沿线命中的第一个实体或几何体。UTIL_TraceLine()的脚本版本。

Example
-- 从玩家的位置向前追踪100个单位
-- 如果命中,则会在命中位置绘制一条线。
local playerEnt = Entities:FindByClassname(nil, "player")
local startVector = playerEnt:GetCenter()
local traceTable =
{
	startpos = startVector;
	endpos = startVector + RotatePosition(Vector(0,0,0), playerEnt:GetAngles(), Vector(100, 0, 0));
	ignore = playerEnt;
	mask =  33636363 -- L4D2脚本API中的TRACE_MASK_PLAYER_SOLID对于源2可能不正确。
}

TraceLine(traceTable)

if traceTable.hit 
then
	DebugDrawLine(traceTable.startpos, traceTable.pos, 0, 255, 0, false, 1)
	DebugDrawLine(traceTable.pos, traceTable.pos + traceTable.normal * 10, 0, 0, 255, false, 1)
else
	DebugDrawLine(traceTable.startpos, traceTable.endpos, 255, 0, 0, false, 1)
end

参数

类型 名字 介绍
table parameters 用于输入和输出的表。

返回

bool - 追踪是否成功。这仅指示追踪已完成,而不是是否击中任何东西。

输入参数

传递到参数表以设置跟踪。

类型 名字 介绍
Vector startpos 从指定全局向量处开始追踪。
Vector endpos 从指定全局向量处结束追踪。
int mask 碰撞类型位掩码。
CBaseEntity ignore 欲追踪的实体。

输出参数

被本函数添加到表中的成员。

Note.pngNote: 如果未命中,则这些参数可能不存在。使用前检查是否为空。
类型 名字 介绍
Vector pos 存储命中位置的全局向量。
float fraction 在追踪轴上移动距离的百分比(?)
bool hit 是否命中。始终会存在。
CBaseEntity enthit 命中实体的句柄。
bool startsolid 跟踪是否在实体内部开始。
Note.pngNote: 如果为false,则此参数设置为 nil
Vector normal 命中的曲面的全局法线向量。