From 27d9efc337e0504c201aee3a4d615769d0502a60 Mon Sep 17 00:00:00 2001 From: sigaohe <750831855@qq.com> Date: Tue, 7 Jan 2025 09:51:06 +0800 Subject: [PATCH] fixbug --- src/unreal/assets/testactor2.png | Bin 0 -> 54099 bytes .../1-Gameplay.md" | 20 ++-- .../11-Getactorofclass.md" | 96 +----------------- .../5-UPROPERTY.md" | 96 ++++++++++++++++++ 4 files changed, 109 insertions(+), 103 deletions(-) create mode 100644 src/unreal/assets/testactor2.png diff --git a/src/unreal/assets/testactor2.png b/src/unreal/assets/testactor2.png new file mode 100644 index 0000000000000000000000000000000000000000..3750a2ae4a761cd377a3756a342cca4e27ef7aa5 GIT binary patch literal 54099 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
  • R2)#ZpRxvLJS_*h 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 -记不住根本记不住!这里BABA推荐我看蓝图节点对应CPP的探索与解析 +记不住根本记不住! @@ -320,7 +320,7 @@ Baba我不知道什么叫宏耶! `宏(英语:Macro),是一种批量处理的称谓。 计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。 -解释器或编译器在遇到宏时会自动进行这一模式替换。——wiki` 具体的宏标记请[阅读我的](./doc_文档_/macro.html) +解释器或编译器在遇到宏时会自动进行这一模式替换。——wiki` ### UHT|Unreal Header Tool(虚幻头文件工具) @@ -541,12 +541,12 @@ void UTEST::TESTFUNC() |---------------------------| | **[ 知乎大钊](https://www.zhihu.com/people/fjz13)**| -| 课程名 | 类型 | 链接 | -|-----------------------------------|-------|----------------------------------------------------------------------------------------| -| 2023最新版C++ | C++基础 | [链接](https://www.bilibili.com/video/BV1eL41187JS/?spm_id_from=333.999.0.0&vd_source=fc61eb54bf3245afbff2be6b8c1ebfc2) | -| 【Cherno C++】 | C++基础 | [链接](https://www.bilibili.com/video/BV1fP4y1w7iE/?spm_id_from=333.999.0.0) | -| 为游戏编程学习C++ | C++基础 | [链接](https://www.bilibili.com/video/BV1Dd4y1R7VS/?spm_id_from=333.999.0.0) | -| 黑马程序员匠心之作|C++教程 | [链接](https://www.bilibili.com/video/BV1et411b73Z?t=94.0&p=95 ) | -| 字节跳动最新打造的C++教程 | C++基础 | [链接](https://www.bilibili.com/video/BV1ps4y1k7d7/?spm_id_from=333.999.0.0) | -| Udemy宝藏数据结构与算法课 | C++算法 | [链接](https://www.bilibili.com/video/BV1Ba411Y71K/?spm_id_from=333.337.top_right_bar_window_custom_collection.content.click) | +| 课程名 | 类型 | 链接 | +|-----------------|-------|-----------------------------------------------------------------------------------------------------------------------------| +| 2023最新版C++ | C++基础 | [链接](https://www.bilibili.com/video/BV1eL41187JS/?spm_id_from=333.999.0.0&vd_source=fc61eb54bf3245afbff2be6b8c1ebfc2) | +| 【Cherno C++】 | C++基础 | [链接](https://www.bilibili.com/video/BV1fP4y1w7iE/?spm_id_from=333.999.0.0) | +| 为游戏编程学习C++ | C++基础 | [链接](https://www.bilibili.com/video/BV1Dd4y1R7VS/?spm_id_from=333.999.0.0) | +| 黑马程序员匠心之作 | C++教程 | [链接](https://www.bilibili.com/video/BV1et411b73Z?t=94.0&p=95 ) | +| 字节跳动最新打造的C++教程 | C++基础 | [链接](https://www.bilibili.com/video/BV1ps4y1k7d7/?spm_id_from=333.999.0.0) | +| Udemy宝藏数据结构与算法课 | C++算法 | [链接](https://www.bilibili.com/video/BV1Ba411Y71K/?spm_id_from=333.337.top_right_bar_window_custom_collection.content.click) | diff --git "a/src/unreal/function[\345\207\275\346\225\260]/11-Getactorofclass.md" "b/src/unreal/function[\345\207\275\346\225\260]/11-Getactorofclass.md" index f99bd64a..4da7997f 100644 --- "a/src/unreal/function[\345\207\275\346\225\260]/11-Getactorofclass.md" +++ "b/src/unreal/function[\345\207\275\346\225\260]/11-Getactorofclass.md" @@ -184,105 +184,15 @@ void UGameplayStatics::GetAllActorsOfClass(const UObject* WorldContextObject, TS ### 问题 -为什么一开始就清空了数组,我也没见到节点有传入数组啊?
    +DeterminesOutputType和DynamicOutputParam作用是啥?
    - -你注意UFUNCTION宏meta(元数据)的描述了吗? - - -`DeterminesOutputType` 和 `DynamicOutputParam` 是 UFUNCTION 宏的元数据,用于在蓝图中更好地处理输出参数的类型。 - -1. **`DeterminesOutputType`:** - - 当指定了 `DeterminesOutputType` 元数据时,它表示函数的输出参数类型是由函数的实现决定的,而不是由函数声明时指定的。这对于一些动态生成输出类型的函数非常有用。 - -2. **`DynamicOutputParam`:** - - 当指定了 `DynamicOutputParam` 元数据时,它表示函数的输出参数是动态生成的,而不是静态指定的。在函数签名中,你可以看到这个参数被标记为 `&OutActors`,这就是动态输出参数的示例。 - - -那么这个节点会强制变成输出节点吗?比如我加了const修饰。 - - - -测试一下不就行了! - - -```cpp - //没用const限定 - UFUNCTION(BlueprintCallable, Category="Actor", meta=( DynamicOutputParam="OutActors")) - static void TestFun(TArray& OutActors); - -void UTEST::TestFun(TArray& OutActors) -{ -//测试使用,实际开发别用哦 - AActor* Actor2 = nullptr; - OutActors.Add(Actor2); - OutActors.Add(Actor2); - int Num = OutActors.Num(); - GEngine->AddOnScreenDebugMessage(1, 5.0f, FColor::White, FString::FromInt(Num), true, FVector2D(1, 1)); -} - - //const限定 - UFUNCTION(BlueprintCallable, Category="Actor" ,meta=(DynamicOutputParam="OutActors")) - static void TestFun2(const TArray& OutActors); - void UTEST::TestFun2( const TArray& OutActors) -{ - int Num = OutActors.Num(); - GEngine->AddOnScreenDebugMessage(1, 5.0f, FColor::White, FString::FromInt(Num), true, FVector2D(1, 1)); -} -``` - -![](..%2Fassets%2Fconstwithoutconst.png) - - -测试结果看来const修饰后会将数组变成输入节点。 - - - -没错,而且我们测试代码中给2个空指针到这个指针数组中,测试结果也是打印2. - - -![](..%2Fassets%2Fwss.png) - - -const修饰后数组变成只读,需要我们自己传入数据。 - - -![](..%2Fassets%2Fxd.png) - - -const强制变成只读这没毛病,但动态生成我还是抱有怀疑态度,如果我们去掉DynamicOutputParam呢?还会打印2吗? - - -```cpp -//没有meta -UFUNCTION(BlueprintCallable, Category="Actor") -static void TestFun3(TArray& OutActors); - -void UTEST::TestFun3(TArray& OutActors) -{ -//测试使用,实际开发别用哦 - AActor* Actor2 = nullptr; - OutActors.Add(Actor2); - OutActors.Add(Actor2); - int Num = OutActors.Num(); - GEngine->AddOnScreenDebugMessage(1, 5.0f, FColor::White, FString::FromInt(Num), true, FVector2D(1, 1)); -} -``` + -![](..%2Fassets%2Fyjsc.png) +具体跳转到 [UPROPERTY宏标记](../function_函数_/5-UPROPERTY.html#DeterminesOutputType) 里面有具体的介绍 - -居然还是可以!看来系统自动帮我们初始化了一个指针数组。 - -结论: - -1. const 限定优先级更高。 -2. DynamicOutputParam 确实帮我们动态生成了一个对象,但即使不加也会主动尝试生成。 - - ## 其他问题 ### `getactorofclass`vs`Cast` diff --git "a/src/unreal/function[\345\207\275\346\225\260]/5-UPROPERTY.md" "b/src/unreal/function[\345\207\275\346\225\260]/5-UPROPERTY.md" index 94815c9c..88324d54 100644 --- "a/src/unreal/function[\345\207\275\346\225\260]/5-UPROPERTY.md" +++ "b/src/unreal/function[\345\207\275\346\225\260]/5-UPROPERTY.md" @@ -156,6 +156,100 @@ public: int32 EditDefaultsOnlyNumber; ``` +## DeterminesOutputType + +>动态输出类型 + + +你有没有注意过一个细节:官方的GetActorOfClass节点给输入一个ActorClass,能返回对应的Actor对象,但这个Actor不是Actor*而是对应的派生类? +就比如下图的角色类。 + + +![](..%2Fassets%2Ftestactor2.png) + + +```cpp +UFUNCTION(BlueprintCallable, Category="Actor", meta=(WorldContext="WorldContextObject", DeterminesOutputType="ActorClass")) + static ENGINE_API class AActor* GetActorOfClass(const UObject* WorldContextObject, TSubclassOf ActorClass); + +AActor* UGameplayStatics::GetActorOfClass(const UObject* WorldContextObject, TSubclassOf ActorClass) +{ + QUICK_SCOPE_CYCLE_COUNTER(UGameplayStatics_GetActorOfClass); + + // We do nothing if no is class provided + if (ActorClass) + { + if (UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull)) + { + for (TActorIterator It(World, ActorClass); It; ++It) + { + AActor* Actor = *It; + return Actor; + } + } + } + + return nullptr; +} +``` + + +我靠!我有一个维护各种策略的子系统。实际使用中往往需要输出对应的策略派生类。虽然C++可以使用模板,但用了模板后蓝图里就没法玩了。 + + +```cpp +UDataStrategyBase* UUserDataSubsystem::FindDataStrategy(FName StrategyName) +{ + UDataStrategyBase* StrategyInstance = RegisteredStrategies.FindRef(StrategyName); + return StrategyInstance; +} +``` + + + +是的,我们虽然可以用模板来应对C++开发者,但蓝图中显得不够智能了,每次都要手动Cast,因此才需要我们今天的主角` DeterminesOutputType` + + + +> 首先当然是C++的T模板 + +```cpp + +template +T* UUserDataSubsystem::FindDataStrategyAs(FName StrategyName) +{ + UDataStrategyBase* BaseInstance = FindDataStrategy(StrategyName); + return Cast(BaseInstance); // 直接通过Cast返回派生类指针 +} + +``` +> 其次是蓝图节点的改造,通过`DeterminesOutputType` + +```cpp + +public: + + UFUNCTION(BlueprintCallable, Category="DataStrategy", meta = (DeterminesOutputType = "StrategyClass")) + UDataStrategyBase* FindDataStrategyByClass(FName StrategyName, TSubclassOf StrategyClass) + { + UDataStrategyBase* StrategyInstance = FindDataStrategy(StrategyName); + + if (StrategyInstance && StrategyInstance->IsA(StrategyClass)) + { + return StrategyInstance; + } + + return nullptr; + } + + //将UDataStrategyBase* FindDataStrategy(FName StrategyName);移到私有 + +private: + UDataStrategyBase* FindDataStrategy(FName StrategyName); + +``` + + ## Category @@ -245,6 +339,8 @@ UPROPERTY(EditAnywhere, meta=(EditCondition="bCanFly", Units="s")) ![](..%2Fassets%2FInlineEditConditionToggle.png) + + ### 更多参考 - [官方文档](https://docs.unrealengine.com/5.2/zh-CN/unreal-engine-uproperties/)