Unityでオブジェクトを消す方法の解説です。
Unity Destroyとは?
UnityのDestroy関数は、ゲーム内で不要になったオブジェクトを削除するための機能です。基本的な使い方はシンプルだけど、様々なテクニックもあります。
Destroyの基本的な使い方
Destroy関数を使う基本のコードはこんな感じです。
Destroy(対象のオブジェクト);
これを使うと、指定したオブジェクトがバッと消えます。書き方は、こんな感じ。
using UnityEngine;
public class DestroyExample : MonoBehaviour
{
public GameObject targetObject;
void Start()
{
Destroy(targetObject);
}
}
これでStart関数が呼ばれると、指定したオブジェクトが消えます。
Destroy関数を使うとき、特定の条件が満たされたときだけオブジェクトを消すこともできます。
using UnityEngine;
public class DestroyWithCondition : MonoBehaviour
{
public GameObject targetObject;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Destroy(targetObject);
}
}
}
これでスペースキーが押されたときだけオブジェクトが消せます。Destroy関数は色んな場面で使うことができます。
Destroyを使ってオブジェクトを消す
【Unityの使い方】if文の使い方で使用したファイルを使います。
現在球をz方向に動かしてzが30になったら戻ってくるというようなコードが書いてあります。
using UnityEngine;
public class game : MonoBehaviour
{
private float speed = 0.1f;
void Start()
{
}
void Update()
{
//z方向に進む
transform.Translate(Vector3.forward * speed);
if (transform.position.z >= 30)
{
speed = -speed;
}
}
}

if文の()の中身をDestroy(gameObject);に書き換えます。
using UnityEngine;
public class game : MonoBehaviour
{
private float speed = 0.1f;
void Start()
{
}
void Update()
{
//z方向に進む
transform.Translate(Vector3.forward * speed);
if (transform.position.z >= 30)
{
//speed = -speed;
Destroy(gameObject);
}
}
}
Destroyというのは破壊する、消滅するという意味です。
()の中のgameObjectはこのスクリプトを貼り付け(アタッチ)している
ゲームオブジェクトの事を指します。

再生すると球がz30まで進んだら消滅するようになります。