UE_C++ —— TSubclassOf

        

        TSubclassOf 是提供 UClass 类型安全的模板类;如在创建一个投射物类,允许设计者指定伤害类型,可只创建一个 UClass 类型的 UPROPERTY,让设计者指定派生自 UDamageType 的类,或者可使用 TSubclassOf 模板强制要求此选择;

//可选择任意 Uclass
/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=Damage)
UClass* DamageType;
//模板类告知编辑器的属性窗口只列出派生自 UDamageType 的类(作为属性选择)
/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=Damage)
TSubclassOf<UDamageType> DamageType;

        除 UPROPERTY 安全外,还能获得 C++ 层级上的类型安全;如尝试进行不兼容 TSubclassOf 类型的相互指定,将出现编译错误;尝试指定泛型 UClass 时,它将执行一个运行时检查,以确定是否能指定;如运行时检查失败,结果数值为 nullptr;

UClass* ClassA = UDamageType::StaticClass();

TSubclassOf<UDamageType> ClassB;

ClassB = ClassA; // Performs a runtime check

TSubclassOf<UDamageType_Lava> ClassC;

ClassB = ClassC; // Performs a compile time check

### 关于 Unreal Engine 中的点击事件处理 在 Unreal Engine 中,`onclick` 或类似的交互行为通常通过蓝图(Blueprints)或 C++ 来实现。以下是有关如何在 Unreal Engine 中处理点击事件的相关信息: #### 使用蓝图处理点击事件 Unreal Engine 提供了一个强大的可视化脚本系统——蓝图,可以轻松设置对象的点击响应逻辑。要创建一个点击事件处理器,可以通过以下方式完成[^1]: - 添加 `OnClicked` 事件到 UI 元素上。 - 将该事件连接至其他节点以定义点击后的操作。 对于世界中的 Actor 而言,则需启用输入组件并绑定相应的函数来检测鼠标点击位置以及判断是否命中目标物体[^2]。 #### 利用C++代码自定义点击功能 如果开发者倾向于编程控制而非图形化界面配置的话,在C++端同样能够实现更为灵活的功能扩展。例如监听特定按键组合下的左键单击动作,并执行预设指令集等复杂任务都可以借助重写虚方法或者新增独立回调机制达成目的[^3]。 ```cpp // Example of setting up input bindings within your character class header file (.h) UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Input") TSubclassOf<UUserWidget> MenuClass; UFUNCTION() void OnInteractButtonPressed(); protected: virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; ``` 上述片段展示了怎样声明一个新的按钮按下触发器及其关联的动作映射设定过程的一部分;当实际应用时还需要考虑更多细节比如参数传递方向等问题。 综上所述,无论是采用直观易懂的方式还是深入源码定制专属解决方案,Unreal Engine 都提供了充分的支持让用户自由发挥创意构建互动性强的应用程序环境。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值