在unity3d里怎样隐藏物体呢?我最近在做项目的时候,同样也遇到了这样的问题,因为自己对这方面不是很懂,所以就在贴吧和社区里面提问了,不过有大神进行了回答,下面我就把我做的方法贴出来供大家参考。

在unity3d里隐藏物体方法如下:

  • gameObject.renderer.enabled   
  • //是控制一个物体是否在屏幕上渲染或显示  而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的  
  •   
  • GameObject.Destroy()    
  • //表示移除物体或物体上的组件 代表销毁该物体  实际上该物体的内存并没有立即释放 而是在你下下个场景中槽释放内存资源,就是你a场景中Destroy了 一般是在c场景中才真正释放该物体的内存资源(这是我的体会 不知道理解错误没)  
  •   
  • gameObject.active     
  • //是否在场景中停用该物体   在你gameObject.active =false中 则你在场景中用find找不到该物体    
  • //如果该物体有子物体 你要用SetActiveRecursively(false) 来控制是否在场景中停用该物体(递归的)
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class test : MonoBehaviour   
  5. {  
  6.     GameObject m_obj;  
  7.     // Use this for initialization  
  8.     void Start ()   
  9.     {  
  10.         m_obj = GameObject.Find("box");  
  11.     }  
  12.       
  13.     // Update is called once per frame  
  14.     void Update ()  
  15.     {  
  16.       
  17.     }  
  18.   
  19.     void OnGUI()  
  20.     {  
  21.   
  22.         if (Input.GetKeyDown(KeyCode.W))  
  23.         {  
  24.            // m_obj.enabled = true;  
  25.             m_obj.SetActive(true);  
  26.         }  
  27.   
  28.         if (Input.GetKeyDown(KeyCode.A))  
  29.         {  
  30.             m_obj.SetActive(false);  
  31.            // m_obj.enabled = false;  
  32.         }  
  33.       
  34.     }  
  35. }