【问题标题】:attempt to index global ' self ' (a nil value)尝试索引全局“自我”(零值)
【发布时间】:2020-04-27 14:35:31
【问题描述】:

我运行了这段代码,它给了我一个错误尝试索引全局“自我”(一个零值)

hook.Add( "PostDrawOpaqueRenderables","2d3d", function( )  
    cam.Start3D2D( Vector( self.Entity:GetPos() ), Angle(0, -90, 90), 1 ) 

        surface.SetDrawColor( 255, 0, 255 )
        surface.DrawTexturedRect( 0, 0, 500, 500 )

    cam.End3D2D()

end) 

【问题讨论】:

  • 根据提供的代码,这似乎不是一个上下文,self 不是nil。你期望self 是什么?这是在另一个函数中吗?
  • 改用function(self)
  • @lhf 不太可能因为PostDrawOpaqueRenderables 钩子不会传递任何包含Entity 成员的东西。我建议将 self.Entity:GetPos() 更改为例如LocalPlayer():GetPos() 看看结果是否令人满意(也不太可能,但我们无法真正知道作者的意图)。

标签: lua garrys-mod


【解决方案1】:

您可以使用hook.Entity:GetPos() 修复此错误。
self 是一个 lua 关键字,出现在表的方法定义中。

【讨论】:

猜你喜欢
  • 2015-02-18
  • 1970-01-01
  • 2020-11-03
  • 2017-12-20
  • 2013-06-07
  • 2020-03-08
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多