UE4 TWeakObjectPtr 相关杂谈

本文探讨了UE4中的TWeakObjectPtr<>及其与垃圾回收(GC)的关系。通过示例代码展示了TWeakObjectPtr作为弱引用如何避免循环引用,并防止不必要的内存泄漏。文章指出,UPROPERTY是强引用,会阻止GC,而TWeakObjectPtr在对象被GC后会自动置为空。文中通过一个复杂场景举例,说明了在特定情况下检查IsPendingKillPending()的必要性,以及在网络同步环境中排查此类问题的困难。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UE4 TWeakObjectPtr<>相关杂谈


前言

  • 因为某端游毒奶粉 又出新的角色了, 要肝 最近有点杂事, 所以很多计划都鸽子了, 计划就是用来鸽子的, 笑.
  • 所以有了这篇水字数的 文章, 当作这段时间鸽子的交代吧
  • 因为GC相关很复杂, 也没有能力深入研究, 所以, 也就这个样子了.
  • 文章吐槽大于其他, 不过这个bug, 无奈的笑.

核心

  • FReferenceCollector

Helper class used by the garbage collector to collect object references.
Object的垃圾回收帮助类, 可以参考这个理解, 但没有写任何相关的

  • TWeakObjectPtr<>
  • UPROPERTY()

正文

测试代码如下

	// .h
	virtual void BeginPlay() override;
	
	UPROPERTY(BlueprintReadOnly)
	class AActor* Test;
	
	TWeakObjectPtr<AActor> Test2;
	
	UPROPERTY(BlueprintReadOnly)
	class AActor* Test3;
	
	// .cpp
	void AGUAO_CPlusPlusCodeGameModeBase::BeginPlay()
	{
		Super::BeginPlay();
		
		AActor* TempActor = GetWo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值