ウィンナスのプログラミング忘備録

アプリケーション制作をしている最中に発見したテクニックを忘備録としてまとめていきます。

【Unity】生成したオブジェクトを消す方法

今回は生成したオブジェクトを削除する方法を紹介します。

Destroy();
を記述します。
終わり!

半分冗談ですけど嘘ではありません(笑)
まじめにやっていきます。

3秒後に消えるようにしてみるよう!

まずは3秒後に削除されるようにしてみます。

はじめに、削除させるゲームオブジェクトを用意します。
今回はウィンちゃんを用意しました!
f:id:win-friendof:20160702184434p:plain

ウィンちゃんにScript [ DestroyActivity ] を設定します。
f:id:win-friendof:20160702185215j:plain

では、Scriptを編集してみます。

using UnityEngine;
using System.Collections;

public class DestroyActivity : MonoBehaviour {

	// Use this for initialization
	void Start () {
		Invoke("DestroyWin", 3f);
	}
	
	// Update is called once per frame
	void Update () {
		
	}

	void DestroyWin(){
		Destroy (gameObject);
	}
}

[ Destroy(gameObject) ] でゲームオブジェクトを削除します。

実際に動かてみると3秒後にオブジェクトが消えます。


Scriptを消してみよう!

Scriptを消すとはどういうことか?
例えば、
初期状態ではオブジェクトを移動するScriptを付けたいが、ある程度移動したらScriptを外したい!
っていう場合に使います!

実際にウィンちゃんを移動して移動用Scriptを消してみます!

先ほどの [ DestroyActivity ] を以下のように編集します。

using UnityEngine;
using System.Collections;

public class DestroyActivity : MonoBehaviour {

	Vector2 vec;

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {
		vec.y += 0.1f;
		this.transform.position = vec;
		if (this.transform.position.y > 10)
			DestroyWin ();
		Debug.Log (gameObject.transform.position.y);
	}

	void DestroyWin(){
		//このScriptを削除する
		Destroy (this);
	}
}

[ Destroy(this) ] で「”この”Scriptを削除します」という意味です。


これを実行するとウィンちゃんが移動して止まります!