Unreal中利用控件蓝图系统控制模型的材质切换

如果想要将某个模型做成可以切换材质的网格体

首先将此网格体做成Actor蓝图,这里我将模型名字命名为Mod_teapoy

右击创建一个蓝图

将此模型 Mod_teapoy 直接拖放到到蓝图中,我们这里命名为 “BP_茶几” 这里模型拥有多维材质(两个材质是一样的)。不影响后面的材质替换。

创建三个变量,将变量类型设置为 “Material Instance”并将三个变量的材质选择为需要替换后的材质,一般会将第一个“材质1”设置成默认材质。

扫描二维码关注公众号,回复: 14629588 查看本文章

在事件列表中创建三个“自定义事件”(CustomEvent)分别命名为 “切换材质1”  “切换材质2”  “切换材质3”。

然后右击添加切换材质节点(Set Material),这里的输入节点的Target表示的是需要切换材质的模型,就是将第三步的 Mod_teapoy 拖进事件图表中

Element Index 表示的是多维材质的序号 (参考第二张图) Elenment 0 表示的第一个元素  Elenment 1 表示的是第二个元素,以此类推   所以需要创建两个Set Material,一个元素1,一个元素2

输入节点的Material代表需要替换成的材质,这里我们需要将第四步创建的“Material Instance”类型的变量拖到图标中并与之连接

 这里每个自定义事件(CustomEvent)需要添加两个切换材质节点(Set Material) 原因是因为第一步中说明的茶几是多维材质,拥有两个相同材质的元素。

最后拿"事件切换材质1”举例,最终连接方式如下: 

“事件切换材质2”“事件切换材质3”也像上面的方式连接 如下:

以上事件创建完毕,接下来我们做UI控制这些事件的运行

首先右击创建 User Interface中的Widge Blueprint(用户界面的控件蓝图)

命名为 UMG_茶几

打开

然后在控制版中找到“按钮”(Button)的控件,我们需要添加四个  其中包括一个文字提示标语和三个切换材质的缩略图

 材质缩略图可以经过Ps处理 也可以在Uneal中截图生成 一定要对应好对应的材质。

接下来需要添加这四个按钮的点击事件(On Clicked) 如下:

我们需要用到“BP_茶几”里用到的变量,但是不可以直接使用,需要用到事件预构造节点(EVent Pre Construct) 使用方法如下

其中 Get Actor Of Class(获取类的Actor)的输入节点添加成需要获取变量的Actor名称,并右击 Return Value使节点提升为变量

  将提升后的变量拖入图表中 拉出引脚 搜索刚刚蓝图”BP_茶几”中的的自定义事件 切换材质1~3  并与对应按钮 Button 的点击事件相连 如下:

 需要将文字的点击事件设置成UI的隐藏,就是说当点击文字时 这个UI会关闭

需要用到设置可视性的节点 Set Visibility  将输入节点的In Visility设置成Collapsed 隐藏起来

当然,设置好了隐藏是不够的 我们还需要将他调用出来,这里有很多方法将UI掉涌出来,这里我们利用最简单的点击事件调出UI

我们需要在BP_茶几的Actor蓝图中写下来: 

这里的1 是Mod_teapoy的点击事件 原理和UI按钮的点击事件相同 

2的 Create Widge  是将空间蓝图创建出来的意思,输入节点的 Class 代表需要创建的控件名称 UMG_茶几

3的 Add to Viewport 是将控件蓝图创建到视口(屏幕)中的意思 

4的 Set Visbility 是设置这个UI的可视性 这样就会和刚刚控件蓝图中 点击文字事件 触发的设置UI可视性为隐藏刚好相反。

连起来逻辑就是  当点击这个蓝图时 会创建UMG_茶几这个UI到视口中 它是可见的 但如果想要将他取消 就需要点击文字 来触发控件蓝图中的隐藏UI效果

 

最后其实也可以添加几个布尔值和触发盒子来做下if判断,当到达茶几范围内一定距离后才可点击触发效果,离开某个范围后 将自动关闭切换材质的UI。

猜你喜欢

转载自blog.csdn.net/weixin_50755154/article/details/123244225