private void AddProgressListener(PrefabToggleOpener spawnSite, PrefabToggle[] prefabToggles) { TimedEmitter emitter = spawnSite.FindEmitter(); if (emitter == null) { return; } UpdateFill(emitter.Progress); if (m_OnProgressChanged == null) { m_OnProgressChanged = UpdateFill; } emitter.OnProgressChanged -= m_OnProgressChanged; emitter.OnProgressChanged += m_OnProgressChanged; if (m_FillRoot == null) { return; } PrefabToggle selectedToggle = prefabToggles[spawnSite.SelectedIndex]; m_FillRoot.SetParent(selectedToggle.transform, false); }
private void RemoveEmitterDestroyedListener(PrefabToggleOpener spawnSite) { TimedEmitter emitter = spawnSite.FindEmitter(); if (emitter == null) { return; } TimedEmitter.OnDestroyed -= m_OnEmitterDestroyed; }
private void RemoveProgressListener(PrefabToggleOpener spawnSite) { TimedEmitter emitter = spawnSite.FindEmitter(); if (emitter == null) { return; } emitter.OnProgressChanged -= m_OnProgressChanged; }
private void AddEmitterDestroyedListener(PrefabToggleOpener spawnSite) { TimedEmitter emitter = spawnSite.FindEmitter(); if (emitter == null) { Close(); return; } if (m_OnEmitterDestroyed == null) { m_OnEmitterDestroyed = CloseIfEmitterNamesAreEqual; } TimedEmitter.OnDestroyed -= m_OnEmitterDestroyed; TimedEmitter.OnDestroyed += m_OnEmitterDestroyed; }
/// <summary> /// Strangely, the emitters appear equal but are different. /// </summary> private void CloseIfEmitterNamesAreEqual(TimedEmitter otherEmitter) { if (m_SpawnSite == null) { return; } TimedEmitter emitter = m_SpawnSite.FindEmitter(); if (emitter == null) { return; } if (emitter.name != otherEmitter.name) { return; } Close(); }