16周 5.1 代理
酷酷方画笔
发布于2026-10-19 11:20:43
代理分类: 代理(常规代理)和动态代理 1.代理(常规代理) 特点:在C++中构建只能用于C++的代理 分类:单播和多播 单播:一对一的关系,一个对象只能代理一个通知;可以代理带有返回值的通知(函数) 多播:一对多的关系,一个对象可以代理多个通知 理带有返回值的通知(函数)
2.动态代理 特点:具备反射关系,可以反射给虚幻引擎使用(也就是可以被序列化) 分类: 2.1动态单播:一对一的关系,一个对象只能代理一个通知;不能在蓝图中使用;可以代理带有返回值的通知(函数) 2.2动态多播:一对多的关系,一个对象可以代理多个通知;不能代理带有返回值的通知(函数);在瑨托蓝图中使用
单播代理宏 DECLARE_DELEGATE(DelegateTestFirstName) 代理的通知必须是无参无返回值 DECLARE_DELEGATE_TwoParams(DelegateTestSecondName,int32,FString) 代理的通知必须是无返回值,参数为int32和FString
1.创建代理类型(一般在头文件类上方创建) DECLARE_DELEGATE(DelegateTestFirstName) 代理类型为DelegateTestFirstName 2.根据代理类型实例化代理对象(一般在头文件类内创建) DelegateTestFirstTime DTFN;
3.绑定代理通知(一般在BeginPlay方法中实现) DTFN.BindUObject(this,&ASnakeGameModeBase::Test1); 4.找到事件,执行代理通知(执行回调函数) if(DTFN.IsBound()){ DTFN.Execute(); }
0
相关笔记
-
0个点赞
-
0个点赞
-
0个点赞
-
0个点赞
-
0个点赞

