0
点赞
收藏
分享

微信扫一扫

Unity控制所有对象的透明度


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);
        }
    }
}

举报

相关推荐

0 条评论