У меня есть система частиц, которая исчезает из иерархии при запуске игры. Его нельзя играть в бодрствующем состоянии, и его нельзя уничтожить, когда он закончится. Также нет кода, нацеленного на него, кроме как для вызова его метода start.
Ниже приведен единственный код, предназначенный для частицы:
ParticleSystem[] Fx;
// Start is called before the first frame update
void Start()
{
Fx = GetComponentsInChildren<ParticleSystem> ();
MessageHub.Subscribe ( MessageTopics.DisplayUI_FX_string, DisplayFx );
}
public void DisplayFx( Message displayFxMessage )
{
var fxName = displayFxMessage.Open<string> ();
PlayFx ( fxName );
}
void PlayFx( string name )
{
var fx = Fx.FirstOrDefault ( f => f.name == name );
if ( fx == null )
{
Debug.LogError ( $"UI FX not found! There is no UI FX called {name}" );
return;
}
fx.Play ();
}