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