1. 程式人生 > >遍歷所有子物體中renderer(渲染器)中的material(材質)並改變其alpha值實現若隱若現的效果

遍歷所有子物體中renderer(渲染器)中的material(材質)並改變其alpha值實現若隱若現的效果

sys [] object c engine orm 器) gpo gin nts

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值實現若隱若現的效果