使用UTexture2D进行绘制,运行十几秒后,出现崩溃及其解决方法

遇到一个特别有意思的问题

使用Canvas来在屏幕上贴图,其中使用到UTexture2D,如果UTexture2D是从本地硬盘中加载的,运行十几秒中,程序会自动崩溃,见截图。



经过反复测试:

(1)切换到Wiget来加载纹理,没有用

(2)修改纹理大小,没有用

后来请教高人,得到解决:

(1)UTexture2D变量加上UPROPERTY()

(2)创建UTexture2D要放在Render线程

解释:

(1)加上UPROPERTY让UE来监控UTexture2D变量有没有被使用。如果没有被使用,则会里面被释放掉。没有加的话,但是它又是U类型变量,如果不设定UE监控它,它很快就被释放掉。

(2)Texture-》UpdateResource需要放置在Render线程

总结:

(1)以后如果遇到崩溃运行后崩溃的问题,优先要考虑到变量是否被释放掉,线程是否安全。

猜你喜欢

转载自blog.csdn.net/luofeixiongsix/article/details/80136467
今日推荐