在unity3d里怎样隐藏物体呢?我最近在做项目的时候,同样也遇到了这样的问题,因为自己对这方面不是很懂,所以就在贴吧和社区里面提问了,不过有大神进行了回答,下面我就把我做的方法贴出来供大家参考。
在unity3d里隐藏物体方法如下:
- gameObject.renderer.enabled
- //是控制一个物体是否在屏幕上渲染或显示 而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的
- GameObject.Destroy()
- //表示移除物体或物体上的组件 代表销毁该物体 实际上该物体的内存并没有立即释放 而是在你下下个场景中槽释放内存资源,就是你a场景中Destroy了 一般是在c场景中才真正释放该物体的内存资源(这是我的体会 不知道理解错误没)
- gameObject.active
- //是否在场景中停用该物体 在你gameObject.active =false中 则你在场景中用find找不到该物体
- //如果该物体有子物体 你要用SetActiveRecursively(false) 来控制是否在场景中停用该物体(递归的)
- using UnityEngine;
- using System.Collections;
- public class test : MonoBehaviour
- {
- GameObject m_obj;
- // Use this for initialization
- void Start ()
- {
- m_obj = GameObject.Find("box");
- }
- // Update is called once per frame
- void Update ()
- {
- }
- void OnGUI()
- {
- if (Input.GetKeyDown(KeyCode.W))
- {
- // m_obj.enabled = true;
- m_obj.SetActive(true);
- }
- if (Input.GetKeyDown(KeyCode.A))
- {
- m_obj.SetActive(false);
- // m_obj.enabled = false;
- }
- }
- }