void OnPlayerStop(bool finished) { var p = (Preview)target; if (finished && p.hasNext) { foreach (var next in p.next) { var editor = (Editor)null; Editor.CreateCachedEditor(next, typeof(PreviewEditor), ref editor); if (editor != null) { ((PreviewEditor)editor).Play(player); } } } else { if (player != null) { player.Cleanup(); } } EditorUpdate(() => { UnregisterPlayerEvents(); livePlayers.Remove(target); player = null; }); }
void Play(PreviewPlayer parent) { EditorUpdate(() => { var p = (Preview)target; player = new PreviewPlayer(p.gameObject); player.parent = parent; player.cooldown = p.hasNext ? 0f : p.cooldown; player.Play((g) => { p.CreateTweens(g); }); RegisterPlayerEvents(); livePlayers.Add(target, player); }); }