Uniyt热更新——LuaFrameWork学习(三)判断unity里对象为空

2023-11-06

在游戏制作过程中我们经常会Destroy一些没用的GameObject,那么在ulua里我们怎么样来判断我们的引用被Destroy了呢,这里要感谢阿盟哥,他已经为我们解决了这个问题,在他写的 Global.lua里,代码如下:
function IsNil(uobj)
    return uobj == nil or uobj:Equals(nil)
end

只要将要判断的对象传进来就行了。好,我们来看个例子吧,lua代码如下:

function Main()					
	local GameObject =  UnityEngine.GameObject;
	
	local go = GameObject('go');
	
	local node = go.transform;
	node.position = Vector3.one;
	GameObject.Destroy(go);
	if go:Equals(nil) then
		print("go is nil");
	end
	--[[print('gameobject is :'..tostring(go));--]]
end

function IsNil(uobj)
    return uobj == nil or uobj:Equals(nil)
end
我这个是在LuaFrameword框架下运行的,结果不用说大家都知道就是打印 go is nil 这句话。

原先我的判断代码不是这样的我的是用go==nil 来判断的但是结果是false,而用go:Equals(nil)的结果是true;这个让我一时不知道是怎么一回事,后来通过百度让我想到了引用;引用变量存储的是对象的内存地址,对象销毁时内存还没有回收,也就是说go存储原来的内存地址,那他就不会等于nil了;而Equals是比较两个对象的状态,所以go == nil 是false,go:Equals(nil)的结果是true。

OK,今天就到这里,有兴趣的朋友可以去这里看看或许里面有你想要的  http://bbs.ulua.org/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Uniyt热更新——LuaFrameWork学习(三)判断unity里对象为空 的相关文章

  • lua_resume 的 from 参数的含义

    From Lua 5 2 参考手册 http www lua org manual 5 2 manual html lua resume int lua resume lua State L lua State from int nargs
  • Lua :: 如何编写加载多个CPU的简单程序?

    我还无法用 Lua 编写一个可以加载多个 CPU 的程序 自从Lua通过协程支持这个概念 http www lua org pil 9 4 html 我相信这是可以实现的 我失败的原因可能是以下之一 这在Lua中是不可能的 我写不出来 an
  • 使用 FastCGI 运行 Lua 脚本

    我目前正在尝试找出使用 FastCGI 与 lighttpd 或 Nginx 一起运行 Lua 脚本的方法 我唯一能挖到的是WSAPI http keplerproject github com wsapi 开普勒计划的一部分 但我想知道是
  • lua中的权限问题

    是否需要在 corona build settings 中设置一些特定权限才能将高分永久保存在文件中 每次运行代码时都会出现 权限被拒绝 的错误 如何纠正这个错误 这是我尝试过的代码 function read score local f1
  • 在 Visual Studio 中查找所有与 == 进行比较的情况

    我犯了一个错误 使用 来比较 IP 地址 而不是使用 C 中 IPAddress 类的 equals 方法 这将导致比较的是引用而不是值 由于我目前正在研究的解决方案对于一个人项目来说非常大 gt 100 000 行源代码 因此我非常确定我
  • 检查多个位置的值并仅在源唯一时返回匹配项

    假设我有一个清单Vendors 阿斯达 乐购 Spar 我有一个清单Sources 或者这个类比中的供应商 家乐氏 Kellogg 吉百利 Cadbury 雀巢 Nestle 强生 Johnsons 帮宝适 Pampers Simple 等
  • 在优先级相等的情况下保持优先级队列插入顺序

    我正在使用priorityQueue 来实现BFS 我想在插入时和弹出后在优先级相同的情况下保持插入顺序 我重写了 equals 方法 如下所示 并且插入顺序在插入时按预期保持 但 一旦我进行删除或民意调查 元素的顺序发生变化 即使在轮询中
  • LuaJ 导入 Lua 方法

    我正在使用 LuaJ 并且我有一个 lua文件充满了一堆函数 如何通过 LuaJ 导入这些函数以在 Java 中使用 一种选择是将文件编译为 Java 代码并导入它 另一种方法是使用可嵌入解释器直接从 Java 代码中调用 Lua 文件 E
  • “Equals”和“SequenceEqual”之间的区别?

    是否存在以下情况 Equals MyList1 MyList2 MyList1 SequenceEqual MyList2 两者之间有什么区别 Equals obj1 obj2 and obj1 Equals obj2 Thanks Equ
  • SHA2 512 的改编给出了不正确的结果

    我正在尝试调整 SecureHashAlgorithm 的纯 Lua 实现here http lua users org wiki SecureHashAlgorithm对于 SHA2 512 而不是 SHA2 256 当我尝试使用改编时
  • Lua 的标准(或最好支持的)大数(任意精度)库是什么?

    我正在处理大量无法四舍五入的数字 使用 Lua 的标准数学库 似乎没有方便的方法来保持精度超过某些内部限制 我还看到有几个库可以加载以处理大数字 http oss digirati com br luabignum http oss dig
  • 云到设备 Azure IoT REST API

    我探索了如何使用 Azure REST API 将数据从设备发送到云 它运行无缝 没有任何问题 我没有找到有关使用 Azure IoT Hub REST API 向 Arduino 板发送云到设备消息的好文章 有人可以就此提供建议吗 您还可
  • 表长度运算符的性能

    卢阿有 运算符来计算用作数组的表的 长度 在诸如 C 之类的语言中 计算出某个内容的长度后 通常不会再次计算它 例如int len strlen string 这在 Lua 中有什么不同吗 其中一个的效率是否比另一个低 显然这可能不会显示显
  • Lua(命令行)执行后保持打开状态

    我已经广泛寻找这个但我似乎找不到它 有什么方法可以执行Lua通过双击脚本 在中执行它 Lua Command Line 并在执行后保持打开状态 例如 print Hello World 该代码可以编译并运行 但是如果我双击hello lua
  • 如何从表成员中引用lua表成员?

    我在 lua 有一张表 enUS LOCALE STHOUSANDS Thousands separator e g comma patNumber d LOCALE STHOUSANDS d regex to find a number
  • 在 Lua/LuaFileSystem 中创建一个新文件

    我已经查看了 Lua 和 LuaFileSystem 文档 但尚未找到创建新文件的方法 我也在这里四处寻找 但目的相同 请注意 我正在寻找的解决方案必须与操作系统无关 以确保可移植性 但我很高兴针对不同的系统获得不同的答案 示例 将 Hel
  • Linq 是如何工作的(在幕后)?

    我正在考虑为 Lua 制作类似 Linq 的东西 并且我大致了解 Linq 的工作原理 但想知道是否有一篇好文章 或者是否有人可以解释 C 如何使 Linq 成为可能 注意 我的意思是在幕后 比如它如何生成代码绑定等等 而不是最终用户语法
  • 如何使用 Torch7 进行预测

    我仍在熟悉 Torch 到目前为止一切顺利 然而 我遇到了一个死胡同 我不知道如何解决 如何让 Torch7 或更具体地说 dp 库 来评估单个输入并返回预测输出 这是我的设置 基本上是 dp 演示 require dp hyperpara
  • 构建自动化和 MySQL Workbench 脚本:正向工程师 SQL CREATE SCRIPT

    我目前正在研究自动化软件构建过程 其中包括 MySQL Workbench 中定义的数据库架构 使用 Workbench 的脚本编写功能 我想打开一个 Workbench 文档并将其架构导出为 SQL CREATE 脚本 我想知道是否有一个
  • 在 Lua 中更改元表会破坏冒号运算符

    在学习Lua的过程中 我借用了一些代码here http lua users org wiki StringIndexing使用字符串索引 正是这样 getmetatable index function str i return stri

随机推荐

  • Python+xlwings操作Excel实战

    Excel是全世界最普及最强大的办公软件 应该没有之一 excel就相当于是一只老虎 python相当于是一双翅膀 两者结合将产生 如虎添翼 的效果 好了 不卖关子了 今天我们要跟大家说到的是excel xlwings xlwings是一个
  • 数据库架构演变过程

    背景 在互联网初创时期 企业往往采用单体架构去搭建自己的应用系统 但是 随着企业的不断壮大 系统访问量不断随之上升 数据量也急剧增长 数据的存储是首先要解决的问题 在这个大数据时代 数据就是企业的命根子 数据库的单体架构很难满足数据的存储
  • 未能加载基类“DevExpress.XtraEditors.XtraForm”。请确保已引用该程序集并已生成所有项目

    遇到上述问题 在网上查找了一下解决方案 在此记录 https www cnblogs com liyanwei p 4389396 html
  • JavaScript学习三 特殊对象

    数组 什么是数组 数组是一种特殊的对象 和普通对象功能相似都是用来存储值的 但是有一点不同 数组的属性名称为索引 index 从0开始 属性值称为值 数组的增删改查 创建数组 var a new Array 使用字面量 创建 var a1
  • 我给鸿星尔克写了一个720°看鞋展厅

    最近因为鸿星尔克给河南捐了5000万物资 真的是看哭了很多的网友 普通一家公司捐款5000万可能不会有这样的共情 但是看了鸿星尔克的背景之后 发现真的是令人心酸 鸿星尔克2020年的营收是28亿 但是利润却是亏损2个亿 甚至连微博的官方账号
  • 云服务器可以做虚拟主机吗,云服务器可以做虚拟主机吗

    云服务器可以做虚拟主机吗 内容精选 换一换 弹性公网IP申请成功后 将弹性公网IP绑定到弹性云服务器 裸金属服务器 虚拟IP 弹性负载均衡 NAT网关等资源上 可实现与公网的连接 绑定弹性云服务器 裸金属服务器 虚拟IP在 弹性公网IP 界
  • Linux下crontab命令的用法:sudo crontab -l

    cron 是linux系统下一个自动执行指定任务的程序 cron服务是linux的内置服务 但它不会开机自动启动 可以用以下命令启动和停止服务 Linux代码 sbin service crond start sbin service cr
  • android:inputType属性和setInputType()方法参数对应整理

    以密码类型 password 为例 android inputType属性
  • 服务器使用必备条件、操作步骤及实践步骤详解

    一 服务器使用必备条件 1 网络连接 服务器必须具备稳定的网络连接 以便与外部网络进行通信 这通常需要配置正确的网络接口和IP地址 2 硬件配置 服务器的硬件配置包括处理器 内存 存储和I O设备等 需要根据服务器的用途和需求选择合适的硬件
  • fabric1.0之cryptogen讲解

    一 工具定义 Cryptogen是hyperleder fabric提供的为网络实体生成加密材料 公私钥 证书等 的实用程序 简单来说就是一个生成认证证书 x509 certs 的工具 这些证书代表一个身份 并允许在网络实体间通信和交易时进
  • 下拉框控制当一个选中时另一个值随着变化且不可选

    推荐阅读 AI绘画关于SD MJ GPT SDXL百科全书 面试题分享点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 AI Gamma一键
  • 常用的获取日期相关内容的方法

    1 格式化日期的方法 只返回日期 年 月 日 const formateDate val gt const date new Date val const year date getFullYear const month repairZe
  • pycharm利用快捷键,快速注释多行代码的方法分享

    最近在pycharm的新手学习群里 发现有些小伙伴依然在 手工 进行代码的注释 效率较低 下面分享pycharm利用快捷键 快速注释多行代码的方法 可以帮助pycharm初学者加倍提升代码的注释效率 代码注释快捷键 pycharm代码注释的
  • springboot动态数据源用shardingjdbc按时间分表

    1 背景 原有项目架构 springboot mybatis plus dynamic datasource 动态数据源 mybatis plus拓展 druid 连接池 根据业务数据不断增加 需要进行对业务量大的数据表行分表 因为以前的业
  • nacos注册中心面试总结

    1注册中心演变及其设计思想 2 Nacos注册中心架构 3 核心功能 服务注册 Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务 提供自身的元数据 比如ip地址 端口等信息 Nacos Serve
  • jps 命令

    NAME jps Lists the instrumented Java Virtual Machines JVMs on the target system This command is experimental and unsuppo
  • 【Pytorch】第 3 章 :进行数值估计的蒙特卡洛方法

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 芯片跨时钟域同步,即异步处理的理解

    网上有一套资料Clifford E Cummings论文合集 还不错 以下是临时想到的 亚稳态就是时序违反的后果 异步信号肯定有时序违反可能 单bit 源时钟域打一拍 目的时钟域打两拍或者更多拍 多bit fifo方法 原理是格雷码指针判断
  • 《机器学习实战》——第13章 利用PCA来简化数据

    在低维下 数据更容易进行处理 其相关特征可能在数据中明确地显示出来 通常而言 我们再应用其他机器学习算法之前 必须先识别出其相关特征 13 1 降维技术 始终贯穿本书的一个难题就是对数据和结果的展示 这是因为文字图像是二维的 而在通常情况下
  • Uniyt热更新——LuaFrameWork学习(三)判断unity里对象为空

    在游戏制作过程中我们经常会Destroy一些没用的GameObject 那么在ulua里我们怎么样来判断我们的引用被Destroy了呢 这里要感谢阿盟哥 他已经为我们解决了这个问题 在他写的 Global lua里 代码如下 functio