using UnityEngine; /// /// Used on short-lived graphical-effect prefabs to self-destruct after a fixed amount of time. /// Note: this is still safe to use, but is now superceded by SpecialFXGraphic: just set the /// AutoShutdownTime of that component and it will perform a timed self-destruct. /// /// /// Note that if you're creating an ActionFX that has ANY chance of being prematurely cancelled /// (such as due to the character being stunned or knocked back or killed), you shouldn't use this. /// Instead you should use a SpecialFXGraphic component, so the ActionFX can turn off the graphics elegantly. /// (This lets us turn off particle emissions and wait for the existing ones to end before Destroy()ing. /// If you Destroy() a particle-system that's actively rendering particles, it can look like a bug to players.) /// /// Also, performance note: self-destruction is a convenient idiom but not the most performant one. In games /// for mobile devices (and other lower-graphics-power platforms), it's best to use object pooling instead. /// namespace Unity.BossRoom.Utils { public class TimedSelfDestruct : MonoBehaviour { [SerializeField] private float m_LifespanSeconds; private void Start() { Destroy(gameObject, m_LifespanSeconds); } } }