unity动态修改物体材质Materials

这边我是用两种办法去修改物体的材质
方法一:将材质先做成你想要的shader类型,我这边想让物体做透明变化所以提前将材质的shader设置成
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ShaderChange : MonoBehaviour
{
    public Material mat;
    public GameObject go;
    public Button bt;
    void Start()
    {
        bt.onClick.AddListener(ChangeShaderTwo);
    }
    public void ChangeShader()
    {
        go.GetComponent<MeshRenderer>().material = mat;
    }
    public void ChangeShaderTwo()
    {
        Material material = new Material(Shader.Find("Legacy Shaders/Transparent/Diffuse"));
        material.color = new Color(0, 1, 0, 0.3f);
        GetComponent<Renderer>().material = material;
    }
}

changshader 方法直接替换面板的material
直接
直接将做好的材质拖在面板上就可以。

方法二:如上代码ChangeShaderTwo,动态生成一个材质,然后再进行替换。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Unity动态增加物体材质,可以通过以下步骤实现: 1. 创建新材质:在 Unity 中,可以通过 Assets 菜单中的 Create -> Material 创建新的材质。也可以在项目中选择一个已有的材质,然后在 Inspector 窗口中点击右键,选择 Duplicate 创建一个新的材质。 2. 修改材质属性:在新创建的材质中,可以修改其属性,比如颜色、贴图等。 3. 将材质应用到物体:在场景中选择需要应用材质物体,然后在 Inspector 窗口中找到其 Renderer 组件,在其中的 Materials 数组中增加一个新的材质。 下面是一个简单的示例脚本,实现了动态增加物体材质的功能: ```csharp using UnityEngine; public class AddMaterial : MonoBehaviour { public Material material; // 新增加的材质 void Start() { // 在场景中找到物体的 Renderer 组件 Renderer renderer = GetComponent<Renderer>(); // 将新增加的材质应用到物体的 Renderer 组件上 Material[] materials = renderer.materials; Material[] newMaterials = new Material[materials.Length + 1]; for (int i = 0; i < materials.Length; i++) { newMaterials[i] = materials[i]; } newMaterials[newMaterials.Length - 1] = material; renderer.materials = newMaterials; } } ``` 在这个脚本中,我们先在 Inspector 窗口中将需要新增加的材质赋值给 material 变量,然后在 Start 函数中将其应用到物体的 Renderer 组件上。具体来说,我们首先获取物体的 Renderer 组件,然后将原有的材质数组复制到一个新的数组中,并在新数组的末尾添加新增加的材质,最后将新数组赋值给物体的 Renderer 组件的 materials 属性。这样,物体就会显示出新增加的材质

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值