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