98 lines
4.4 KiB
C#
98 lines
4.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|