UE4C++项目太大时应该这么做(_杰森大师)

本文介绍如何清除C++编译过程中产生的Binaries和Intermediate文件,以释放内存空间。删除这些文件虽然会导致下次编译速度减慢,但有助于管理项目资源。文章提供了具体操作步骤,包括如何通过 uproject 文件夹重新生成所需文件。

当你用C++编译时,会产生一堆文件占据你的内存,你需要对其删除,删除会造成你下次编译时会很慢,因为他要写入一些储存数据或者配置

在这里插入图片描述
Binaries,二进制文件
Intermediate,中间文件夹,当你在项目中点击保存或者构建时会产生一些中间文件
这两者都可删除,删除后.uproject项目文件夹右键Switch Unreal Engine Vision点击当前源码版本
这会生成中间文件夹,然后uproject项目文件夹右键Open生成二进制文件夹

### UE4 C++ `WITH_EDITOR` 宏使用指南 #### 什么是 `WITH_EDITOR` `WITH_EDITOR` 是一个条件编译宏,在编辑器构建中定义,而在游戏运行未定义。这使得开发者能够在编辑器环境中添加特定功能而不影响最终产品的性能或增加不必要的开销。 当希望某些代码仅在编辑器模式下有效而不在打包后的游戏中存在,可以利用此宏来包裹这些部分的逻辑[^2]。 #### 如何使用 `WITH_EDITOR` 为了确保代码只在编辑器环境下工作,应该将依赖于编辑器环境的部分放在如下结构内: ```cpp #if WITH_EDITOR // 编辑器专属代码 #endif // WITH_EDITOR ``` 这种法有助于避免因平台差异而导致的问题,并保持项目整洁有序。 #### 实际应用案例 下面是一个简单的例子展示如何运用 `WITH_EDITOR` 来区分不同场景下的行为: 假设有一个自定义 Actor 类 `MyCustomActor`, 希望其能够根据是否处于编辑状态下显示不同的调试信息,则可以在头文件 (.h) 中这样声明变量和函数: ```cpp #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "MyCustomActor.generated.h" UCLASS() class MYPROJECT_API AMyCustomActor : public AActor { GENERATED_BODY() public: AMyCustomActor(); protected: virtual void BeginPlay() override; private: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Debug Info") bool bIsInEditorMode; }; ``` 接着,在源文件 (.cpp) 中实现具体的行为: ```cpp #include "MyCustomActor.h" #include "Engine/World.h" AMyCustomActor::AMyCustomActor() { bIsInEditorMode = false; // 默认设置为非编辑状态 #if WITH_EDITOR bIsInEditorMode = true; // 如果是在编辑器里则开启标志位 #endif } void AMyCustomActor::BeginPlay() { Super::BeginPlay(); if (bIsInEditorMode) { UE_LOG(LogTemp, Log, TEXT("This actor is being used within the editor.")); } else { UE_LOG(LogTemp, Log, TEXT("This actor has been spawned during gameplay.")); } } ``` 这段代码展示了怎样通过 `WITH_EDITOR` 控制程序的不同表现形式——即在编辑期间提供额外的日志输出用于调试目的;而在实际游玩过程中不会触发这部分日志记录。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值