C#层对象已经删除了,但是lua层判断不为nil。然后lua调用了,又会报nil的错误。

这里提供了一种判断方式。

lua里的判断。这个Util.IsNull()是C#层代码。

function HelperFunc.IsNull(obj)
if obj == nil then
return true
end
return Util.IsNull(obj)
end
        public static bool IsNull(object o)
{
if (o is UnityEngine.Object)
{
return (o as UnityEngine.Object) == null;
} return o == null;
}

这里是类似的情况。这里有一句话说的很对。ngx.null就是一个代表null的userdata结构,类似一个自定义的类,但是没有什么具体含义,同时文档里面也提到了类似的值还有cjson.null,以后小心被坑。

打印这时候的typeof(obj),显示的是userdata,他不是lua的nil,是C#的null。对其内容操作,报的是nil的错。

报错代码:

    if obj ~= nil then
obj.gameObject:SetActive(true)//报错是这行,attempt to index gameobject on a nil value
return obj

最新文章

  1. 敏捷项目开源管理软件ScrumBasic(1)
  2. Sql Server参数化查询之where in和like实现详解
  3. Eclipse中使用maven构建web项目中遇到的问题
  4. BigBlueButton的安装
  5. Spring security与shiro
  6. 如何通过SecureCRT FTP上传下载文件
  7. greensock的tween源码阅读笔记
  8. 判断时间大小 yyyy-MM-dd 格式
  9. oracle internal :VIEW: X$KCBLDRHIST - Direct Read HISTory
  10. sencha touch mvc
  11. android Permission 访问权限许可
  12. 不成功的TCA代码
  13. XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks
  14. oracle sql命令行中上下左右使用
  15. 一次U盘安装Ubuntu双系统实录
  16. 入门Html
  17. C/C++-style输入输出函数
  18. ISP PIPLINE (十四) AE(自动曝光)
  19. RSA算法加解密
  20. linux常见命令实践.

热门文章

  1. Lambda表达式和Collection集合
  2. 重要内置函数、常见内置函数(了解)、可迭代对象、迭代器对象、for循环原理、异常捕获
  3. flannel 关闭SNAT
  4. 52道常见Python面试题,你都看过了吗?(转发供参考学习)
  5. 1414:【17NOIP普及组】成绩
  6. SQLServer中使用between查询日期
  7. Maven使用tomcat7-maven插件部署项目问题
  8. less 4-7
  9. nginx 配置443 域名
  10. 3、k8s 核心实战