Unity 3d 隐藏GameObject

本篇简单介绍Unity3d中隐藏GameObject的三种方式。

隐藏GameObject

Unity3d 版本5.x

Destroy方法

Destroy方法顾名思义是销毁的意思。使用该方法可以将改GameObject从场景中销毁,来隐藏物体。


   public GameObject obj;
   
   //销毁物体
   Destroy(obj);

Rendererenabled属性

你可以通过GameObjectRendererenabled属性的布尔值来控制场景是否渲染该物体。


   public GameObject obj;
   
   //隐藏物体
   obj.GetComponent<Renderer>().enabled = false;
   
   //显示物体
   obj.GetComponent<Renderer>().enabled = true;

当你设置为false

outPut

SetActive方法

众所周知每个GameObject都有一个active属性,你可以通过SetActive方法来选择是否激活该物体,activeSelf方法可以用来来查看物体的当前局部的激活状态。


   public GameObject obj;

   //隐藏物体
   obj.SetActive(false);
   
   //显示物体
   obj.SetActive(false);
   

outPut

Tips

你的父物体通过SetActive设置为不激活的状态的时候,并不影响子物体的激活状态。但是子物体也不会显示因为被父物体覆盖。
所以SetActive只会影响到自身的激活状态。

隐藏子物体

1.通过Active隐藏子物体在Unity3d 版本4.0之前是可以使用SetActiveRecursively方法的。

如果你现在Unity3d 版本5.x控制整个物体子物体的激活状态,则需要进行一次遍历遍历父物体的所有子节点。


     private void SetChildrenActive (GameObject obj, bool active) {
            
            for(int i=0; i < obj.transform.childCount; i++) {
                
                GameObject childObj = obj.transform.GetChild(i).gameObject;
                childObj.SetActive (active);
                
            }
        }

2.同样的你也可以使用同样的过程使用Renderer.enabled来控制。

转载于:https://www.cnblogs.com/chenjy1225/p/9661885.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值