にしのクエスト2

情報処理技術者試験と資格学校講師の日常

20221224103753

Unityで学ぶプログラミング TIPS (21)Destroyで消えない

今回も、超ミニミニTIPSです。

何かに衝突したら、自分自身が消えてしまう・・・
みたいなプログラム、ありますよね。

これ、うまくいかないことってありませんか?
きちんと当たり判定はあるのに・・・

知ってるよ!っていう人はごめんなさいね。
あるあるだものね。

前提として

・衝突は、物体のどちらかにRigidbodyがないとダメです。
・当たり判定(collider)も確認してみてね。

で、よくやっちゃうのが・・・

Destroy(this);

です。

初心者の頃、これが何でダメなのかよくわかりませんでしたが。
Destroyできるのは、これ・・・ではダメで。きちんと何を消
すのか指定しないとダメです。

正解は

Destroy(this.Object);

これならうまくいくと思います。

ちなみに秒数もフロートで指定できます。

Destroy(this.Object,0.5f);


こんな書き方をすると、衝突から0.5秒後に消えます。便利!
でも、Destroyは消えてしまうと元に戻せません。

もし、復活させたいのであれば座標を画面の外に設定し、移
動させるか。setActiveをfalseにしましょお。


今日も小ネタですいません。

それではよきプログラミングライフを!
またね。