Преглед изворни кода

refactor: 拆分功能到不同文件

nicetry12138 пре 1 година
родитељ
комит
613ca06d4c
2 измењених фајлова са 46 додато и 49 уклоњено
  1. 44 0
      UE5/引擎开发记录/异步节点.md
  2. 2 49
      UE5/引擎开发记录/蓝图模板函数.md

+ 44 - 0
UE5/引擎开发记录/异步节点.md

@@ -0,0 +1,44 @@
+# 异步节点
+
+自定义蓝图异步节点,最简单的方式是继承 `UBlueprintAsyncActionBase`
+
+使用 `UFUNCTION` 定义一个 `BlueprintCallable` 的 `static` 函数作为入口函数
+
+使用 `DELETAGE` 定义回调事件,作为出口节点,事件的参数就是节点的返回值
+
+```cpp
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRequestGPUInfoSuccess, int, Level);
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRequestGPUInfoFail, int, Level);
+
+UCLASS(meta = (HideThen = true))
+class GPUINFO_API UGetGpuInfo : public UBlueprintAsyncActionBase
+{
+	GENERATED_BODY()
+
+public:
+	UPROPERTY(BlueprintAssignable)
+	FOnRequestGPUInfoSuccess OnSuccess;
+	
+	UPROPERTY(BlueprintAssignable)
+	FOnRequestGPUInfoFail OnFail;
+	
+	UFUNCTION(BlueprintCallable, meta=( BlueprintInternalUseOnly="true", WorldContext = "InWOrldContext", DisplayName = "AsyncGetGpuInfo"))
+	static UGetGpuInfo* CreateAsyncNode(UObject* InWorldContext, const FString& URL);
+}
+```
+
+![](Image/001.png)
+
+> `UCLASS(meta = (HideThen = true))` 隐藏了默认的 `Then` 引脚
+
+```cpp
+UGetGpuInfo* UGetGpuInfo::CreateAsyncNode(UObject* InWorldContext, const FString& URL)
+{
+	UGetGpuInfo* DownloadTask = NewObject<UGetGpuInfo>();
+	DownloadTask->Start(URL);
+	return DownloadTask;
+}
+```
+
+直接在 `static` 入口函数中创建对象,然后执行对应启动函数即可,在合适的时候 `Broadcast` 对应的事件即可
+

+ 2 - 49
UE5/引擎开发记录/README.md → UE5/引擎开发记录/蓝图模板函数.md

@@ -1,6 +1,4 @@
-# 引擎开发记录
-
-## CustomChunk
+# CustomChunk
 
 在计算机编程中,`Thunk` 是一个特殊的函数,其主要目的是延迟计算或调用,将一个多参数函数转换为一个单参数的延迟执行版本
 
@@ -123,49 +121,4 @@ DEFINE_FUNCTION(UJsonBlueprintFunctionLibrary::execGetField)
 
 - `P_FINISH`: 宏之前为获取函数参数的代码块
 - `P_NATIVE_BEGIN` 和 `P_NATIVE_END` : 宏包裹着真正执行该函数功能的被调用函数,若是泛型蓝图节点,此处调用该函数的泛型版本(泛型函数)
-- `RESULT_PARAM`: 表示函数返回值
-
-## 异步节点
-
-自定义蓝图异步节点,最简单的方式是继承 `UBlueprintAsyncActionBase`
-
-使用 `UFUNCTION` 定义一个 `BlueprintCallable` 的 `static` 函数作为入口函数
-
-使用 `DELETAGE` 定义回调事件,作为出口节点,事件的参数就是节点的返回值
-
-```cpp
-DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRequestGPUInfoSuccess, int, Level);
-DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnRequestGPUInfoFail, int, Level);
-
-UCLASS(meta = (HideThen = true))
-class GPUINFO_API UGetGpuInfo : public UBlueprintAsyncActionBase
-{
-	GENERATED_BODY()
-
-public:
-	UPROPERTY(BlueprintAssignable)
-	FOnRequestGPUInfoSuccess OnSuccess;
-	
-	UPROPERTY(BlueprintAssignable)
-	FOnRequestGPUInfoFail OnFail;
-	
-	UFUNCTION(BlueprintCallable, meta=( BlueprintInternalUseOnly="true", WorldContext = "InWOrldContext", DisplayName = "AsyncGetGpuInfo"))
-	static UGetGpuInfo* CreateAsyncNode(UObject* InWorldContext, const FString& URL);
-}
-```
-
-![](Image/001.png)
-
-> `UCLASS(meta = (HideThen = true))` 隐藏了默认的 `Then` 引脚
-
-```cpp
-UGetGpuInfo* UGetGpuInfo::CreateAsyncNode(UObject* InWorldContext, const FString& URL)
-{
-	UGetGpuInfo* DownloadTask = NewObject<UGetGpuInfo>();
-	DownloadTask->Start(URL);
-	return DownloadTask;
-}
-```
-
-直接在 `static` 入口函数中创建对象,然后执行对应启动函数即可,在合适的时候 `Broadcast` 对应的事件即可
-
+- `RESULT_PARAM`: 表示函数返回值