随笔分类 - UE4 主线日志
主要用于常用开发知识点记录,包括C++、蓝图、动画等模块
摘要:基于UGameplayStatics 获取运行时间 /** Returns the frame delta time in seconds, adjusted by time dilation. */ UFUNCTION(BlueprintPure, Category = "Utilities|Ti
阅读全文
摘要:切换关卡 基于 UGameplayStatics:: OpenLevel UGameplayStatics::OpenLevel(GetWorld(), TEXT("NewMap")); OpenLevelBySoftObjectPtr FSoftObjectPath NewMapPath(TEXT
阅读全文
摘要:获取 Actor TActorIterator 遍历 可以用于遍历 Actor,也可以用于遍历 Component for (TActorIterator<AStaticMeshActor> ActorIter(GetWorld()); ActorIter; ++ActorIter) { UKism
阅读全文
摘要:World.h 库里的 Trace API Trace模式 TraceSingle 单个结果 TraceMulti 多个结果 Trace 的检测依据 ByChanne ByObjectType ByProfile LineTraceSingleByChannel 由于一般不使用 World 里的Tr
阅读全文
摘要:概念 碰撞对象通道与预设 默认提供碰撞对象类型,如 WorldStatic、WorldDynamic等。允许用户自定义 默认提供碰撞预设,如 NoCollision、BloackAll、OverlapAll。允许用户自定义 碰撞响应设置 可以用来设置是否模拟物理碰撞以及触发 Overlap 事件 碰
阅读全文
摘要:概念 定时执行操作,可执行一次,或循环执行直到手动终止 定时器在全局定时器管理器(FTimerManager 类型)中管理。全局定时器管理器存在于 游戏实例 对象上以及每个 场景 中 定时器需要绑定委托或函数,作为执行体。这些函数将填充 FTimerHandle 定时器句柄 FTimerHandle
阅读全文
摘要:// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/ObjectMacros.h" #include "UObject/Object.h"
阅读全文
摘要:// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/Script.h" #include "UObject/ObjectMacros.h"
阅读全文
摘要:// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/ObjectMacros.h" #include "UObject/Object.h"
阅读全文
摘要:播放声音 PlaySoundAtLocation() USoundCue* HitSound = LoadObject<USoundCue>(this, TEXT("SoundCue'/Game/Demo_Drone/Sound/explore_Cue.explore_Cue'")); if (Hi
阅读全文
摘要:Actor的生成与销毁 创建Actor实例 UClass* TSubclassOf<T> SpawnActor() UPROPERTY(EditAnywhere, Category = "init") UClass* bullet0; // 取类 UPROPERTY(EditAnywhere, Ca
阅读全文
摘要:UObject 的创建 NewObject 模板类 本例使用 UE 4.26,只剩下 NewObject 用来创建 UObject,提供两个带不同可选参数构造函数的模板类 Outer 表示这个对象的外部对象,通常可传 this 指针进去 Name 为对象名,如果没有自定义,默认生成,自带 GetNa
阅读全文
摘要:基本概念 UE4 对 UObject 对象提供垃圾回收 UE4 对原生对象不提供垃圾回收,需要手动进行清理 方式 malloc / free new / delete new与malloc的区别在于,new在分配内存完成之后会调用构造函数。 缺点 如果不及时清理,则会占用内存,或者导致内存泄漏 如果
阅读全文
摘要:源码下载 git clone git clone https://github.com/20tab/UnrealEnginePython 直接下载zip https://github.com/20tab/UnrealEnginePython 编译 新建C++ UE4工程 拷贝文件夹到Plugin/U
阅读全文
摘要:概念 AsyncTask AsyncTask 系统是一套基于线程池的异步任务处理系统。每创建一个AsyncTas,都会被加入到线程池中进行执行 AsyncTask 泛指 FAsyncTask 和 FAutoDeleteAsyncTask,一般声明为友元函数,FNonAbandonableTask 派
阅读全文
摘要:概述 TaskGraph 系统是UE4一套抽象的异步任务处理系统 TaskGraph 可以看作一种”基于任务的并行编程“设计思想下的实现 通过TaskGraph ,可以创建任意多线程任务, 异步任务, 序列任务, 并行任务等,并可以指定任务顺序, 设置任务间的依赖, 最终形成一个任务图, 该系统按照
阅读全文
摘要:概述 UE4里,提供的多线程的方法: 继承 FRunnable 接口创建单个线程 创建 AsyncTask 调用线程池里面空闲的线程 通过 TaskGraph 系统来异步完成一些自定义任务 支持原生的多线程 std::thread 在GameThread线程之外的其他线程中 不要 spawning
阅读全文
摘要:一般先跳转到一个临时的关卡,然后异步加载目标关卡,同时展示Loading界面 对于含有流关卡的目标关卡,可以先载入子关卡 蓝图异步加载 无进度条 C++ 异步加载关卡 LoadPackageAsync bool bIsLoaded; UPROPERTY() FString LoadPackagePa
阅读全文
摘要:同步加载 同步加载会造成进程阻塞。 FObjectFinder / FClassFinder 在构造函数加载 ConstructorHelpers::FObjectFinder ConstructorHelpers::FClassFinder 参考 【UE4 C++ 基础知识】<10>资源的引用 L
阅读全文
摘要:2种引用方式 硬引用(Hard Reference) 即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载 硬引用过多会导致运行时很多暂时用不到的资源也被加载到内存中 大量资源会导致进程阻塞,致使程序情动事件过长 用不大的资源也在内存中,会占用内存 软引用(Soft Reference)
阅读全文