素人Unity練習帳
Objectの非表示について 02
表示非表示は、
MeshRendererをdisableにする
SetActiveRecursively()でdeactivateする
--------------------------------
○MeshRendererをdisableにする場合は
Renderer ren = gameObject.GetComponent();
ren.enabled = false; // 表示true 非表示false
とすると見た目だけ消えるだけで、いろいろな処理はされる。
つまり見えない壁がある状態になる
Collider col = gameObject.GetComponent ();
col.enabled = false;
------------------------------------
SetActiveRecursively()でdeactivateする場合は
Start()関数を以下のように書き換えます。
void Start () {
gameObject.SetActiveRecursively(false);
}
これ以下のgameObjectの活動が停止するため何も処理されない
これは、初めからあるオブジェクトを消したり表示させたり
というものですが
何もない状態から、新たにオブジェクトを表示させるのは
prefabを作っておいて
それを画面上に表示させてもいい。
ただ、新たに親子関係などを設定する必要がある。
prefabの表示
public GameObject prefab; //プレファブ設定
GameObject bullet = GameObject.Instantiate(prefab) as GameObject;
bullet.transform.localPosition=Vector3.zero;//位置決め
オブジェクトの親子関係
bullet.transform.parent=transform;
//ただのtransformは、このスクリプトが付いているオブジェクト自身で、bulletの親がこのオブジェクトということ
表示非表示は、
MeshRendererをdisableにする
SetActiveRecursively()でdeactivateする
--------------------------------
○MeshRendererをdisableにする場合は
Renderer ren = gameObject.GetComponent
ren.enabled = false; // 表示true 非表示false
とすると見た目だけ消えるだけで、いろいろな処理はされる。
つまり見えない壁がある状態になる
Collider col = gameObject.GetComponent
col.enabled = false;
------------------------------------
SetActiveRecursively()でdeactivateする場合は
Start()関数を以下のように書き換えます。
void Start () {
gameObject.SetActiveRecursively(false);
}
これ以下のgameObjectの活動が停止するため何も処理されない
これは、初めからあるオブジェクトを消したり表示させたり
というものですが
何もない状態から、新たにオブジェクトを表示させるのは
prefabを作っておいて
それを画面上に表示させてもいい。
ただ、新たに親子関係などを設定する必要がある。
prefabの表示
public GameObject prefab; //プレファブ設定
GameObject bullet = GameObject.Instantiate(prefab) as GameObject;
bullet.transform.localPosition=Vector3.zero;//位置決め
オブジェクトの親子関係
bullet.transform.parent=transform;
//ただのtransformは、このスクリプトが付いているオブジェクト自身で、bulletの親がこのオブジェクトということ
Reon Viewin