void DoToolbarGUI() { GUILayout.BeginHorizontal("Toolbar"); using (new EditorGUI.DisabledScope(m_ParticleEffectUI == null)) { if (!EditorApplication.isPlaying) { bool isPlaying = false; if (m_ParticleEffectUI != null) { isPlaying = m_ParticleEffectUI.IsPlaying(); } if (GUILayout.Button(isPlaying ? ParticleEffectUI.texts.pause : ParticleEffectUI.texts.play, "ToolbarButton", GUILayout.Width(65))) { if (m_ParticleEffectUI != null) { if (isPlaying) { m_ParticleEffectUI.Pause(); } else { m_ParticleEffectUI.Play(); } } Repaint(); // we switch texts } if (GUILayout.Button(ParticleEffectUI.texts.stop, "ToolbarButton")) { if (m_ParticleEffectUI != null) { m_ParticleEffectUI.Stop(); } } } else { // In play mode we have pulse play behavior if (GUILayout.Button(ParticleEffectUI.texts.play, "ToolbarButton", GUILayout.Width(65))) { if (m_ParticleEffectUI != null) { m_ParticleEffectUI.Stop(); m_ParticleEffectUI.Play(); } } if (GUILayout.Button(ParticleEffectUI.texts.stop, "ToolbarButton")) { if (m_ParticleEffectUI != null) { m_ParticleEffectUI.Stop(); } } } GUILayout.FlexibleSpace(); bool isShowOnlySelected = m_ParticleEffectUI != null?m_ParticleEffectUI.IsShowOnlySelectedMode() : false; bool newState = GUILayout.Toggle(isShowOnlySelected, isShowOnlySelected ? "Show: Selected" : "Show: All", ParticleSystemStyles.Get().toolbarButtonLeftAlignText, GUILayout.Width(100)); if (newState != isShowOnlySelected && m_ParticleEffectUI != null) { m_ParticleEffectUI.SetShowOnlySelectedMode(newState); } // Resimulation toggle ParticleSystemEditorUtils.resimulation = GUILayout.Toggle(ParticleSystemEditorUtils.resimulation, ParticleEffectUI.texts.resimulation, "ToolbarButton"); // Bounds toggle ParticleEffectUI.m_ShowBounds = GUILayout.Toggle(ParticleEffectUI.m_ShowBounds, ParticleEffectUI.texts.showBounds, "ToolbarButton"); // Editor layout if (GUILayout.Button(ParticleEffectUI.m_VerticalLayout ? s_Icons[0] : s_Icons[1], "ToolbarButton")) { ParticleEffectUI.m_VerticalLayout = !ParticleEffectUI.m_VerticalLayout; EditorPrefs.SetBool("ShurikenVerticalLayout", ParticleEffectUI.m_VerticalLayout); { Clear(); } } // Lock toggle GUILayout.BeginVertical(); GUILayout.Space(3); ParticleSystem lockedParticleSystem = ParticleSystemEditorUtils.lockedParticleSystem; bool isLocked = lockedParticleSystem != null; bool newLocked = GUILayout.Toggle(isLocked, s_Texts.lockParticleSystem, "IN LockButton"); if (isLocked != newLocked) { if (m_ParticleEffectUI != null && m_Target != null) { if (newLocked) { ParticleSystemEditorUtils.lockedParticleSystem = m_Target; } else { ParticleSystemEditorUtils.lockedParticleSystem = null; } } } GUILayout.EndVertical(); } GUILayout.EndHorizontal(); }