遇到一个特别有意思的问题
使用Canvas来在屏幕上贴图,其中使用到UTexture2D,如果UTexture2D是从本地硬盘中加载的,运行十几秒中,程序会自动崩溃,见截图。
经过反复测试:
(1)切换到Wiget来加载纹理,没有用
(2)修改纹理大小,没有用
后来请教高人,得到解决:
(1)UTexture2D变量加上UPROPERTY()
(2)创建UTexture2D要放在Render线程
解释:
(1)加上UPROPERTY让UE来监控UTexture2D变量有没有被使用。如果没有被使用,则会里面被释放掉。没有加的话,但是它又是U类型变量,如果不设定UE监控它,它很快就被释放掉。
(2)Texture-》UpdateResource需要放置在Render线程
总结:
(1)以后如果遇到崩溃运行后崩溃的问题,优先要考虑到变量是否被释放掉,线程是否安全。