插件介绍:
此插件是一个开发者库,提供类似判定玩家目光所及之处的物体类型,距离等功能
效果图:


使用范例:CS2TraceRay/CS2TraceRayExample/CS2TraceRayExample.cs at main · schwarper/CS2TraceRay
private static float GetGroundDistance(CCSPlayerController player)
{
if (player.PlayerPawn.Value is not { } playerPawn ||
playerPawn.GroundEntity.IsValid is true ||
playerPawn.AbsOrigin is not { } absOrigin)
return 0.0f;
CGameTrace _trace = TraceRay.TraceShape(absOrigin, new QAngle(90, 0, 0), TraceMask.MaskAll, Contents.Sky, 0);
return _trace.Distance;
}
private static CCSPlayerController? GetPlayer(CCSPlayerController player)
{
if (player.PlayerPawn.Value is not { } playerPawn)
return null;
Vector eyePos = GetEyePosition(player);
QAngle eyeAngles = playerPawn.EyeAngles;
CGameTrace _trace = TraceRay.TraceShape(eyePos, eyeAngles, TraceMask.MaskShot, Contents.Player, player);
return _trace.HitPlayer(out CCSPlayerController? target) && target != null ? target : null;
}
private static CBasePlayerWeapon? GetWeapon(CCSPlayerController player)
{
if (player.PlayerPawn.Value is not { } playerPawn)
return null;
Vector eyePos = GetEyePosition(player);
QAngle eyeAngles = playerPawn.EyeAngles;
CGameTrace _trace = TraceRay.TraceShape(eyePos, eyeAngles, TraceMask.MaskShot, Contents.CarriedWeapon, player);
return _trace.HitWeapon(out CBasePlayerWeapon? weapon) && weapon != null ? weapon : null;
}
参考: