WinMi

Results 19 comments of WinMi

自动模式下,在启动模块里加了一个监听切换场景时调用LowMemoryNotification函数,能看到被回收 ![image](https://user-images.githubusercontent.com/18215765/137870059-4c4d4aba-593d-4117-a5a1-e836026aa81e.png) 目前这里有一个疑问: 我这里UI框架: ----UIMgr:ui管理类,会缓存着继承自UIPanel的界面逻辑脚本 ----UIPanl: UI逻辑脚本,界面都是继承自这个类’ ---------mWidget: UIPanel的成员变量, 对应UMG蓝图实例 销毁界面时,从UIMgr中移除UIPanel的缓存,mWidget从视口空移除,mWidget没有赋值null。夸场景的时候调用LowMemoryNotification函数,窗口未被释放,资源也未被释放,我的疑问是,UIPanel已经从UIMgr从移除了,这时候没有被引用,UIPanl应该是等待着被GC,在GC的同时,成员变量mWidget也应该是会被释放,而不需要赋值null一下吧 我在销毁窗口时,mWidget赋值null后,窗口是有被释放。难道mWidget持有者UIPanel被回收时,不会自动回收mWidget?

主要就是想问的是,ts对象持有蓝图资源对象时,ts对象被释放了,会自动释放它的成员变量(蓝图资源对象)嘛?还是说要手动赋值null

> 没被释放说明你某些地方存了引用所以释放不了啊 嗯嗯,在持有者(ts对象)不用时(没有引用了),我手动让成员变量(蓝图资源对象)赋值null。目前观察到时可以了,之前是一直认为,持有者都没有引用了,等gc回收持有者时,理应回收成员。就没手动释放了

我再查查看,还有事,一般从游戏场景切到登录场景,有必要手动调用LowMemoryNotification函数?

在启动的时候,感觉是没有一定要重新编译,解析,那一套走一篇吧,可以在进入编辑器时,上方有个按钮功能,自己想全部编译就全部编译。而且,平常也是开始编辑器敲ts代码,本身就会增量编译了。

我这里版本控制也是忽略了js和ts生成的代理蓝图。vs和node安装挺容易的,所以我都让项目里需要用到ue4的都安装了。但是这个打开编辑器的这个效率,实在是有时挺蛋疼的,ue4本身经常会奔溃退出,每次重开。。。

目前看到PC端《方舟生存进化》也是用UE4做的,Mod支持比较好,他是这样的目录结构 ![image](https://user-images.githubusercontent.com/18215765/137766375-7fb3668b-fe78-4507-aead-722453e797b7.png) ![image](https://user-images.githubusercontent.com/18215765/137766543-57682012-e199-4f7b-b6e4-5b3ff5cfd973.png) 它这个打包PC的时候都不大pak,直接Content这个目录暴露出来,玩家的Mod内容就直接加到官方定义的Mods文件夹下