2011年9月14日水曜日

Destroyの問題

ゲーム中で何かアイテムを使用するメソッドがあります。
アイテムの効果を実行します。
効果音を再生するようGetComponent<Audiosource>().Play()を行います。
使ったので、そのままDestroy(gameObject)します。

効果音再生がされずにDestroyされました。


GameObjectがDestroyされると効果音再生が終了されるようです。
コンポーネントが消えるからでしょうか。

とりあえず自分で困ったとこを対処したのは
renderer.enabledとcollider.enabledをfalseにする。
Destroyフラグを立てる。

フラグと効果音の再生終了を見て、Destroyを実行する。
描画とコリジョンが無効になるので、これで自分としては困らないかなー

追記
AudioSource.PlayClipAtPoint(AudioClip, Vector3)を使用すれば
効果音再生終了と同時にDestroyしてくれるGameObjectが生成されました。
上記のまどろっこしいことしなくても、このメソッドで一発解決です

1 件のコメント:

  1. Destroyの第2引き数に数字を与えれば、指定時間たってからDestroyされますよ。
    効果音時間がわかっていれば、その方法も便利です。

    返信削除

このガジェットでエラーが発生しました