赞
踩
通常我们在对象的Detail面板里看到的变量属性都是在对应的C++中先声明变量,然后加一个UProperty在变量前面,UE就会反射到蓝图面板上。
但是还有一种方法,是通过面板映射的方式,在Detail面板上映射自己想要的变量和控件。
这样做有几个好处
具体怎么加呢
首先创建一个空的插件,在插件中我们定义这样一个函数,用来给对象注册自定义布局
然后我们创建我们要添加的布局类
这个类需要继承自IDetailCustomization
然后实现途中的两个函数。
接着我们在控件中这样绑定对象和自定义布局对象。
这里的CustomizeObject就是我们在UE中创建的C++对象(为了看效果,我们还需要基于它来生成一个蓝图对象)
这样就绑定好了。
如果希望映射detail到变量,做法基本相同。
首先是注册函数
然后是生成自己的属性布局类,然后绑定对象和属性布局类。
在我们的CustomizeObject中添加这个对象作为成员变量,即可看到我们的布局定义。
我突然意识到这样做的好处,UProperty声明变量反射到面板中只能修改UE原生变量值,而对于我们自定义的变量是没法去映射具体要修改哪些值的。
比如我们希望映射一个结构体,这个结构体变量在它所属的对象中布局时一个vector。这样UProperty就没法完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。