Example #1
0
 private void Load()
 {
     if (File.Exists(this.JsonPath))
     {
         string jsonStr = XTweenEditorManager.ReadText(this.JsonPath);
         this._data = JsonUtility.FromJson <XTweenData>(jsonStr);
     }
     else
     {
         this._data = new XTweenData();
         this.Save();
     }
 }
Example #2
0
        private void UpdateReleasePath()
        {
            string first   = "Version(Alpha) ";
            string end     = ".unitypackage)";
            string replace = "Version(Alpha) {VER} - [XTween_{VER}.unitypackage](https://github.com/Toki-Labs/XTween/raw/master/Bin/XTween_{VER}.unitypackage)";

            replace = replace.Replace("{VER}", Data.version);
            string filePath = XTweenEditorManager.AbsPath + "/README.md";
            string content  = XTweenEditorManager.ReadText(filePath);

            content = ReplaceTargetStringInContent(first, end, replace, content);
            XTweenEditorManager.WriteText(filePath, content);

            first   = "<!--Version Start";
            end     = "Version End-->";
            replace =
                "<!--Version Start-->\n" +
                "<p>Version(Alpha) " + Data.version + " - <a href=\"https://github.com/Toki-Labs/XTween/raw/master/Bin/XTween_" + Data.version + ".unitypackage\">XTween_" + Data.version + ".unitypackage</a></p>\n" +
                "<!--Version End-->";
            filePath = XTweenEditorManager.AbsPath + "/Export/index.html";
            content  = XTweenEditorManager.ReadText(filePath);
            content  = ReplaceTargetStringInContent(first, end, replace, content);
            XTweenEditorManager.WriteText(filePath, content);
        }
Example #3
0
        /************************************************************************
        *	                Coroutine Declaration	                            *
        ************************************************************************/
        void OnGUI()
        {
            GUILayout.BeginVertical();
            GUILayout.Height(20f);
            GUILayout.BeginVertical("Box");
            {
                GUILayout.Space(3f);
                GUILayout.Label("Easing", "BoldLabel");
                GUILayout.Space(3f);
            }
            GUILayout.EndVertical();

            GUILayout.Space(0f);

            GUILayout.BeginVertical("Box");
            GUILayout.Space(5f);

            //Contents
            List <EasingData> easeList = this._data.easingDataList;

            DrawHeader("Custom Easing List", true);
            {
                GUILayout.Space(-4f);
                GUI.backgroundColor = Color.white;
                GUILayout.BeginVertical("Box", GUILayout.Height(110f));
                this._easingScroll = EditorGUILayout.BeginScrollView(this._easingScroll, GUILayout.MaxHeight(110f));
                int length = easeList.Count;
                if (length > 0)
                {
                    for (int i = 0; i < length; ++i)
                    {
                        EasingData data = this._data.easingDataList[i];
                        GUILayout.Space(-1f);
                        GUI.color = (this._easingIndex == i) ? Color.cyan : Color.white;
                        GUILayout.BeginHorizontal("AS TextArea", GUILayout.Height(25f));
                        bool clicked0 = GUILayout.Button((i + 1).ToString(), "OL TextField", GUILayout.MaxWidth(30f));
                        bool clicked1 = GUILayout.Button(data.name, "BoldLabel");
                        if (clicked0 || clicked1)
                        {
                            this._easingIndex          = i;
                            this._easingName           = data.name;
                            this._easingCurve          = data.animationCurve;
                            GUIUtility.keyboardControl = 0;
                        }
                        // GUI.backgroundColor = this._easingIndex == i ? Color.white : Color.red;
                        if (GUILayout.Button("X", GUILayout.Width(20f)))
                        {
                            this._data.easingDataList.RemoveAt(i);
                            XTweenEditorManager.UpdateEasingName();
                        }
                        // GUI.backgroundColor = Color.white;

                        GUILayout.EndHorizontal();
                        GUI.color = Color.white;
                    }
                }
                EditorGUILayout.EndScrollView();
                GUILayout.EndVertical();
            }
            GUILayout.Space(10f);

            bool isNew = this._easingIndex == -1;

            DrawHeader(isNew ? "Create New Easing" : "Modify Easing", true);
            GUILayout.Space(-4f);
            GUILayout.BeginVertical("Box");
            GUILayout.Space(5f);
            EditorGUIUtility.labelWidth = 110f;

            this._easingName  = EditorGUILayout.TextField("Name", this._easingName, GUILayout.Width(300f)).Replace(" ", "");
            this._easingCurve = EditorGUILayout.CurveField("Easing Graph", this._easingCurve, GUILayout.Width(300f), GUILayout.Height(185f));
            Keyframe[] keys      = this._easingCurve.keys;
            int        keyLength = keys.Length;
            int        keyLast   = keyLength - 1;

            if (keyLength > 1)
            {
                Keyframe frameFirst = keys[0];
                if (frameFirst.value != 0f || frameFirst.time != 0f)
                {
                    frameFirst.value = frameFirst.time = 0f;
                    keys[0]          = frameFirst;
                }

                Keyframe frameLast = keys[keyLast];
                if (frameLast.value != 1f || frameLast.time != 1f)
                {
                    float rateValue = 1f / frameLast.value;
                    float rateTime  = 1f / frameLast.time;
                    for (int i = 0; i < keyLength; ++i)
                    {
                        Keyframe frame = keys[i];
                        if (i == keyLast)
                        {
                            frame.value = frame.time = 0f;
                        }
                        else
                        {
                            frame.value = frame.value * rateValue;
                            frame.time  = frame.time * rateTime;
                        }
                        keys[i] = frame;
                    }
                }

                this._easingCurve.keys = keys;
            }
            else
            {
                this._easingCurve = this.EasingDefault;
            }

            GUILayout.Space(10f);
            string validatedMsg = this.ValidateEasing();
            bool   validated    = validatedMsg == null;

            if (!validated)
            {
                EditorGUILayout.HelpBox(validatedMsg, MessageType.Error);
            }

            if (isNew)
            {
                //Create
                GUI.backgroundColor = validated ? Color.cyan : Color.gray;
                if (GUILayout.Button("Add Easing", GUILayout.Height(30f)) && validated)
                {
                    EasingData data = new EasingData();
                    data.name           = this._easingName;
                    data.animationCurve = this._easingCurve;
                    this._data.easingDataList.Add(data);
                    XTweenEditorManager.UpdateEasingName();
                    this.InitUI();
                }
                GUI.backgroundColor = Color.white;
            }
            else
            {
                //Modify
                GUILayout.BeginHorizontal();
                GUI.backgroundColor = validated ? Color.green : Color.gray;
                if (GUILayout.Button("Save Easing", GUILayout.Height(30f)) && validated)
                {
                    EasingData data       = this._data.easingDataList[this._easingIndex];
                    string     beforeName = data.name;
                    data.name           = this._easingName;
                    data.animationCurve = this._easingCurve;
                    if (beforeName != this._easingName)
                    {
                        XTweenEditorManager.UpdateEasingName();
                    }
                    XTweenEditorData.Instance.Save();
                    GUIUtility.keyboardControl = 0;
                }
                GUI.backgroundColor = Color.white;
                if (GUILayout.Button("Create New", GUILayout.Height(30f)))
                {
                    this.InitUI();
                }
                GUILayout.EndHorizontal();
            }

            GUILayout.Space(5f);
            GUILayout.EndVertical();
            GUILayout.EndVertical();
            GUILayout.EndVertical();
        }
Example #4
0
        public void Save()
        {
            string jsonStr = JsonUtility.ToJson(this._data);

            XTweenEditorManager.WriteText(this.JsonPath, jsonStr);
        }