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