Unity第10話 オブジェクトを消す!Destroyの使い方。

Unity

オブジェクトとかを消したい!

久しぶりのUnity記事。
ブログの名前なのに書かなさすぎというわけで。
久しぶりに書いていこうと思います。

別にUnityをサボってたわけじゃありません。
面白いゲームが多かったりいろいろで他の記事を書きたくなるんですよ。
仕方ない。仕方ない。

というわけで。
オブジェクトを消す。
単純だがやり方を知らないときはかなり困る。
わかれば簡単に使えるから書いていくよ。

自分を消したり別のものを消したり。
基本的には簡単に消せる。

それじゃ、やっていこうか。
今回の記事一瞬で終わる気がする。

オブジェクトを消すには?

消すのは簡単。Destroyっていう関数を使うだけ!
そしてこのDestroy。オブジェクトかコンポーネントを消すことができるよ。

それじゃ。さっそくオブジェクトを消してみよう!
C#スクリプトを作って、適当にCubeとかを作ってアタッチしよう。


ごめんねCube君。
あとで複製してあげるからね。

内容はいったん書くからコピペしてみてね。説明は後でする。

void Start ()をこんな感じに。
じゃ。説明していくよ。

といっても簡単。
Destroy関数で何かを消すよって書いて、次の()の中に消すものを書く。
この場合はこのゲームオブジェクト。
要するにアタッチしているオブジェクト。
俺の場合はCube君。(適当に作った割には気に入った)

さぁ。実行してみよう!
ゲームの開始と同時にアタッチしたオブジェクトが消えるはず!
あ。ゲームを終了したらオブジェクトは戻ってくるから安心してね。
Cube君も安心!

Destroyもう一つの能力

Destroyにはもう一つの能力がある。
それは実行してから時間を遅らせて削除!

わかりやすく言うと…。
5秒で設定してたら、実行から5秒後に削除されるみたいな感じ。
とりあえず書いてみよう。

5fのところが5秒。
fがついてるのはfloat型だからだよ。

実行してみよう!
起動から5秒後に削除されるはず!

消えたかな?

別のオブジェクトも消してみよう

別のオブジェクトを消すのも簡単。
this.gameObjectの部分を変えればいいだけ。

試しにCubeからSphereを消してみよう!
下準備としてSphereっていうゲームオブジェクトを用意して…。
ちなみにSphereを作ればもともとこの名前で出てくるよ!

これをCubeにアタッチしよう。
CubeにアタッチしたのにSphereが消えるはずだよ!

何が起こっているかというと…。
GameObject変数のsphに、名前がSphereのオブジェクトを入れる。
そしてsphを消す(無慈悲)

こういう流れで消してるよ!

終わりに

いやぁ。プログラムってわかってくると楽しい。
このDestroyも、ifと組み合わせて特定の条件下で消す。
とかもできるしね。

わからないときの詰まり方が半端ないけど。
そうだ!Cube君が気に入ったからこれからちょくちょく出てくるかも。

Cube君
Cube君

使えるようにだけはしてくれたよ

最低限だけどね。一応使えるようにしといたから。
君の顔作るの大変だったんだよ!(1分程度)
キャラにするならあんな雑なのは使いにくいからね。

チョッピー
チョッピー

それでは!(ちゃっかり自分も作った)

コメント