是什么原因引起的;试图使用空物理对象&引用;我的Garry中有错误';什么是Mod Lua脚本?

是什么原因引起的;试图使用空物理对象&引用;我的Garry中有错误';什么是Mod Lua脚本?,lua,garrys-mod,Lua,Garrys Mod,我制作了一个小脚本,让布娃娃飞起来。它可以工作,但会留下错误信息,我不知道为什么 [ERROR] RunString:11: Tried to use a NULL physics object! 1. ApplyForceCenter - [C]:-1 2. fn - RunString:11 3. unknown - addons/ulib/lua/ulib/shared/hook.lua:179 在我删除所有现有的碎布玩偶之前,该错误会在控制台中被垃圾处理

我制作了一个小脚本,让布娃娃飞起来。它可以工作,但会留下错误信息,我不知道为什么

[ERROR] RunString:11: Tried to use a NULL physics object!  
  1. ApplyForceCenter - [C]:-1  
   2. fn - RunString:11  
    3. unknown - addons/ulib/lua/ulib/shared/hook.lua:179
在我删除所有现有的碎布玩偶之前,该错误会在控制台中被垃圾处理

我的代码:

hook.Add("Think", "Fly", function()

ent = ents:GetAll()

    for k, v in pairs(ent) do
    local isRagdoll = v:IsRagdoll()
        if isRagdoll == true then
        phys = v:GetPhysicsObject()
        phys:ApplyForceCenter(Vector(0, 0, 900))

        end
    end
end)

提前感谢。

编辑:感谢MattJearnes澄清了如何检查gmod对象的
NULL

在不了解gmod的API的情况下,我猜
GetPhysicsObject
可以返回一个描述
NULL
的特殊值,在这种情况下,您不能对其调用
ApplyForceCenter
。在使用
IsValid
执行任何操作之前,只需检查
NULL

    hook.Add("Think", "Fly", function()
    ent = ents:GetAll()

    for k, v in pairs(ent) do
        local isRagdoll = v:IsRagdoll()
        if isRagdoll == true then
            local phys = v:GetPhysicsObject()
            if IsValid(phys) then
                phys:ApplyForceCenter(Vector(0, 0, 900))
            end
        end
    end
end)

编辑:感谢MattJearnes澄清了如何检查gmod对象的
NULL

在不了解gmod的API的情况下,我猜
GetPhysicsObject
可以返回一个描述
NULL
的特殊值,在这种情况下,您不能对其调用
ApplyForceCenter
。在使用
IsValid
执行任何操作之前,只需检查
NULL

    hook.Add("Think", "Fly", function()
    ent = ents:GetAll()

    for k, v in pairs(ent) do
        local isRagdoll = v:IsRagdoll()
        if isRagdoll == true then
            local phys = v:GetPhysicsObject()
            if IsValid(phys) then
                phys:ApplyForceCenter(Vector(0, 0, 900))
            end
        end
    end
end)

亨里克的回答是关于逻辑的。在尝试使用物理对象之前,确实需要确保它是有效的

在GMod中,此函数为
IsValid

如果有效(物理),则


我本想在Henrik的回答中添加这一点作为评论,但我还没有足够的代表性。

Henrik的回答是关于逻辑的。在尝试使用物理对象之前,确实需要确保它是有效的

在GMod中,此函数为
IsValid

如果有效(物理),则


我本想在Henrik的回答中添加这一点作为评论,但我还没有足够的代表性。

谢谢,Matt,我相应地编辑了我的回答。顺便说一句,你现在应该有足够的代表评论你喜欢的任何地方;)谢谢,马特,我相应地编辑了我的答案。顺便说一句,你现在应该有足够的代表评论你喜欢的任何地方;)