引用(https://jacx.net/2015/11/20/dont-use-equals-null-on-unity-objects.html)
這其實就是問題出現的主要原因,Unity是一個用C#包裝起來的C++引擎,他提供的Destory方法只是把C++部分的非托管資源釋放了,在C#中的托管資源要等GC自己去釋放。
因為Unity重載了UnityEngine.Object的==方法,所以在C#中使用 if ( obj == null)是沒問題的。但是通過LUA調用時,C#對象可能還或者,但他的靈魂已經消失了。
記住一點,不要直接在lua中使用 if obj == nil 來判斷空值就可以了。
更具體的信息,可以參考上面發的文章,介紹的非常清晰。