|
@@ -8,7 +8,6 @@ using UnityEngine;
|
|
|
public class UITweenControllerInspector : Editor
|
|
|
{
|
|
|
private UITweenController _uiTweenController;
|
|
|
-
|
|
|
// private float currValue;
|
|
|
|
|
|
public override void OnInspectorGUI()
|
|
@@ -19,10 +18,57 @@ public class UITweenControllerInspector : Editor
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ _uiTweenController.SetMaxTime();
|
|
|
+ EditorGUI.BeginChangeCheck();
|
|
|
+ _uiTweenController.currTime =
|
|
|
+ EditorGUILayout.Slider(_uiTweenController.currTime, 0, _uiTweenController.maxDuration);
|
|
|
+ if (EditorGUI.EndChangeCheck())
|
|
|
+ {
|
|
|
+ if (!_uiTweenController.isUpdate)
|
|
|
+ {
|
|
|
+ _uiTweenController.JumpToTime(_uiTweenController.currTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
EditorGUILayout.BeginHorizontal();
|
|
|
- EditorGUILayout.ObjectField("动画资源", _uiTweenController.TweenAssetInfo, typeof(TweenAssetInfo), false);
|
|
|
+ if (GUILayout.Button("添加新的片段"))
|
|
|
+ {
|
|
|
+ _uiTweenController.GrpupInfos.Add(new TweenAssetGrpupInfo());
|
|
|
+ EditorUtility.SetDirty(_uiTweenController);
|
|
|
+ EditorUtility.SetDirty(_uiTweenController.gameObject);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (GUILayout.Button("播放"))
|
|
|
+ {
|
|
|
+ _uiTweenController.StartPlay();
|
|
|
+ }
|
|
|
|
|
|
- if (_uiTweenController.TweenAssetInfo == null)
|
|
|
+ EditorGUILayout.EndHorizontal();
|
|
|
+ for (int i = 0; i < _uiTweenController.GrpupInfos.Count; i++)
|
|
|
+ {
|
|
|
+ TweenAssetGrpupInfo tweenAssetGrpupInfo = _uiTweenController.GrpupInfos[i];
|
|
|
+ tweenAssetGrpupInfo.Foldout = EditorGUILayout.Foldout(tweenAssetGrpupInfo.Foldout,
|
|
|
+ tweenAssetGrpupInfo.animName);
|
|
|
+ if (tweenAssetGrpupInfo.Foldout)
|
|
|
+ {
|
|
|
+ EditorGUI.indentLevel++;
|
|
|
+ DrawGrpup(_uiTweenController.GrpupInfos[i]);
|
|
|
+ GUILayout.Space(10);
|
|
|
+ EditorGUI.indentLevel--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ serializedObject.ApplyModifiedProperties();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void DrawGrpup(TweenAssetGrpupInfo _tweenAssetGrpupInfo)
|
|
|
+ {
|
|
|
+ EditorGUI.BeginChangeCheck();
|
|
|
+ EditorGUILayout.BeginHorizontal();
|
|
|
+ _tweenAssetGrpupInfo.TweenAssetInfo=(TweenAssetInfo) EditorGUILayout.ObjectField("动画资源", _tweenAssetGrpupInfo.TweenAssetInfo, typeof(TweenAssetInfo), false);
|
|
|
+
|
|
|
+ if (_tweenAssetGrpupInfo.TweenAssetInfo == null)
|
|
|
{
|
|
|
if (GUILayout.Button("创建一个动画资源"))
|
|
|
{
|
|
@@ -31,51 +77,46 @@ public class UITweenControllerInspector : Editor
|
|
|
if (!string.IsNullOrEmpty(selectedFolder))
|
|
|
{
|
|
|
string path = selectedFolder.Replace(Application.dataPath, "Assets");
|
|
|
- _uiTweenController.TweenAssetInfo = ScriptableObject.CreateInstance<TweenAssetInfo>();
|
|
|
- AssetDatabase.CreateAsset(_uiTweenController.TweenAssetInfo,
|
|
|
+ _tweenAssetGrpupInfo.TweenAssetInfo = ScriptableObject.CreateInstance<TweenAssetInfo>();
|
|
|
+ AssetDatabase.CreateAsset(_tweenAssetGrpupInfo.TweenAssetInfo,
|
|
|
path + $"/TweenAssetInfo{_uiTweenController.gameObject.name}.asset");
|
|
|
AssetDatabase.SaveAssets();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- EditorGUILayout.EndHorizontal();
|
|
|
- if (_uiTweenController.TweenAssetInfo == null)
|
|
|
+ if (GUILayout.Button("-"))
|
|
|
{
|
|
|
- return;
|
|
|
+ _uiTweenController.GrpupInfos.Remove(_tweenAssetGrpupInfo);
|
|
|
}
|
|
|
|
|
|
- _uiTweenController.SetMaxTime();
|
|
|
- EditorGUI.BeginChangeCheck();
|
|
|
- _uiTweenController.currTime = EditorGUILayout.Slider(_uiTweenController.currTime, 0, _uiTweenController.maxDuration);
|
|
|
- if (EditorGUI.EndChangeCheck())
|
|
|
+ EditorGUILayout.EndHorizontal();
|
|
|
+ EditorGUILayout.BeginHorizontal();
|
|
|
+ _tweenAssetGrpupInfo.isActive = EditorGUILayout.Toggle("是否激活", _tweenAssetGrpupInfo.isActive);
|
|
|
+ _tweenAssetGrpupInfo.animName = EditorGUILayout.TextField("片段名", _tweenAssetGrpupInfo.animName);
|
|
|
+ EditorGUILayout.EndHorizontal();
|
|
|
+ if (_tweenAssetGrpupInfo.TweenAssetInfo == null)
|
|
|
{
|
|
|
- if (!_uiTweenController.isUpdate)
|
|
|
- {
|
|
|
- _uiTweenController.JumpToTime(_uiTweenController.currTime);
|
|
|
- }
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
- if (GUILayout.Button("播放"))
|
|
|
- {
|
|
|
- _uiTweenController.StartPlay();
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
- _uiTweenController.TargetFoldout = EditorGUILayout.Foldout(_uiTweenController.TargetFoldout,
|
|
|
+ _tweenAssetGrpupInfo.TargetFoldout = EditorGUILayout.Foldout(_tweenAssetGrpupInfo.TargetFoldout,
|
|
|
"目标");
|
|
|
- if (_uiTweenController.TargetFoldout)
|
|
|
+ if (_tweenAssetGrpupInfo.TargetFoldout)
|
|
|
{
|
|
|
EditorGUI.indentLevel++;
|
|
|
- for (int i = 0; i < _uiTweenController.allTargets.Count; i++)
|
|
|
+ for (int i = 0; i < _tweenAssetGrpupInfo.allTargets.Count; i++)
|
|
|
{
|
|
|
- Object o = _uiTweenController.allTargets[i];
|
|
|
+ Object o = _tweenAssetGrpupInfo.allTargets[i];
|
|
|
Color color = GUI.color;
|
|
|
if (o == null)
|
|
|
{
|
|
|
GUI.color = Color.red;
|
|
|
}
|
|
|
|
|
|
- _uiTweenController.allTargets[i] =
|
|
|
+ _tweenAssetGrpupInfo.allTargets[i] =
|
|
|
EditorGUILayout.ObjectField($"第{i + 1}个对象{o}", o, typeof(Object), true);
|
|
|
GUI.color = color;
|
|
|
}
|
|
@@ -83,55 +124,53 @@ public class UITweenControllerInspector : Editor
|
|
|
EditorGUI.indentLevel--;
|
|
|
}
|
|
|
|
|
|
- if (_uiTweenController.allTargets.Count > _uiTweenController.TweenAssetInfo.allTweenInfo.Count)
|
|
|
+ if (_tweenAssetGrpupInfo.allTargets.Count > _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.Count)
|
|
|
{
|
|
|
- for (int i = _uiTweenController.allTargets.Count - 1;
|
|
|
- i >= _uiTweenController.TweenAssetInfo.allTweenInfo.Count;
|
|
|
+ for (int i = _tweenAssetGrpupInfo.allTargets.Count - 1;
|
|
|
+ i >= _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.Count;
|
|
|
i--)
|
|
|
{
|
|
|
- _uiTweenController.allTargets.RemoveAt(i);
|
|
|
+ _tweenAssetGrpupInfo.allTargets.RemoveAt(i);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (_uiTweenController.allTargets.Count < _uiTweenController.TweenAssetInfo.allTweenInfo.Count)
|
|
|
+ if (_tweenAssetGrpupInfo.allTargets.Count < _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.Count)
|
|
|
{
|
|
|
- for (int i = _uiTweenController.allTargets.Count;
|
|
|
- i < _uiTweenController.TweenAssetInfo.allTweenInfo.Count;
|
|
|
+ for (int i = _tweenAssetGrpupInfo.allTargets.Count;
|
|
|
+ i < _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.Count;
|
|
|
i++)
|
|
|
{
|
|
|
- _uiTweenController.allTargets.Add(new Object());
|
|
|
+ _tweenAssetGrpupInfo.allTargets.Add(new Object());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- EditorGUI.BeginChangeCheck();
|
|
|
- for (int i = 0; i < _uiTweenController.TweenAssetInfo.allTweenInfo.Count; i++)
|
|
|
+
|
|
|
+ for (int i = 0; i < _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.Count; i++)
|
|
|
{
|
|
|
- TweenEntity tweenEntity = _uiTweenController.TweenAssetInfo.allTweenInfo[i];
|
|
|
+ TweenEntity tweenEntity = _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo[i];
|
|
|
|
|
|
|
|
|
- Object o = _uiTweenController.allTargets[i];
|
|
|
- DrawTweenEntity(tweenEntity, o, i);
|
|
|
+ Object o = _tweenAssetGrpupInfo.allTargets[i];
|
|
|
+ DrawTweenEntity(_tweenAssetGrpupInfo, tweenEntity, o, i);
|
|
|
}
|
|
|
|
|
|
if (GUILayout.Button("添加动画"))
|
|
|
{
|
|
|
- _uiTweenController.TweenAssetInfo.allTweenInfo.Add(new TweenEntity()
|
|
|
+ _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.Add(new TweenEntity()
|
|
|
{ TweenBasic = new TweenTransform() { } });
|
|
|
- _uiTweenController.allTargets.Add(new Object());
|
|
|
+ _tweenAssetGrpupInfo.allTargets.Add(new Object());
|
|
|
}
|
|
|
|
|
|
if (EditorGUI.EndChangeCheck())
|
|
|
{
|
|
|
- EditorUtility.SetDirty(_uiTweenController.TweenAssetInfo);
|
|
|
+ EditorUtility.SetDirty(_tweenAssetGrpupInfo.TweenAssetInfo);
|
|
|
EditorUtility.SetDirty(_uiTweenController.gameObject);
|
|
|
- AssetDatabase.SaveAssets();
|
|
|
+ // AssetDatabase.SaveAssets();
|
|
|
}
|
|
|
-
|
|
|
- serializedObject.ApplyModifiedProperties();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- private void DrawTweenEntity(TweenEntity tweenEntity, Object ob, int index)
|
|
|
+ private void DrawTweenEntity(TweenAssetGrpupInfo _tweenAssetGrpupInfo, TweenEntity tweenEntity, Object ob,
|
|
|
+ int index)
|
|
|
{
|
|
|
Color color = GUI.color;
|
|
|
if (ob == null)
|
|
@@ -149,11 +188,11 @@ public class UITweenControllerInspector : Editor
|
|
|
// 设置背景颜色
|
|
|
EditorGUILayout.BeginHorizontal();
|
|
|
ob = (Object)EditorGUILayout.ObjectField("目标", ob, typeof(Object));
|
|
|
- _uiTweenController.allTargets[index] = ob;
|
|
|
+ _tweenAssetGrpupInfo.allTargets[index] = ob;
|
|
|
if (GUILayout.Button("-"))
|
|
|
{
|
|
|
- _uiTweenController.TweenAssetInfo.allTweenInfo.RemoveAt(index);
|
|
|
- _uiTweenController.allTargets.RemoveAt(index);
|
|
|
+ _tweenAssetGrpupInfo.TweenAssetInfo.allTweenInfo.RemoveAt(index);
|
|
|
+ _tweenAssetGrpupInfo.allTargets.RemoveAt(index);
|
|
|
}
|
|
|
|
|
|
EditorGUILayout.EndHorizontal();
|