【源码】Unity3D如何动态创建材质?
1、1. 打开该软件创建新的测试工程如下图所示。

2、2. 打开软件后,创建测试场景如下图所示

3、3. 创建代码脚本,如下图所示: 在【Project】面板下空白处鼠标右键菜单中选择【Create】,然后选择【c#Script】.

4、4. 双加步骤三中创建的脚本文件,使用VS编辑器打开或者使用默认的编辑器打开,编写代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestMaterial : MonoBehaviour {
public Material sphereMat;
private Material cubeMat;//使用代码动态创建
public GameObject sphere;
public GameObject cube;
// Use this for initialization
void Start () {
cubeMat = new Material(Shader.Find("Custom/DiffuseColor1"));
cubeMat.color = new Color(255, 228, 0, 1);
sphere.GetComponent<Renderer>().material = sphereMat;
cube.GetComponent<Renderer>().material = cubeMat;
}
// Update is called once per frame
void Update () {
}
}

5、5. 在【Project】面板下空白处鼠标右键菜单中选择【Create】,然后选择【Material】创建材质球,如下图所示并修改它的颜色。.

6、6. 准备shader拖拽到project面板下(下载链接见注意事项)

7、7. 选中【MainCamera】,将步骤三创建的脚本拖拽图示的位置,再为每个变量赋值,如下图所示。

8、8. 运行结果如下图所示。源码工程下载见注意事项。Unity使用代码动态修改Shader的颜色??
参见经验如下:

9、如果您觉得有用,记得在下方点击投票、点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的支持才是小编继续努力的动力,么么哒。
