当前位置: 首页> 房产> 建材 > 表白网页在线生成网站_深圳影视广告公司_阿里指数数据分析平台_培训机构网站制作

表白网页在线生成网站_深圳影视广告公司_阿里指数数据分析平台_培训机构网站制作

时间:2025/7/15 1:29:56来源:https://blog.csdn.net/ChaoChao66666/article/details/144734021 浏览次数:0次
表白网页在线生成网站_深圳影视广告公司_阿里指数数据分析平台_培训机构网站制作

效果

 通过在关卡蓝图中触发GameInstanceSubsystem包含的委托,来触发所有绑定到这个委托的事件,从而实现跨蓝图通信。

步骤

1. 新建一个C++类

这里命名为“SubsystemAndDelegate”

 

引入GameInstanceSubsystem.h,让“SubsystemAndDelegate”继承“UGameInstanceSubsystem”

添加如下代码,让反射系统识别 USubsystemAndDelegate类

声明了一个名为 FSubsystemActorLocation 的动态多播委托类型,该委托类型带有两个参数

再添加一个蓝图可访问的函数“CallLocation”用于调用委托

实现函数“CallLocation”,通过Broadcast触发委托SubsystemActorLocationDelegate

完整头文件代码:

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "Subsystems/GameInstanceSubsystem.h"#include "SubsystemAndDelegate.generated.h"DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FSubsystemActorLocation, FString, InActionName, int32, InActionIndex);UCLASS()
class STUDY_API USubsystemAndDelegate : public UGameInstanceSubsystem
{GENERATED_BODY()public:UFUNCTION(BlueprintCallable)void CallLocation(FString InActionName, int32 InActionIndex);UPROPERTY(BlueprintAssignable)FSubsystemActorLocation SubsystemActorLocationDelegate;
};

 源文件:

#include "Subsystem/SubsystemAndDelegate.h"void USubsystemAndDelegate::CallLocation(FString InActionName, int32 InActionIndex)
{SubsystemActorLocationDelegate.Broadcast(InActionName, InActionIndex);
}

2. 编译后,新建一个actor蓝图类,这里命名为“BP_WorkActor”,然后将其拖入场景中

打开“BP_WorkActor”,在事件图表中通过“USubsystemAndDelegate”的委托“SubsystemActorLocationDelegate”来绑定委托事件

3. 在关卡蓝图中通过按下1键调用子系统的函数“CallLocation”,从而触发委托绑定的自定义事件

运行效果如下,可以看到按下1键成功触发委托绑定的打印事件

关键字:表白网页在线生成网站_深圳影视广告公司_阿里指数数据分析平台_培训机构网站制作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: