遍历所有子物体中renderer(渲染器)中的material(材质)并改变其alpha值实现若隐若现的效果

Posted 不积跬步,无以至千里;不积小流,无以成江海。任何业绩的质变都

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历所有子物体中renderer(渲染器)中的material(材质)并改变其alpha值实现若隐若现的效果相关的知识,希望对你有一定的参考价值。

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

public class CubeControl : MonoBehaviour
{

  public GameObject Cube;
  private float rotaSpeed=5f;
  void Update ()
  {

    //得到所有可渲染的子物体
    Renderer[] rds = Cube.GetComponentsInChildren<Renderer>();
    //逐一遍历他的子物体中的Renderer
    foreach (Renderer render in rds)
    {
      //逐一遍历子物体的子材质(renderer中的material)
      foreach (Material material in render.materials)
      {
        var r = material.color.r;
        var g = material.color.g;
        var b = material.color.b;
        var alpha = Mathf.PingPong(Time.time / 5f, 1);
        material.color = new Color(r, g, b, alpha);

      }
    }

    //Cube自转
    Cube.transform.Rotate(new Vector3(0, -1, 0), Time.deltaTime * rotaSpeed);
  }
}

以上是关于遍历所有子物体中renderer(渲染器)中的material(材质)并改变其alpha值实现若隐若现的效果的主要内容,如果未能解决你的问题,请参考以下文章

在unity3d里怎样隐藏物体

three.js 第二篇:场景 相机 渲染器 物体之间的关系

Unity渲染路径 Rendering Paths_2_Forward Rendering 正向渲染

Unity3D里怎样隐藏物体

sharedMaterial和material的区别

获取当前节点包含所有子物体的Bounds