Beispiel #1
0
        void OnEnable()
        {
            window = this;
            #if UNITY_5
            titleContent = new GUIContent("Settings");
            #else
            title = "Settings";
            #endif
            minSize = new Vector2(280f, 190f);
            //maxSize = this.minSize;

            oData = AMOptionsFile.loadFile();
            loadAnimatorData();
        }
Beispiel #2
0
        void OnGUI()
        {
            AMTimeline.loadSkin(ref skin,ref cachedSkinName, position);
            if(aData == null) {
                AMTimeline.MessageBox("Animator requires an AnimatorData component in your scene. Launch Animator to add the component.", AMTimeline.MessageBoxType.Warning);
                return;
            }
            if(!oData) oData = AMOptionsFile.loadFile();
            GUILayout.BeginHorizontal();
            #region tab selection
            //GUI.DrawTexture(new Rect(0f,0f,120f,position.height),GUI.skin.GetStyle("GroupElementBG")/*GUI.skin.GetStyle("GroupElementBG").onNormal.background*/);
            GUIStyle styleTabSelectionBG = new GUIStyle(GUI.skin.GetStyle("GroupElementBG"));
            styleTabSelectionBG.normal.background = EditorStyles.toolbar.normal.background;
            GUILayout.BeginVertical(/*GUI.skin.GetStyle("GroupElementBG")*/styleTabSelectionBG, GUILayout.Width(121f));
            EditorGUIUtility.LookLikeControls();
            GUIStyle styleTabButton = new GUIStyle(EditorStyles.toolbarButton);
            styleTabButton.fontSize = 12;
            styleTabButton.fixedHeight = 30;
            styleTabButton.onNormal.background = styleTabButton.onActive.background;
            styleTabButton.onFocused.background = null;
            styleTabButton.onHover.background = null;
            tabIndex = GUILayout.SelectionGrid(tabIndex, tabNames, 1, styleTabButton);
            GUILayout.EndVertical();
            #endregion
            #region options
            GUILayout.BeginVertical();
            EditorGUIUtility.LookLikeControls();

            GUIStyle styleArea = new GUIStyle(GUI.skin.textArea);
            scrollView = GUILayout.BeginScrollView(scrollView, styleArea);
            List<string> takeNames = getTakeNames();

            GUIStyle styleTitle =  new GUIStyle(GUI.skin.label);
            styleTitle.fontSize = 20;
            styleTitle.fontStyle = FontStyle.Bold;

            // tab title
            GUILayout.BeginHorizontal();
            GUILayout.Space(width_indent);
            GUILayout.Label(tabNames[tabIndex], styleTitle);
            GUILayout.EndHorizontal();
            GUILayout.Space(10f);

            #region general
            if(tabIndex == (int)tabType.General) {
                List<string> takeNamesWithNone = new List<string>(takeNames);
                takeNamesWithNone.Insert(0, "None");

                // gizmo size
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f), GUILayout.Width(80f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Gizmo size", GUILayout.Width(80f));
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();

                float newGizmoSize = GUILayout.HorizontalSlider(oData.gizmo_size, 0f, 0.1f, GUILayout.ExpandWidth(true));
                if(oData.gizmo_size != newGizmoSize) {
                    oData.gizmo_size = newGizmoSize;
                    AnimatorTimeline.e_gizmoSize = newGizmoSize;
                    GUIUtility.keyboardControl = 0;
                    EditorUtility.SetDirty(oData);
                }

                GUILayout.BeginVertical(GUILayout.Height(26f), GUILayout.Width(75f));
                GUILayout.FlexibleSpace();
                newGizmoSize = EditorGUILayout.FloatField(oData.gizmo_size, GUI.skin.textField, GUILayout.Width(75f));
                if(oData.gizmo_size != newGizmoSize) {
                    oData.gizmo_size = newGizmoSize;
                    AnimatorTimeline.e_gizmoSize = newGizmoSize;
                    EditorUtility.SetDirty(oData);
                }

                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
                // pixel/unit default
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                EditorGUIUtility.labelWidth = 250.0f;
                float ppu = EditorGUILayout.FloatField("Pixel/Unit Default", oData.pixelPerUnitDefault);
                if(ppu <= 0.001f) ppu = 0.001f;
                if(oData.pixelPerUnitDefault != ppu) {
                    oData.pixelPerUnitDefault = ppu;
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(4.0f);
                // sprite drag/drop fps
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                EditorGUIUtility.labelWidth = 250.0f;
                int nfps = EditorGUILayout.IntField("Sprite Insert Frame/Second", oData.spriteInsertFramePerSecond);
                if(nfps <= 0) nfps = 1;
                if(oData.spriteInsertFramePerSecond != nfps) {
                    oData.spriteInsertFramePerSecond = nfps;
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                // time instead of frame numbers
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Show time instead of frame numbers");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.setTimeNumbering(GUILayout.Toggle(oData.time_numbering, ""))) {
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                // scrubby zoom cursor
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Scrubby zoom cursor");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.setScrubbyZoomCursor(GUILayout.Toggle(oData.scrubby_zoom_cursor, ""))) {
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                // scrubby zoom slider
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Scrubby zoom slider");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.setScrubbyZoomSlider(GUILayout.Toggle(oData.scrubby_zoom_slider, ""))) {
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                // show warning for lost references
                /*GUILayout.BeginHorizontal();
                    GUILayout.Space(width_indent);
                    GUILayout.BeginVertical(GUILayout.Height(26f));
                        GUILayout.FlexibleSpace();
                        GUILayout.Label ("Show warning for lost references");
                        GUILayout.FlexibleSpace();
                    GUILayout.EndVertical();
                    if(oData.setShowWarningForLostReferences(GUILayout.Toggle(oData.showWarningForLostReferences,""))) {
                        // save
                        EditorUtility.SetDirty(oData);
                    }
                GUILayout.EndHorizontal();*/
                // ignore minimum window size warning
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Ignore minimum window size warning");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.setIgnoreMinimumSizeWarning(GUILayout.Toggle(oData.ignoreMinSize, ""))) {
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                // show frames for collapsed tracks
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Show frames for collapsed tracks");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.setShowFramesForCollapsedTracks(GUILayout.Toggle(oData.showFramesForCollapsedTracks, ""))) {
                    // save
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
                // disable timeline actions
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Hide Timeline Actions (May increase editor performance)");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.setDisableTimelineActions(GUILayout.Toggle(oData.disableTimelineActions, ""))) {
                    // save
                    EditorUtility.SetDirty(oData);
                    AMTimeline.recalculateNumFramesToRender();
                }
                GUILayout.EndHorizontal();
                // disable timeline actions tooltip
                if(oData.disableTimelineActions) GUI.enabled = false;
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical(GUILayout.Height(26f));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Enable Timeline Actions tooltip");
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                if(oData.disableTimelineActions) {
                    GUILayout.Toggle(false, "");
                }
                else {
                    if(oData.setDisableTimelineActionsTooltip(!GUILayout.Toggle(!oData.disableTimelineActionsTooltip, ""))) {
                        // save
                        EditorUtility.SetDirty(oData);
                    }
                }
                GUILayout.EndHorizontal();
            }
            #endregion
            #region quick add
            else if(tabIndex == (int)tabType.QuickAdd) {
                EditorGUIUtility.LookLikeControls();
                GUILayout.Space(3f);
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.Label("Combinations");
                GUILayout.EndHorizontal();
                if(oData.quickAdd_Combos == null) oData.quickAdd_Combos = new List<List<int>>();
                for(int j = 0; j < oData.quickAdd_Combos.Count; j++) {
                    GUILayout.Space(3f);
                    GUILayout.BeginHorizontal();
                    GUILayout.Space(width_indent);
                    for(int i = 0; i < oData.quickAdd_Combos[j].Count; i++) {
                        if(oData.setQuickAddCombo(j, i, EditorGUILayout.Popup(oData.quickAdd_Combos[j][i], AMTimeline.TrackNames, GUILayout.Width(80f)))) {
                            oData.flatten_quickAdd_Combos();
                            EditorUtility.SetDirty(oData);
                        }
                        if(i < oData.quickAdd_Combos[j].Count - 1) GUILayout.Label("+");
                    }
                    GUILayout.FlexibleSpace();
                    if(oData.quickAdd_Combos[j].Count > 0)
                        if(GUILayout.Button("-", GUILayout.Width(20f), GUILayout.Height(20f))) {
                            oData.quickAdd_Combos[j].RemoveAt(oData.quickAdd_Combos[j].Count - 1);
                            if(oData.quickAdd_Combos[j].Count == 0) {
                                oData.quickAdd_Combos.RemoveAt(j);
                                j--;
                            }
                            oData.flatten_quickAdd_Combos();
                            EditorUtility.SetDirty(oData);
                        }
                    if(GUILayout.Button("+", GUILayout.Width(20f), GUILayout.Height(20f))) {
                        oData.quickAdd_Combos[j].Add((int)AMTimeline.Track.Translation);
                        oData.flatten_quickAdd_Combos();
                        EditorUtility.SetDirty(oData);
                    }
                    GUILayout.EndHorizontal();
                }
                GUILayout.Space(3f);
                GUILayout.BeginHorizontal();
                if(oData.quickAdd_Combos.Count <= 0) {
                    GUILayout.Space(width_indent);
                    GUILayout.Label("Click '+' to add a new combination");
                }
                GUILayout.FlexibleSpace();
                // new combo
                if(GUILayout.Button("+", GUILayout.Width(20f), GUILayout.Height(20f))) {
                    oData.quickAdd_Combos.Add(new List<int> { (int)AMTimeline.Track.Translation });
                    oData.flatten_quickAdd_Combos();
                    EditorUtility.SetDirty(oData);
                }
                GUILayout.EndHorizontal();
            }
            #endregion
            #region import / export
            else if(tabIndex == (int)tabType.ImportExport) {
                GUIStyle labelRight = new GUIStyle(GUI.skin.label);
                labelRight.alignment = TextAnchor.MiddleRight;
                GUILayout.Space(10f);
                GUILayout.BeginHorizontal(GUILayout.Width(300f));
                GUILayout.Space(width_indent);
                GUILayout.BeginVertical();
                GUILayout.Space(1f);
                GUILayout.Label("Take(s):", labelRight, GUILayout.Width(55f));
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                GUILayout.Space(1f);
                if(GUILayout.Button("Import", GUILayout.Width(60f))) {
                    //TODO: undo "Import Take(s)"
                    string importTakesPath = EditorUtility.OpenFilePanel("Import Take(s)", "Assets/", "unity");
                    if(importTakesPath != "") AMTakeImport.openAdditiveAndDeDupe(importTakesPath);
                }
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                GUILayout.Space(1f);
                if(GUILayout.Button("Export:", GUILayout.Width(60f))) {
                    if(!exportAllTakes) AMTakeExport.take = aData.GetTake(takeNames[exportTakeIndex]);
                    else AMTakeExport.take = null;
                    //AMTakeExport.aData = aData;
                    //EditorWindow.GetWindow (typeof (AMTakeExport)).ShowUtility();
                    EditorWindow windowExport = ScriptableObject.CreateInstance<AMTakeExport>();
                    windowExport.ShowUtility();
                }
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                exportAllTakes = (GUILayout.Toggle(!exportAllTakes, "") ? false : exportAllTakes);
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                GUILayout.Space(4f);
                setExportTakeIndex(EditorGUILayout.Popup(exportTakeIndex, takeNames.ToArray(), GUILayout.Width(100f)));
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                exportAllTakes = (GUILayout.Toggle(exportAllTakes, "") ? true : exportAllTakes);
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                GUILayout.Space(2f);
                GUILayout.Label("All Takes");
                GUILayout.EndVertical();

                GUILayout.EndHorizontal();
                GUILayout.Space(3f);
                GUILayout.BeginHorizontal();
                GUILayout.Space(width_indent);
                GUILayout.Label("Options:", labelRight, GUILayout.Width(55f));
                if(GUILayout.Button("Import", GUILayout.Width(60f))) {
                    //TODO: undo for "Import Options"
                    string importOptionsPath = EditorUtility.OpenFilePanel("Import Options", "Assets/Animator", "unitypackage");
                    if(importOptionsPath != "") {
                        AssetDatabase.ImportPackage(importOptionsPath, true);
                        this.Close();
                    }
                }
                if(GUILayout.Button("Export", GUILayout.Width(60f))) {
                    AMOptionsFile.export();
                }
                GUILayout.EndHorizontal();
            }
            #endregion
            #region about
            else if(tabIndex == (int)tabType.About) {
                GUILayout.Space(3f);

                string message = "Animator v" + version + ", Originally by Abdulla Ameen (c) 2012.  Modified by David Dionisio under the Creative Commons Attribution-NonCommercial 3.0 Unported License.\n\nPlease have a look at the documentation if you need help, or e-mail [email protected] for further assistance.";
                message += "\n\nHOTween by Daniele Giardini\n\nAdditional code contributions by:\nQuick Fingers, Eric Haines";
                GUIStyle styleInfo = new GUIStyle(GUI.skin.label);
                GUILayout.BeginHorizontal();
                GUILayout.Space(5);
                styleInfo.wordWrap = true;
                GUILayout.Label(message, styleInfo);
                GUILayout.EndHorizontal();
            }
            #endregion
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            #endregion
            GUILayout.EndHorizontal();
        }
Beispiel #3
0
        void OnEnable()
        {
            if(!texLoaded) {
                tex_orb = AMEditorResource.LoadEditorTexture("am_orb");
                texLoaded = true;
            }

            window = this;
            this.maxSize = new Vector2(715f,398f);
            this.minSize = this.maxSize;
            this.wantsMouseMove = true;
            loadAnimatorData();
            oData = AMOptionsFile.loadFile();
            setupFilteredCategories();

            selectedIndex = getCategoryIndexForEase(key.easeType);

            if(getSelectedEaseName(category,selectedIndex) == "Custom") {
                isCustomEase = true;
            }
            if(isCustomEase && key.customEase.Count > 0) {
                curve = key.getCustomEaseCurve();
            } else {
                setEasingCurve();
            }
        }
Beispiel #4
0
        void OnEnable()
        {
            window = this;
            #if UNITY_5
            titleContent = new GUIContent("Options");
            #else
            title = "Options";
            #endif
            minSize = new Vector2(545f, 365f);
            maxSize = new Vector2(1000f, this.minSize.y);

            loadAnimatorData();
            oData = AMOptionsFile.loadFile();

            //if(aData) exportTakeIndex = aData.GetTakeIndex(AMTimeline.window.currentTake);
        }
        void OnEnable()
        {
            LoadTextures();

            window = this;
            setWindowSize();
            this.wantsMouseMove = true;
            loadAnimatorData();
            oData = AMOptionsFile.loadFile();
            // set up here
        }