UE4中C++动态创建材质的几种方法Material

这篇具有很好参考价值的文章主要介绍了UE4中C++动态创建材质的几种方法Material。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一种方式:

        1、首先加载材质,代码如下:

UMaterialInterface* Material = LoadObject<UMaterialInterface>(nullptr, TEXT("Material'/Game/Materials/ColorMaterial.ColorMaterial'"));

        2、然后调用CreateDynamicMaterialInstance创建静态材质实例,如下:

UMaterialInstance * DynamicMaterial = UKismetMaterialLibrary::CreateDynamicMaterialInstance(GetWorld(), Material);

        3、最后设置材质,如:

XXXXX->SetMaterial(0, DynamicMaterial);

第二种方式:

        首先加载材质,如:

static ConstructorHelpers::FObjectFinder<UMaterialInstance> MaterialObj(TEXT("/Game/Materials/ColorMaterial.ColorMaterial")); 

        // DynamicMaterial = MaterialObj.Object;//可以赋值保存下来

        直接设置材质,

XXXXX->SetMaterial(0, MaterialObj.Object);

第三种方式:

        首先加载材质,如:

static ConstructorHelpers::FObjectFinder<UMaterialInstance> MaterialObj(TEXT("/Game/Materials/ColorMaterial.ColorMaterial")); 

        然后使用CreateDynamicMaterialInstance创建材质实例,如:

UMaterialInstance * DynamicMaterial = UKismetMaterialLibrary::CreateDynamicMaterialInstance(GetWorld(), MaterialObj.Object);

        最后设置材质,给component设置材质实例,如:

XXXXX->SetMaterial(0, DynamicMaterial);

        如果多个材质进行切换,可以保存不同的实例进行动态切换材质

高级技术交流群: 769397359文章来源地址https://www.toymoban.com/news/detail-473499.html

到了这里,关于UE4中C++动态创建材质的几种方法Material的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [UE4][C++]使用qrencode动态生成二维码

         下载地址  GitHub - fukuchi/libqrencode: A fast and compact QR Code encoding library A fast and compact QR Code encoding library. Contribute to fukuchi/libqrencode development by creating an account on GitHub. https://github.com/fukuchi/libqrencode  Configure之后会报错,不勾选WITH_TOOLS就行了。         还是采用第三方库的形

    2024年02月12日
    浏览(37)
  • UE4 材质学习笔记

    CheapContrast与CheapContrast_RGB都是提升对比度的,一个是一维输入,一个是三维输入,让亮的地方更亮,暗的地方更暗,不像power虽然也是提升对比度,但是使用过后的结果都是变暗或者最多不变(值为1的情况) 乘法乘以超过1不会为纯白色,而加法超过一,材质就呈现白色,乘

    2024年02月11日
    浏览(44)
  • UE4基础材质节点

    本文参考虚幻引擎文档,几乎所有图片都来自官方文档 数学表达式 | 虚幻引擎文档 (unrealengine.com) https://docs.unrealengine.com/4.27/zh-CN/RenderingAndGraphics/Materials/ExpressionReference/Math/#linearinterpolate 会由基础到复杂对每个对象尽可能地进行说明,且不进行分类,因还在学习的关系,暂时

    2024年02月03日
    浏览(49)
  • 【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(77)
  • UE4材质(七):世界场景位置偏移——会动的材质

    摘自并整理自虚幻官方教程:https://learn.unrealengine.com/course/2449699 课程中的工程项目文件下载: 链接:https://pan.baidu.com/s/1o7m3pR7BvaCYAmlx57B9HQ 提取码:uenb 官方解释:世界位置偏移(World Position Offset) 输入允许网格体的顶点在世界空间中由材质操纵。这有助于实现使对象移动、

    2023年04月08日
    浏览(47)
  • UE4 材质实操记录

    TexCoord的R通道是从左到右的递增量,G通道是从上到下的递增量,R通道减去0.5,那么左边就是【-0.5~0】区间,所以左边为全黑,Abs取绝对值,就达到一个两边向中间的一个递减的效果,G通道同理,相乘得到一个X,Y为0.5向四周递增的效果。 在后面阶乘一个边缘渐弱的圆形数值,

    2024年02月02日
    浏览(53)
  • UE4使用蓝图材质改变颜色

    1.点击场景中的物体,找到他的材质,点击放大镜找到材质的位置并进入。 2.找到材质的父亲,并进入。  3.该变材质的颜色只要改变材质的Base Color就行。创建一个MaterialParameterCollection 添加一个vector paramter,并给它命名保存。  拖动它进入材质的父亲,点击它修改左边的par

    2024年02月12日
    浏览(57)
  • UE4 c++保存asset实例(含创建自定义Asset类)

    该文档的目标是创建一个uasset文件,用来保存类的实例,而不是蓝图类,类似存储在内容中的图片。 该文档是实践记录,具体理论查看参考。 如果要通过C++创建蓝图类,可以先新建C++类,然后在UE编辑器中有 C++ Classes 文件夹,进入后找到自己新建的C++类,右键创建蓝图类即

    2024年02月03日
    浏览(45)
  • UE4 让材质的UV动起来

     1. Panner  节点  让纹理在UV上平移  可以根据Panner节点来设置uv的速度:  2. Rotator 节点  让纹理转动起来 3. ScreenPosition 节点 纹理会随着镜头的移动而移动   

    2024年02月12日
    浏览(42)
  • vue动态绑定class的几种方法

    一、对象语法 1、给v-bind:class 设置一个对象,可以动态地切换class,例如: 最终渲染结果: div class=\\\"active\\\"/div 2、对象中也可存在多个属性,动态切换class,:class 可以合class共存 最终渲染结果: div class=\\\"static active\\\"/div 3、当:class的表达式过长或逻辑复杂时,可以绑定一个计算

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包