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