首页 > 编程语言 > 详细

关于UnityEngine.Object

时间:2019-12-26 17:02:26      阅读:121      评论:0      收藏:0      [点我收藏+]

UnityEngine.Object重写了==运算符和!=运算符。

//
// Operators
//
public static bool operator == (Object x, Object y);
public static bool operator != (Object x, Object y);

当GameObject被销毁后,Class类并不是真正null,只是使用==运算符和!=运算符时,Unity会把它当作null值处理。

Lua代码

local go = CS.UnityEngine.GameObject(go)
CS.UnityEngine.GameObject.DestroyImmediate(go)

if (go ~= nil) then
    go.name = xxx
end

在LUA里游戏对象在销毁后的判空实际上是有问题的。LUA示例代码里go不会为nil

解决方案就是在C#代码里扩展一个判空的方法,然后在LUA里调用该方法。

注意事项

UnityEngine.GameObject go = new UnityEngine.GameObject(); 
Debug.Log(go == null); // false

UnityEngine.Object obj = new UnityEngine.Object();
Debug.Log(obj == null); // true

 

关于UnityEngine.Object

原文:https://www.cnblogs.com/TravelingLight/p/12102559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!