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

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

右击创建一个蓝图

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

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

在事件列表中创建三个“自定义事件”(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。

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

  1. ASP.NET中利用控件实现简单的登录界面

    前言 我得先说一下,我的网页大多依赖asp.net的控件使用,没有系统学过C#.HTML,但也知道一点.所以如果有些地方写的不好,不足的还请谅解,当然也欢迎评论,也许可以在评论中再增长一些知识. 基础 ...

  2. Tips/Tricks#0:母版页中对控件ID的处理

    注:此系列记录在我实际开发中遇到的问题和收藏一些技巧文章. 本篇技巧和诀窍记录的是:母版页中对控件ID的处理. 一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我 ...

  3. C#中GridView控件的使用

    C#中GridView控件的使用 一.GridView和DataGrid的异同 GridView 是 DataGrid的后继控件,在 framework 2中,虽然还存在DataGrid,但是Grid ...

  4. .NET中添加控件数组

    作者:cuike519的专栏   http://blog.csdn.net/cuike519/ 添加控件数组 在.NET里面我好像没有找到有关于控件数组的说明,但是前两天偶在网上看到了一篇关于如何在. ...

  5. android获取自适应高度,Android中oncreate中获得控件高度或宽度的实现方法

    Android中oncreate中获得控件高度或宽度的实现方法 onCreate函数只是提供了数据初始化的机会,此时还没有正式绘制图形.在图形尚未渲染的情况下,getWidth()或getHeight ...

  6. WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

    原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...

  7. listview控件Android,Android中ListView控件的简单使用

    文章引自郭霖<第一行代码> ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕 使用LIstView控件 1 在布局文件中引入Li ...

  8. 基于VB中WINSOCK控件的网上象棋系统的实现

    本文发表在<微型机与应用>杂志2001年第3期. 基于 VB 中 WINSOCK 控件的网上象棋系统的实现 马根峰1   ,  孙艳2  , 王平1 (1.重庆邮电学院自动化学院,重庆,4 ...

  9. delphi多线程超时控Delphi7中Indy控件对于网络数据的接收

    1.引言 随着我国经济和社会的发展,水资源的科学管理与合理配置显得越来越重要.而获取大量的.实时的.动态的水资源及其相关信息则是实现水资源科学管理的基础.传统的水资源信息获取采用人工抄取数据后逐级的方 ...

最新文章

  1. 2021-02-23关于java的方法区,为什么叫方法区,是否与实际用途相悖?
  2. SharePoint Online 创建和使用栏
  3. Spring Session源码
  4. 修复被破坏的 vs 工程设置
  5. 【大数据】学习大数据前需要掌握的知识
  6. TensorFlow 官方文档中文版发布啦(持续维护) 1
  7. java自由布局_java怎么在界面上随意摆放位置?
  8. 批量测试Mybatis项目中Sql是否正确
  9. SQL server 2008卸载后有残留及彻底卸载
  10. 路由器测试的类型和方法
  11. 钢板弹簧matlab,Matlab/GUI在钢板弹簧悬架设计中的应用
  12. JLink 串口引脚图
  13. poi ppt html,POI之PPT如何添加表格简单实例
  14. Solidity----状态修饰符view、pure
  15. allegro如何编辑铜皮
  16. 新华三交换机基于MAC的vlan划分
  17. oracle 11g 下载
  18. 7-4 身份证号码最后一位 (100分)
  19. DR5加强版2019全新 | PS磨皮插件高端人像后期修图工具
  20. Locating Elements(二)

热门文章

  1. 【键盘映射】AHK自定义Windows脚本
  2. 原创超简单代码(1.24.10)
  3. 微信小程序实现wxml中数据保留小数或取整
  4. 精研物理 格物致知(一)
  5. 安卓平台airtest使用纪录
  6. python做plc监控_(原创)如何搭建PLC+上位机监控系统达到成本的最小化?
  7. 分布式数据库Cassandra
  8. 智能管家App kotlin版(6)——新闻头条文章查看开发
  9. 你对我热情,我就喜欢你
  10. 计算机office比赛,理工学院成功举办第十四届科技文化月之计算机设计大赛——MS Office文档设计比赛...