using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; namespace BFEditor { [CustomEditor(typeof(UIImageSheetAnimation))] public class UIImageSheetAnimationInspector : Editor { UIImageSheetAnimation helper; float cacheWidth; void OnEnable() { helper = target as UIImageSheetAnimation; } public override void OnInspectorGUI() { helper.loop = EditorGUILayout.Toggle("Loop", helper.loop); helper.lifeTime = EditorGUILayout.FloatField("LifeTime", helper.lifeTime); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Tiles"); cacheWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 20; helper.sizeX = EditorGUILayout.IntField("X", helper.sizeX); helper.sizeY = EditorGUILayout.IntField("Y", helper.sizeY); EditorGUIUtility.labelWidth = cacheWidth; EditorGUILayout.EndHorizontal(); helper.animationMode = (UIImageSheetAnimation.AnimationType)EditorGUILayout.EnumPopup("Animation", helper.animationMode); //Single Row if (helper.animationMode == UIImageSheetAnimation.AnimationType.SingleRow) { helper.randomRow = EditorGUILayout.Toggle("Random Row", helper.randomRow); //not random row if (!helper.randomRow) { helper.row = EditorGUILayout.IntField("Row", helper.row); } } //start frame EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Start Frame"); if (helper.startFrameMode == UIImageSheetAnimation.StartFrameType.Constant) { helper.startFrame = EditorGUILayout.FloatField(helper.startFrame); } if (helper.startFrameMode == UIImageSheetAnimation.StartFrameType.RandomBetweenTwoConstants) { helper.startFrameMin = EditorGUILayout.FloatField(helper.startFrameMin); helper.startFrame = EditorGUILayout.FloatField(helper.startFrame); } helper.startFrameMode = (UIImageSheetAnimation.StartFrameType)EditorGUILayout.EnumPopup(helper.startFrameMode); EditorGUILayout.EndHorizontal(); //time mode helper.timeMode = (UIImageSheetAnimation.TimeType)EditorGUILayout.EnumPopup("Time Mode", helper.timeMode); if (helper.timeMode == UIImageSheetAnimation.TimeType.LifeTime) { //frame over time mode base.OnInspectorGUI();//直接使用默认的方式绘制minMaxCurve helper.frameOverTime.curveMultiplier = helper.sizeX * helper.sizeY; // EditorGUILayout.BeginHorizontal(); // EditorGUILayout.LabelField("Frame Over Time"); // if (helper.frameOverTimeMode == UIImageSheetAnimation.FrameOverTimeType.Constant) // { // helper.frameOverTimeValue = EditorGUILayout.FloatField(helper.frameOverTimeValue); // } // if (helper.frameOverTimeMode == UIImageSheetAnimation.FrameOverTimeType.Curve) // { // helper.frameOverTimeCurve = EditorGUILayout.CurveField(helper.frameOverTimeCurve); // } // if (helper.frameOverTimeMode == UIImageSheetAnimation.FrameOverTimeType.RandomBetweenTwoConstants) // { // helper.frameOverTimeValueMin = EditorGUILayout.FloatField(helper.frameOverTimeValueMin); // helper.frameOverTimeValue = EditorGUILayout.FloatField(helper.frameOverTimeValue); // } // if (helper.frameOverTimeMode == UIImageSheetAnimation.FrameOverTimeType.RandomBetweenTwoCurves) // { // helper.frameOverTimeCurve = EditorGUILayout.CurveField(helper.frameOverTimeCurve); // helper.frameOverTimeCurveMax = EditorGUILayout.CurveField(helper.frameOverTimeCurveMax); // } // helper.frameOverTimeMode = (UIImageSheetAnimation.FrameOverTimeType)EditorGUILayout.EnumPopup(helper.frameOverTimeMode); // EditorGUILayout.EndHorizontal(); helper.cycles = EditorGUILayout.FloatField("Cycles", helper.cycles); } if (helper.timeMode == UIImageSheetAnimation.TimeType.FPS) { helper.FPS = EditorGUILayout.FloatField("FPS", helper.FPS); } } } }