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

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

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



经过反复测试:

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

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

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

(1)UTexture2D变量加上UPROPERTY()

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

解释:

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

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

总结:

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值