void OnDisable() { window = null; if(aData != null && saveChanges) { AMTakeData take = aData.currentTake; bool saveNumFrames = true; if((numFrames < take.numFrames) && (take.hasKeyAfter(numFrames))) { if(!EditorUtility.DisplayDialog("Data Will Be Lost", "You will lose some keys beyond frame " + numFrames + " if you continue.", "Continue Anway", "Cancel")) { saveNumFrames = false; } } string label = take.name+": Modify Settings"; AMTimeline.RegisterTakesUndo(aData, label, true); take = aData.currentTake; if(saveNumFrames) { Undo.RegisterCompleteObjectUndo(AnimatorDataEdit.GetKeysAndTracks(take), label); // save numFrames take.numFrames = numFrames; AMKey[]dkeys = take.removeKeysAfter(aData.target, numFrames); foreach(AMKey dkey in dkeys) Undo.DestroyObjectImmediate(dkey); // save data foreach(AMTrack track in take.trackValues) { foreach(AMKey key in track.keys) EditorUtility.SetDirty(key); EditorUtility.SetDirty(track); } } // save frameRate take.frameRate = frameRate; //save other data take.numLoop = loopCount; take.loopMode = loopMode; take.loopBackToFrame = Mathf.Clamp(loopBackFrame, -1, numFrames); // save data aData.SetDirtyTakes(); EditorWindow.GetWindow(typeof(AMTimeline)).Repaint(); } }
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(); }