一定時間で消えるオブジェクト
たとえば、「Misson Complete!!」って表示した後、
一定時間たったら消したい場合ってどうするんだろうなと調べました。
オブジェクトを消す
オブジェクトを消すと言うよりは、
破棄するオブジェクトにスクリプトを乗っけておいて一定時間で自滅してもらう感じ。
以下、適当に書いたこんな感じのスクリプトを、
時限で消したいオブジェクトにのっける。
using UnityEngine; using System.Collections; public class TimeLimitObj : MonoBehaviour { public float life_time = 1.5f; float time = 0f; // Use this for initialization void Start () { time = 0; } // Update is called once per frame void Update () { time += Time.deltaTime; print (time); if(time>life_time){ Destroy(gameObject); } } }
publicでlife_timeを定義してあるので、
インスペクター側で希望の秒数をセットしてもいい。
deltaTimeを覚えた
deltaTimeってのは、updateから次のupdateまでの差分が入ってる。
なので、これを足していけば、こちらが指定した時間でDestroyがきちんと呼ばれる。
これで、どんなフレーム数でもオブジェクトは、ほぼ一定時間で消えるのでした。
なるほど。