using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>控制所以对象的透明</summary>
public class TransparencyController : MonoBehaviour
{
public void SetOpacityRecursively(Transform parentTransform, float alphaValue)
{
// 设置当前物体的透明度
Renderer renderer = parentTransform.GetComponent<Renderer>();
if (renderer != null)
{
Material material = renderer.material;
Color color = material.color;
color.a = alphaValue;
material.color = color;
}
// 设置当前物体的UI透明度
Graphic graphic = parentTransform.GetComponent<Graphic>();
if (graphic != null)
{
Color color = graphic.color;
color.a = alphaValue;
graphic.color = color;
}
// 设置当前物体的Sprite Renderer透明度
SpriteRenderer spriteRenderer = parentTransform.GetComponent<SpriteRenderer>();
if (spriteRenderer != null)
{
Color color = spriteRenderer.color;
color.a = alphaValue;
spriteRenderer.color = color;
}
// 遍历子物体并递归调用设置透明度方法
for (int i = 0; i < parentTransform.childCount; i++)
{
Transform child = parentTransform.GetChild(i);
SetOpacityRecursively(child, alphaValue);
}
}
}