【Unity基础知识】UE4动态改变物体颜色

发布 : Unity培训      来源:Unity干货资料

2021-07-07 17:40:30

我们在使用或者开发虚拟仿真软件的时候经常会遇到这样的需求:点击某个按键让物体改变颜色。那么面对这样的需求时我们应该从哪些方面着手呢?

通过分析可以得知,我们需要准备以下内容:1)可以变色的材质;2)可以接受用户输入的蓝图(如果使用按键)。

第一步:准备可以变色的材质。

在UE4中材质的动态改变需要借助参数来实现。我们首先在内容浏览器中点击右键选择Material创建一个基本材质,双击打开。

打开之后创建一个Const Vector3节点和两个Float节点,前者控制颜色,后者控制Metallic和Roughness,连接如下图所示。

接下来,需要将颜色变为参数,直接在Const Vector3节点右击选择Convert to Parameter,并且设置参数名称为Color(后面会用到这个参数)。

第二步:接受用户输入。

我们需要创建一个蓝图类,在蓝图类中集中处理输入和变色的逻辑。直接在内容浏览器中点击右键选择Blueprint Class,在弹出的选择父类窗口中选择Actor作为基类,重新命名为BP_ColorChanger,创建好之后如下图所示。

接下来,双击打开新创建的BP_ColorChanger蓝图。在左上角的组件面板中点击AddComponent按钮,添加一个Static Mesh组件,添加完成之后选择这个组件,在属性面板中找到Static Mesh,设置该属性为Material Sphere,并将Materials分类下Element0设置为第一步中创建的材质球,效果如下图所示。

切换到Construction Script标签,将Static Mesh组件从组件面板中拖拽到节点视图面板中。搜索Create Dynamic Material Instance,并创建变量,命名为DynMat,如下图所示。

切换到EventGraph标签,删除所有节点,我们这个案例中暂时用不到。我们需要按下R键变成红色,按下G键变成绿色,按下B键变成蓝色。

在节点视图中点击右键搜索R发现有很多符合要求的节点,为了方便快速的找到键盘上的r键,这里推荐给大家一个小技巧,搜索keyboard r可以过滤掉很多节点。

创建R键的点击事件,将上一步中创建的DynMat变量拖拽到节点视图中并搜索Set Vector Parameter Value节点,将其参数设置为Color和红色,如下图连接。

默认的Actor蓝图类是不接受用户输入的,需要简单设置一下。点击Class Defaults,在属性面板中搜索input,设置Auto Receive Input为Player0即可。

点击Compile,将新创建的蓝图类拖拽到关卡中,点击Play,模型变成红色,说明我们的效果基本实现。

用同样的方式和思路可以实现变成绿色和蓝色的操作。我们小案例到此就结束了。

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部