Gmod Lua HUDPaint 脚本未能使用绘图函数更改 HUD,为什么?

我一直在学习如何影响 HUD 并在 Gmod 中使用绘图函数,但每当我尝试运行任何依赖于 2D 渲染上下文钩子(如 HUDPaint)的代码时,它似乎不起作用。没有出现任何错误,但也没有绘制或任何对 HUD 的更改。以下是我的代码:

function test()
surface.SetDrawColor( 0, 0, 0, 120 )
surface.DrawRect( 50, 50, 128, 128 )
end
hook.Add("HUDPaint", "HUDPaint_DrawABox", test)

我不确定这是否是 HUDPaint 的问题,还是我正在使用来绘制(test)的函数的问题。我最好的猜测是它与 HUDPaint 是服务器端脚本有关,因为我尚未使用任何明确针对服务器端的代码。我一直在尝试在普通的单人游戏 Gmod 实例中运行此代码,对于我使用其他脚本时,这已经成功了。

点赞
用户12307227
用户12307227

HUDPaint 是客户端的,所有的渲染钩子都是客户端的。

你把这个 lua 文件放在哪里了呢? 应该放在 addons/你的插件名称/lua/autorun/client。

另外,更标准的惯例是使用 draw.RoundedBox https://wiki.facepunch.com/gmod/draw.RoundedBox

(如果能避免的话,最好不要不必要地设置表面绘制颜色)

2020-04-28 00:03:28