Ejemplo n.º 1
0
        private void DrawBehaviorIcons(SceneLoadBehavior behavior, AnimBool expanded)
        {
            if (DGUI.AlphaGroup.Begin(Mathf.Clamp(1 - expanded.faded, 0.2f, 1f)))
            {
                GUILayout.BeginHorizontal(GUILayout.Height(NormalBarHeight));
                {
                    GUILayout.FlexibleSpace();

                    if (!m_loadBehaviorIconsDatabase.ContainsKey(behavior))
                    {
                        m_loadBehaviorIconsDatabase.Add(behavior, new List <DGUI.IconGroup.Data>());
                    }

                    //GET Actions Icons
                    m_loadBehaviorIconsDatabase[behavior] = DGUI.Doozy.GetBehaviorActionsIcons(m_loadBehaviorIconsDatabase[behavior],
                                                                                               behavior.HasSound,
                                                                                               behavior.HasEffect,
                                                                                               behavior.HasAnimatorEvents,
                                                                                               behavior.HasGameEvents,
                                                                                               behavior.HasUnityEvents,
                                                                                               ComponentColorName);

                    //DRAW Actions Icons
                    if (m_loadBehaviorIconsDatabase[behavior].Count > 0)
                    {
                        GUILayout.Space(DGUI.Properties.Space(4));
                        DGUI.IconGroup.Draw(m_loadBehaviorIconsDatabase[behavior], NormalBarHeight - DGUI.Properties.Space(4), false);
                    }

                    GUILayout.Space(DGUI.Properties.Space(3));
                }
                GUILayout.EndHorizontal();
            }

            DGUI.AlphaGroup.End();
        }
Ejemplo n.º 2
0
        private void DrawBehavior(string behaviorName, SceneLoadBehavior behavior, SerializedProperty behaviorProperty, AnimBool behaviorExpanded)
        {
            SerializedProperty loadSceneProperty   = GetProperty(PropertyName.OnLoadScene, behaviorProperty);
            SerializedProperty sceneLoadedProperty = GetProperty(PropertyName.OnSceneLoaded, behaviorProperty);

            AnimBool loadSceneExpanded   = GetAnimBool(loadSceneProperty.propertyPath, loadSceneProperty.isExpanded);
            AnimBool sceneLoadedExpanded = GetAnimBool(sceneLoadedProperty.propertyPath, sceneLoadedProperty.isExpanded);

            if (DGUI.Bar.Draw(behaviorName, NORMAL_BAR_SIZE, DGUI.Bar.Caret.CaretType.Caret, ComponentColorName, behaviorExpanded))
            {
                SoundyAudioPlayer.StopAllPlayers();
            }

            GUILayout.Space(-NormalBarHeight);

            DrawBehaviorIcons(behavior, behaviorExpanded);

            if (DGUI.FadeOut.Begin(behaviorExpanded, false))
            {
                GUILayout.BeginVertical();
                {
                    GUILayout.Space(DGUI.Properties.Space() * behaviorExpanded.faded);

                    GUILayout.BeginHorizontal();
                    {
                        if (DGUI.Doozy.DrawSectionButtonLeft(loadSceneExpanded.target,
                                                             UILabels.OnLoadScene + " (0%)",
                                                             DGUI.Icon.ActionStart,
                                                             ComponentColorName,
                                                             DGUI.Doozy.GetActionsIcons(behavior.OnLoadScene,
                                                                                        m_behaviorActionsIconsDatabase,
                                                                                        ComponentColorName)))
                        {
                            loadSceneExpanded.target  = true;
                            sceneLoadedExpanded.value = false;
                            SoundyAudioPlayer.StopAllPlayers();
                        }

                        GUILayout.Space(DGUI.Properties.Space());

                        if (DGUI.Doozy.DrawSectionButtonRight(sceneLoadedExpanded.target,
                                                              UILabels.OnSceneLoaded + " (90%)",
                                                              DGUI.Icon.ActionFinished,
                                                              ComponentColorName,
                                                              DGUI.Doozy.GetActionsIcons(behavior.OnSceneLoaded,
                                                                                         m_behaviorActionsIconsDatabase,
                                                                                         ComponentColorName)))
                        {
                            loadSceneExpanded.value    = false;
                            sceneLoadedExpanded.target = true;
                            SoundyAudioPlayer.StopAllPlayers();
                        }
                    }
                    GUILayout.EndHorizontal();

                    if (behaviorExpanded.target && !loadSceneExpanded.target && !sceneLoadedExpanded.target)
                    {
                        loadSceneExpanded.value = true;
                    }

                    loadSceneProperty.isExpanded   = loadSceneExpanded.target;
                    sceneLoadedProperty.isExpanded = sceneLoadedExpanded.target;

                    GUILayout.Space(DGUI.Properties.Space(3) * behaviorExpanded.faded);

                    DrawBehaviorActions(behavior.OnLoadScene, loadSceneProperty, loadSceneExpanded, "OnLoadScene");
                    DrawBehaviorActions(behavior.OnSceneLoaded, sceneLoadedProperty, sceneLoadedExpanded, "OnSceneLoaded");
                }
                GUILayout.EndVertical();
            }

            DGUI.FadeOut.End(behaviorExpanded);

            behaviorProperty.isExpanded = behaviorExpanded.target;
        }