"(UE4Editor.exe中)处有未经处理的异常:0xC0000005:读取位置0x0000000000000000时发生访问冲突"报错情况+解决方法+原因分析

报错情况:使用ue4.27 Slate编写Widget时想通过获取Worl(通过本地PlayerController获取)来实现“设置定时任务为在音乐结束后自动触发函数”的功能

ps:定时执行函数代码

 

解决方法:

使用GWorld替换掉通过第0号PlayerController获取世界

 原因分析:(由于本人校验较少,暂做以下估计)在进行地图切换的时候,PlayerController因在GWorld之后初始化,导致通过PlayerController获取GWorld时会因初始化顺序问题导致野指针访问问题。而自带的GWorld属性的定义为extern ENGINE_API class UWorldProxy GWorld;,extern将导致他会预先被声明,以便于后续处理是否可使用(nullptr)时发挥作用,阻止非法数据访问的问题。

 

posted @ 2024-04-14 23:50  七星易  阅读(252)  评论(0编辑  收藏  举报