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(); } }
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); }
/************************************************************************ * 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(); }
public void Save() { string jsonStr = JsonUtility.ToJson(this._data); XTweenEditorManager.WriteText(this.JsonPath, jsonStr); }