[UE4]反射
1、根据名字获得类(C++支持,蓝图本身不支持但可以通过工厂模式模拟)
国外大神提供的封装好的C++实现:
https://github.com/getsetgames/BlueprintReflection
功能:
1) Get Class By Name(根据类的名字获得类)
The Get Class By Name blueprint function can be used to retrieve a Class (UClass) object by providing its name.

2) Construct Object From Class(根据类来构建对象)
The Construct Object From Class blueprint function can be used to create an instance of any class that derives from Object (UObject).

3)Construct Object From Class Name(根据类的名字来生成对象)
The Construct Object From Class Name blueprint function can be used to create an instance of any class that derives from Object (UObject) by providing the name of the class. This effectively runs GetClassByName and ConstructObjectFromClass in one call.

2、根据名字调用函数(蓝图支持)
一、Set Timer by Function Name
二、Set Timer by Event

3、根据名字获得成员变量(C++支持)
4、根据名字获得组件(蓝图支持)

函数“Get Components by Class”有一个Bug,这个蓝图一经拖放出来的“Component Class”就是“ActorComponent”,这时直接编译是会出错的,要重新选择一下其他的“Component Class”然后再选择“Actorcomponent”(也可以直接手动选择一下“Actorcomponent”),再次编译就能通过了。

运行时按“Z”,就会把场景中所有属于“ActorComponent”的组件名字打印出来。
在蓝图函数库(同一个项目中任何蓝图都可以使用的函数)中添加一个自定义方法:GetComponentByName(根据名字来获得组件)

4、根据名字获得类(蓝图中使用工厂模式模拟实现,这是伪实现)
首先在蓝图函数库中添加一个辅助函数:GetClassName(获得类实例对象的显示名字。类实例对象:场景中已经生成的实例对象)



[UE4]反射的更多相关文章
- UE4杂记
一些学习UE4时的笔记,转载请注明出处. ☆ UE4逻辑 Actor 是由 AActor 类派生而来的类实例:能被放入游戏世界场景的所有游戏性对象的基础类.对象是继承自 UObject 类的类实例:虚 ...
- UE4中C++编程(一)
一: C++工程和Gameplay框架 GameInstance 它适合放置独立于关卡的信息,比如说显示UI. GameMode 表示游戏玩法, 包含游戏进行的规则和胜利条件等等信息,游戏模式是和关卡 ...
- [UE4]通过使用Set TimerByFunctionName来实现反射机制
- 【UE4】基础概念——文件结构、类型、反射、编译、接口、垃圾回收、序列化
新标签打开或者下载看大图 思维导图 Engine Structure Pipeline Programming Pipeline Blueprint Pipeline
- 《Inside UE4》目录
<Inside UE4>目录 InsideUE4 UE4无疑是非常优秀的世界上最顶尖的引擎之一,性能和效果都非常出众,编辑器工作流也非常的出色,更难得宝贵的是完全的开源让我们有机会去从中吸 ...
- UE4入门与精通
由于目前在使用UE4引擎,多少也有一些心得,比如在日常使用中会遇到一些问题.坑(潜规则)或者一些使用技巧等.本人决定开一个大坑,主要有两个目的:一是可以自己做个记录,二是可以给大家提供一些参考吧.主要 ...
- UE4 去除不正确的水面倒影以及不完整镜头轮廓
最近在做的项目遇到了一点点问题,出现了如下效果 视角对着湖面移动会出现一个显示不完整的轮廓(比较长的蓝色矩形),详细一点就是下图这样,以及近处物体的倒影(从光照的照射角度来看是不应该出现的) 一开始就 ...
- 《Inside UE4》-0-开篇
<Inside UE4>-0-开篇 InsideUE4 前言 VR行业发展是越来越火热了,硬件设备上有HTC VIVE,Oculus rift,PS VR,各种魔镜:平台上有Steam ...
- 《Inside UE4》-1-基础概念
<Inside UE4>-1-基础概念 InsideUE4 创建测试项目 接上文的准备工作,双击生成的UE4Editor.exe,选择创建测试C++空项目Hello(以后的源码分析 ...
随机推荐
- java小知识,驼峰规则
单词之间不以空格.连接号或者底线连结(例如不应写成:camel case.camel-case或camel_case形式).共有两种格式: 1.小驼峰式命名法(lower camel case): 第 ...
- 我的vim(持续更新)
保存并退出:wq 退出但不保存修改:q! 不退出vi使用shell(bash)命令:!bash (如果想回到vi,bash下输入exit回车) 设置行号 :set nu 取消行号:set nonu 设 ...
- oracle参数文件与启动过程
oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...
- bind智能DNS + bindUI管理系统
bind UI 管理系统 https://github.com/cucker0/BindUI # bind安装 cd /usr/local/src wget http://ftp.isc.org/is ...
- git忽略已提交的文件或目录
项目中的某个文件或目录已经被commit,并push到远程服务器server了. 这时发现要忽略该文件或目录,在.gitignore文件里面添加规则已经不起作用了.因为.gitignore只对从来没有 ...
- Iris花逻辑回归与实现
Iris花的分类是经典的逻辑回归的代表:但是其代码中包含了大量的python库的核心处理模式,这篇文章就是剖析python代码的文章. #取用下标为2,3的两个feture,分别是花的宽度和长度: # ...
- Java 解密错误InvalidKeyException: Illegal key size解决方法
做解密操作,出现如下错误 java.security.InvalidKeyException: Illegal key size // 设置解密模式为AES的CBC模式 Cipher cipher = ...
- C# 值类型
sbyte:表示-128~127之间的整数. byte:表示0~255之间的整数. short(Int16):-32768~32767之间的整数. ushort:在0~65535之间的整数. int( ...
- 虚拟机ubuntu新增挂载点进行磁盘扩展
参考: http://m.blog.csdn.net/blog/pcsxk/38501579 一.vmware下扩展原来的磁盘空间 这个比较直观 1.关机状态下,选择磁盘->实用工具->扩 ...
- C#实现设置系统时间
using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Demo { pub ...