【UE4】TSubclassOf的使用

2023-11-13

TSubclassOf

TSubclassOf 是提供 UClass 类型安全性的模板类。例如您在创建一个投射物类,允许设计者指定伤害类型。您可只创建一个 UClass 类型的 UPROPERTY,让设计者指定派生自 UDamageType 的类;或者您可使用 TSubclassOf 模板强制要求此选择。以下示例代码展示了不同之处:

/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=Damage)
UClass* DamageType;

Vs.

/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=Damage)
TSubclassOf<UDamageType> DamageType;

在第二个声明中,模板类告知编辑器的属性窗口只列出派生自 UDamageType 的类(作为属性选择)。在第一个声明中可选择任意 UClass。下图对此进行了说明。

image alt text

策略游戏投射物蓝图的范例

除 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【UE4】TSubclassOf的使用 的相关文章

  • Niagara官方示例笔记 - 盘点自带重要模块

    Emitter State life cycle生命周期控制 发射器选择system 所有发射器都在system的state里设置生命周期 选择self 发射器独立控制 可以给发射器创建不同类型变量 使用set parameter模块计算
  • UE4的SpawnActor问题

    1 SpawnActor传参 做项目过程中发现先SpawnActor再传参会先运行 生成的Actor的BeginPlay然后才进行传参 可是我在BeginPlay时就需要用到参数做操作了 发生情况时代码如下 if BaseCharactor
  • UE4 跑酷游戏-得分机制

    得分机制 1 这次我们要做的是得分 根据人物跑过的地板来得取分数 首先进入我们的第三人称游戏模式里面 创建一些变量 2 退出第三人称游戏模式后 进入主地板蓝图后 在销毁地板之前写读取人物跑i过地板块数进行得分
  • 【UE4】【C++】PlayerController、AIController获取玩家对应的Pawn

    先创建一个基本的C 类 Tank 因为要对Tank进行各种操作 移动 寻找目标 所以选择了Pawn类型 PlayerController 再创建一个C 类 TankPlayerController 用以控制玩家操作的对象 Tank 创建好后
  • 想用好虚幻4引擎做游戏,你需要避免这些扰人的坑(备忘)

    在手游品质越发上扬的如今 已经有不少厂商开始使用一些性能更好的引擎 去尝试游戏制作了 而虚幻4引擎 以下简称UE4 就是其中之一 在这款引擎中已经诞生了诸如 铁拳7 地狱之刃 帕拉贡 等一系列大作 对玩家而言 这些作品都是不折不扣的视觉盛宴
  • UE4 导航网格的使用

    在使用导航网格前 应先设置项目导航系统支持的导航代理者 Agents 在项目设置中 找到导航系统页面 DirtyAreasUpdateFreq 表示导航网格变化时 检测变化并更新的频率 这里可以设置导航系统的一些参数 包括是否允许客户端导航
  • UE4学习日记——蓝图中的各种颜色代表什么

    节点类型颜色 白色 执行线 蓝色 调用的函数或事件 暗蓝色 结构体 草绿色 流程切换 绿色 纯函数 通常用于获取什么 青色 试着对象转换 紫色 函数定义 灰色 宏 红色 事件的定义 土黄色 时间轴 数据类型颜色 白色线条 执行线 程序的执行
  • UE4_Python编写,Pycharm智能提示API

    1 按照教程配置环境 在对应的目录下会有一个unreal py 的文件 把它粘贴到对应的Python的项目目录 2 因为Pycharm 的py 文件 默认支持的智能提示是 the file size 10 5mb exceeds confi
  • 【UE4】多视角相机捕获图像如何同屏拼接在一起

    前段时间有个Demo移植的需求 需要把实时裸眼3D多视角立体显示的Unity版本移植到UE4 主要包含后处理Shader 相机矩阵变换 多视角画面平铺拼接三大部分 10 10 多视角相机捕获图拼接效果 对现有的多窗口显示方法进行查阅后 发现
  • ue4中Pak文件中挂载的资源名称获取

    在pak文件中 会挂接很多资源 api也在变化 废话不多说 上代码 FPakPlatformFile GetPakPlatformFile FPakPlatformFile pakPlatformFile nullptr auto plat
  • C++之模板<template>

    目录 前言 模板 1 泛型编程 2 函数模板 2 1 函数模板的概念 2 2 函数模板的格式 2 3 函数模板的原理 2 4 函数模板的实例化 2 5 模板参数的匹配原则 3 类模板 3 1 类模板的概念 3 2 类模板的格式 3 3 类模
  • UE4-蓝图函数库

    UE4 蓝图函数库 概述 蓝图函数库 Blueprint Function Library 是一个静态函数的合集 提供不与特定游戏性对象绑定的效用功能 即不用绑定到对象身上 再到蓝图中进行调用 可以非常方便的将代码中的函数暴露给所有蓝图使用
  • 11月5日 Unreal Engine Rider 代码使用记录

    11月5日的代码使用记录 TSubclassOf UPROPERTY EditAnywhere TSubclassOf
  • UE4 技能系统(GAS插件的使用) 01--Build Basic Classes 创建基础类

    翻译自Udemy的视频课程introduction to unreal engine 4 ability system Build Basic Classes 创建基础类 1 创建工程和人物设置 01 创建Git仓库 使用UE4 22 VS
  • 11月8日 改良射线,蓝图 UE4斯坦福 学习笔记

    修改射线类型 更改了昨天的射线类型 void USInteractionComponent PrimaryInteract 射线 FHitResult FHit 碰撞体 FCollisionObjectQueryParams ObjectQ
  • UE4 UI界面

    在UE4中创建UI界面是创建一个widget 进去之后左上角是选择控件 找到直接拖上去 中间那个框代表的就是我们的屏幕 在button中打字也就是给button命名时需要在上面在拖一个text控件 更好的排版可以改变锚点 这四个就类似与边距
  • UE4的视频播放(Media Player)

    1 视频播放Begining 首先将需要播放的视频拖入 创建Media Player和Media Texture 创建Material 将材质改为User Interface 在UI界面 创建Image 将这个材质装入 在人物Pawn界面添
  • UE4 关于使用Webbrowser插件遇到的问题以及解决办法

    1 无法播放网页视频 这是因为UE4的WebBrowser自带的cef3为3071版本 默认不支持h364等直播流 导致web里的直播流无法播放 解决办法 第一种办法 重新编译了cef源码 改成支持H 264 然后在UE4安装目录下替换相关
  • 时间戳获取

  • UE4 UE4 C++ Gameplay Abilities 的AttributeSet和GameplayEffect

    UE4 UE4 C Gameplay Abilities 的AttributeSet和GameplayEffect GAS参考文档 仅是个人理解 参考 AttributeSet是设置玩家属性的比如生命值 最大生命值 GameplayEffe

随机推荐

  • spring源码--10--IOC高级特性--autowiring实现原理

    spring源码 10 IOC高级特性 autowiring实现原理 1 Spring IoC容器提供了2种方式 管理Bean的依赖关系 1 1 显式管理 通过BeanDefinition的属性值和构造方法实现Bean依赖关系管理 1 2
  • vue学习笔记:在vscode中使用@提示路径

    在vscode中输入 后如果可以智能提示路径 可以有效防止路径名称输入错误 减少不必要的麻烦 效果如下图所示 安装 Path Autocomplete 插件后可以实现路径的智能提示 步骤如下 1 在vscode中查找Path Autocom
  • 关于shell运行python文件中的错误——shell脚本换行

    问题 https ask csdn net questions 7900411 spm 1001 2014 3001 5505 问题由来 由于工程需要在本地window中写 当需要比较少的算力时在本地跑 当需要比较大的算力时就需要在auto
  • K8S调用GPU资源配置指南

    06 09 K8S调用GPU资源配置指南 时间 版本号 修改描述 修改人 2022年6月9日15 33 12 V0 1 新建K8S调用GPU资源配置指南 编写了Nvidia驱动安装过程 2022年6月10日11 16 52 V0 2 添加K
  • 基于pytorch的手势识别

    本次实验主要是使用pytorch完成手势识别 网络包含两个隐藏层 第一层隐藏层有576个节点 第二层隐藏层有144个节点 输入784个节点 图片大小为28 28 输出10个节点 10种手势 目录 1 数据集处理 2 神经网络的建立 3 神经
  • 利用ajax添加到购物车代码,Woocommerce添加到购物车链接Ajax在其他帖子或页面中启用...

    要在自定义添加到购物车按钮中启用ajax 至少有3种方法 A simple HTML Ajax add to cart link Add to cart Using Woocommerce existing add to cart id 1
  • Axios 入门教程

    Axios Get Post 别名方式 Get Post Axios 引入 axios 的 js 文件 使用 axios 发送请求 并获取响应结果axios method get url then function resp alert r
  • 【NOIP2012】开车旅行(倍增)

    题面 Description 小A 和小B决定利用假期外出旅行 他们将想去的城市从1到N 编号 且编号较小的城市在编号较大的城市的西边 已知各个城市的海拔高度互不相同 记城市 i的海拔高度为Hi 城市 i 和城市 j 之间的距离 d i j
  • var、let、const的区别

    var let const的区别 大体区别 const定义的变量不可以修改 而且必须初始化 var定义的变量可以修改 如果不初始化会输出undefined 不会报错 var定义的变量没有块的概念 可以跨酷爱访问 不能跨函数访问 let是块级
  • 【华为OD机试真题】投篮大赛(C++&java&python)100%通过率 超详细代码注释 代码优化

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 投篮大赛 知识点字符串 时间限制 1s空间限制 256MB限定语言 不限 题目描述 你现在是
  • dbnet训练_1215

    https blog csdn net hhhhhhhhhhwwwwwwwwww article details 123904386 ops request misc 257B 2522request 255Fid 2522 253A 25
  • java使用jdbc操作数据库

    一 概述 为了持久化 方便管理数据 出现了mysql sqlserver等多种数据库 我们可以直接这些数据库中使用sql语言增删改查管理数据 但是对于业务人员来说不懂sql 没法通过sql直接在数据库操作 所以我们要通过程序提供对数据库的操
  • 用Qt实现QQ好友列表界面伸缩功能(完全一模一样)(伸展和收缩、抽屉效果、类似树形控件)(鼠标划过QSS效果)

    本文主要总结用Qt的自定义按钮和QWidget界面实现QQ好友列表的界面伸展和收缩功能 以及鼠标滑过 鼠标单击的QSS样式表效果 全文分为两大部分 分别是原理讲解和效果实现 抽缩界面效果图 源代码下载地址 https download cs
  • 增量测试:自顶向下测试&自底向上测试

    本博客主要内容 自顶向下测试和自底向上测试的优缺点 软件开发周期流程 不同的测试方法针对不同的测试阶段 一 自顶向下测试 优点 1 如果主要的缺陷发生在程序的顶层将非常有利 2 一旦引入I O功能 提交测试或更容易 3 早期的程序框架可以进
  • VS2013,MFC,在视图类里添加鼠标左键响应函数OnLButtonDown

    以CVoronoi2D为例子 点击类视图的View 右击选择类向导 选择WM LBUTTONDOWN 鼠标左击响应函数 然后点击添加处理程序 代码会自动生成一个响应函数 如图 如果对您有帮助 可以评论一下 谢谢
  • 失败的人生图片_人到中年,做事失败了,很可能是遇到了以下五种情况

    人至中年 也到了迈入成功大门的时刻 但并非每个人都能在中年获得成功 相反 有不少人却在中年的时候失败 人至中年面临失败 其实原因有很多 但大多数情况下 可能是遇到了以下五种情况 究竟有哪五种情况呢 如果您想知道 就让小编来为您揭秘 本文所有
  • hash与map的区别联系应用

    一 hashtable原理 哈希表又名散列表 其主要目的是用于解决数据的快速定位问题 考虑如下一个场景 一列键值对数据 存储在一个table中 如何通过数据的关键字快速查找相应值呢 不要告诉我一个个拿出来比较key啊 呵呵 大家都知道 在所
  • 设计模式GitHub找的好东西

    https github com DovAmir awesome design patterns https github com JakubVojvoda design patterns cpp https github com Wale
  • Appium自动化框架从0到1之 业务模块封装(登录页面业务操作)

    我们这次来封装登录页面业务操作 在上代码之前 我们先了解一下登录场景 用户名 密码 小鱼1号 fish1 小鱼2号 fish2 小鱼3号 fish3 然后 我们在登录的时候 会进行一下几个操作 我们先输入账号 密码 点击 登录按钮 登录后
  • 【UE4】TSubclassOf的使用

    TSubclassOf TSubclassOf 是提供 UClass 类型安全性的模板类 例如您在创建一个投射物类 允许设计者指定伤害类型 您可只创建一个 UClass 类型的 UPROPERTY 让设计者指定派生自 UDamageType