▽メニュー開く 
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の親がこのオブジェクトということ


運営者画像
Reon Viewin