解决:如果每一个物体都隐藏就将obj_fly_male_first隐藏的问题

16 篇文章 0 订阅
8 篇文章 0 订阅

一、目的:

1、如果每一个物体都隐藏就将obj_fly_male_first隐藏的问题;

2、这个问题可以提升到:数组里面如果所有的元素都是同一个属性就执行某动作

 

二、操作

1、方法一:

①如下图:数组里的物体,如果每一个物体都隐藏就将obj_fly_male_first隐藏

②for循环如果某物体隐藏,则计数一次,当计数次数等于数组长度,就开始让obj_fly_male_first隐藏,这样就完成了目的

③为了让物体在状态变换后只变换一次,则使用一个bool变量来控制

④计数、设置隐藏分为俩个步骤,不要混在一起,以后其余程序也要这样,功能单独分开执行

    /// <summary>
    /// 功能:显示或者隐藏雄UI
    /// </summary>
    private void ShowOrHide_male_first()
    {
        for (int i = 0; i < arr_obj_male_first.Length; i++)
        {
            if (arr_obj_male_first[i].gameObject.activeSelf == false)
            {
                if (arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows == true)
                {
                    arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows = false;
                    hide_maleNumber++;

                }
            }
            else if (arr_obj_male_first[i].gameObject.activeSelf == true)
            {
                if (arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows == false)
                {
                    arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows = true;
                    hide_maleNumber--;
                }
            }
        }

        if (hide_maleNumber < arr_obj_male_first.Length && obj_fly_male_first.gameObject.activeSelf == false)
        {
            obj_fly_male_first.gameObject.SetActive(true);
        }
        else if (hide_maleNumber >= arr_obj_male_first.Length && obj_fly_male_first.gameObject.activeSelf == true)
        {
            hide_maleNumber = arr_obj_male_first.Length;
            obj_fly_male_first.gameObject.SetActive(false);
        }
    }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值