unity class

fix = go.AddComponent<TestFixedUpdate>();
即使go不存在了。fix依然可以用,除了比较特别的fixupdate方法,invoke方法



mono被直接删除,fixupdate不能运行,invoke不能运行,方法调用可以运行
mono被enable false,fixupdate不能运行,invoke能运行,方法调用可以运行



loadlevel
切换场景之后,不会清空 正常类的引用 和 mono类的引用
正常类和mono类只是一个new一个addcom,一个构造函数,一个start函数,,mono带自动调用的update等,其他基本一样
把mono看成正常的类,即   切换场景没影响
和gameobject 不一样 ,gameobject删了就为null
所以项目里面serverproxy的ondestroy没调用 connection=null相当于生成两个connection
删除引用:在赋值为null前把类里的所有引用赋值为null


A a = new A()
b = a
b赋值null时对a没影响
但是b修改值时对a有影响



mono被直接删除,fixupdate不能运行,invoke不能运行,方法调用可以运行
mono被enable false,fixupdate不能运行,invoke能运行,方法调用可以运行
fix = go.AddComponent<TestFixedUpdate>();
即使go不存在了。fix依然可以用,除了比较特别的fixupdate方法,invoke方法
但是判断fix 却是空的,因为unity重写了== 和!=,实例其实是存在的
gameobject.destroy后,的下一帧才是null,所以如果destroy avatar后,此时的uilabel不为null,不会再生成
用gameobject==null和uilabel==null是一样
实例为null但是可以调用方法



优化代码,修复副本panel
A a=new A
b = a
此时无论让a为null还是b为null都不会影响对方,但是修改值就会影响

猜你喜欢

转载自blog.csdn.net/a133900029/article/details/80184182