Ver Fonte

添加动画系统

DESKTOP-BGJIU14\ck há 4 meses atrás
pai
commit
3238b422c2
36 ficheiros alterados com 1088 adições e 190 exclusões
  1. 20 28
      Assets/Res/UI/HeroDetailPanel.prefab
  2. 8 0
      Assets/Res/UIAnimRes.meta
  3. 39 0
      Assets/Res/UIAnimRes/TweenAssetInfoBox (1).asset
  4. 8 0
      Assets/Res/UIAnimRes/TweenAssetInfoBox (1).asset.meta
  5. 157 0
      Assets/Res/UIAnimRes/TweenAssetInfoHeroDetailPanel.asset
  6. 8 0
      Assets/Res/UIAnimRes/TweenAssetInfoHeroDetailPanel.asset.meta
  7. 8 0
      Assets/Scripts/Core/Editor/Tween.meta
  8. 294 0
      Assets/Scripts/Core/Editor/Tween/UITweenControllerInspector.cs
  9. 1 1
      Assets/Scripts/Core/Editor/Tween/UITweenControllerInspector.cs.meta
  10. 10 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenAssetInfo.cs
  11. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenAssetInfo.cs.meta
  12. 62 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenBasic.cs
  13. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenBasic.cs.meta
  14. 75 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenCanvasGroup.cs
  15. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenCanvasGroup.cs.meta
  16. 43 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenEntity.cs
  17. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenEntity.cs.meta
  18. 8 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenLerpType.cs
  19. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenLerpType.cs.meta
  20. 66 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformInfo.cs
  21. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformInfo.cs.meta
  22. 9 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformType.cs
  23. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformType.cs.meta
  24. 62 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenTransform.cs
  25. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenTransform.cs.meta
  26. 8 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenType.cs
  27. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/TweenType.cs.meta
  28. 0 18
      Assets/Scripts/Core/UI/UTool/UITween/UITweenA.cs
  29. 0 11
      Assets/Scripts/Core/UI/UTool/UITween/UITweenA.cs.meta
  30. 105 0
      Assets/Scripts/Core/UI/UTool/UITween/UITweenController.cs
  31. 3 0
      Assets/Scripts/Core/UI/UTool/UITween/UITweenController.cs.meta
  32. 0 36
      Assets/Scripts/Core/UI/UTool/UITween/UITweenPostion.cs
  33. 0 11
      Assets/Scripts/Core/UI/UTool/UITween/UITweenPostion.cs.meta
  34. 0 18
      Assets/Scripts/Core/UI/UTool/UITween/UITweenSize.cs
  35. 10 10
      UserSettings/EditorUserSettings.asset
  36. 57 57
      UserSettings/Layouts/default-2022.dwlt

+ 20 - 28
Assets/Res/UI/HeroDetailPanel.prefab

@@ -12588,8 +12588,8 @@ GameObject:
   - component: {fileID: 8042150479497634541}
   - component: {fileID: 8963168838308406584}
   - component: {fileID: 5422228824707887719}
-  - component: {fileID: 4738937348683330745}
   - component: {fileID: 4187952801782332659}
+  - component: {fileID: 3279573720056198076}
   m_Layer: 0
   m_HasEditorInfo: 1
   m_Name: HeroDetailPanel
@@ -12960,33 +12960,6 @@ MonoBehaviour:
     - gameObject: {fileID: 3414719560540881468}
     - gameObject: {fileID: 6905440077724744462}
   isAssetBundle: 1
---- !u!320 &4738937348683330745
-PlayableDirector:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 6213300356282155384}
-  m_Enabled: 1
-  serializedVersion: 3
-  m_PlayableAsset: {fileID: 11400000, guid: 185c5bcffa9aa1941b49529246fc7c68, type: 2}
-  m_InitialState: 1
-  m_WrapMode: 2
-  m_DirectorUpdateMode: 1
-  m_InitialTime: 0
-  m_SceneBindings:
-  - key: {fileID: -4398279264670304355, guid: 185c5bcffa9aa1941b49529246fc7c68, type: 2}
-    value: {fileID: 8323024823130982353}
-  - key: {fileID: 3098885728808021784, guid: 185c5bcffa9aa1941b49529246fc7c68, type: 2}
-    value: {fileID: 8323024823130982353}
-  - key: {fileID: -6019252560737163005, guid: 185c5bcffa9aa1941b49529246fc7c68, type: 2}
-    value: {fileID: 8323024823130982353}
-  - key: {fileID: 7089825263001972541, guid: 185c5bcffa9aa1941b49529246fc7c68, type: 2}
-    value: {fileID: 4187952801782332659}
-  - key: {fileID: -3648922518979620870, guid: 185c5bcffa9aa1941b49529246fc7c68, type: 2}
-    value: {fileID: 8323024823130982353}
-  m_ExposedReferences:
-    m_References: []
 --- !u!225 &4187952801782332659
 CanvasGroup:
   m_ObjectHideFlags: 0
@@ -12999,6 +12972,25 @@ CanvasGroup:
   m_Interactable: 1
   m_BlocksRaycasts: 1
   m_IgnoreParentGroups: 0
+--- !u!114 &3279573720056198076
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6213300356282155384}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 6a23dadfaa104ddf929b8c98dd02623c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  allTargets:
+  - {fileID: 8323024823130982353}
+  TweenAssetInfo: {fileID: 11400000, guid: f0bdd4e99fcc6c74da59f9ab86e8701f, type: 2}
+  TargetFoldout: 1
+  maxDuration: 1
+  isUpdate: 0
+  currTime: 1.0401256
 --- !u!1 &6246054039842062518
 GameObject:
   m_ObjectHideFlags: 0

+ 8 - 0
Assets/Res/UIAnimRes.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: DH4dt3iuUXqQ8rgM3IKFX+5VsO3didLdUORzHaIFkgLAwcdPjaYO4lQ=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 39 - 0
Assets/Res/UIAnimRes/TweenAssetInfoBox (1).asset

@@ -0,0 +1,39 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 81c305ba541a4659ad97bd292322e9b3, type: 3}
+  m_Name: TweenAssetInfoBox (1)
+  m_EditorClassIdentifier: 
+  allTweenInfo:
+  - Foldout: 1
+    TweenType: 1
+    duration: 1
+    delay: 0
+    TweenBasic:
+      Foldout: 0
+      duration: 1
+      delay: 0
+      currSchedule: 0
+      TweenRectTransformInfos: []
+    TweenCanvasGroup:
+      Foldout: 1
+      duration: 1
+      delay: 0
+      currSchedule: 0
+      TweenLerpType: 0
+      StartAlpha: 0
+      EndAlpha: 1
+      startX:
+        serializedVersion: 2
+        m_Curve: []
+        m_PreInfinity: 2
+        m_PostInfinity: 2
+        m_RotationOrder: 4

+ 8 - 0
Assets/Res/UIAnimRes/TweenAssetInfoBox (1).asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: DXMc4SuuWi9Aac2jYjLRO5jJnytLSN2p6BAQ9XZAtl5MflXmmlvjEks=
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 157 - 0
Assets/Res/UIAnimRes/TweenAssetInfoHeroDetailPanel.asset

@@ -0,0 +1,157 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 81c305ba541a4659ad97bd292322e9b3, type: 3}
+  m_Name: TweenAssetInfoHeroDetailPanel
+  m_EditorClassIdentifier: 
+  allTweenInfo:
+  - Foldout: 1
+    TweenType: 0
+    duration: 0.3
+    delay: 0
+    TweenBasic:
+      Foldout: 1
+      duration: 0.3
+      delay: 0
+      currSchedule: 0
+      TweenRectTransformInfos:
+      - TweenRectTransformType: 2
+        TweenLerpType: 1
+        Start: {x: 0, y: 0, z: 0}
+        End: {x: 0, y: 0, z: 0}
+        startX:
+          serializedVersion: 2
+          m_Curve:
+          - serializedVersion: 3
+            time: 0
+            value: 0
+            inSlope: 2
+            outSlope: 2
+            tangentMode: 0
+            weightedMode: 0
+            inWeight: 0
+            outWeight: 0
+          - serializedVersion: 3
+            time: 0.64941293
+            value: 1.1685661
+            inSlope: 0.9178411
+            outSlope: 0.9178411
+            tangentMode: 0
+            weightedMode: 0
+            inWeight: 0.33333334
+            outWeight: 0.33333334
+          - serializedVersion: 3
+            time: 1
+            value: 1.0024261
+            inSlope: -0.5779038
+            outSlope: -0.5779038
+            tangentMode: 0
+            weightedMode: 0
+            inWeight: 0.24661556
+            outWeight: 0
+          m_PreInfinity: 2
+          m_PostInfinity: 2
+          m_RotationOrder: 4
+        startY:
+          serializedVersion: 2
+          m_Curve:
+          - serializedVersion: 3
+            time: 0
+            value: 0
+            inSlope: 2
+            outSlope: 2
+            tangentMode: 0
+            weightedMode: 0
+            inWeight: 0
+            outWeight: 0
+          - serializedVersion: 3
+            time: 0.71665776
+            value: 1.1320108
+            inSlope: 0.7781174
+            outSlope: 0.7781174
+            tangentMode: 0
+            weightedMode: 0
+            inWeight: 0.33333334
+            outWeight: 0.33333334
+          - serializedVersion: 3
+            time: 1.0041809
+            value: 1
+            inSlope: -0.702361
+            outSlope: -0.702361
+            tangentMode: 0
+            weightedMode: 0
+            inWeight: 0.46566966
+            outWeight: 0
+          m_PreInfinity: 2
+          m_PostInfinity: 2
+          m_RotationOrder: 4
+        startZ:
+          serializedVersion: 2
+          m_Curve: []
+          m_PreInfinity: 2
+          m_PostInfinity: 2
+          m_RotationOrder: 4
+    TweenCanvasGroup:
+      Foldout: 0
+      duration: 0.3
+      delay: 0
+      currSchedule: 0
+      TweenLerpType: 0
+      StartAlpha: 0
+      EndAlpha: 0
+      startX:
+        serializedVersion: 2
+        m_Curve: []
+        m_PreInfinity: 2
+        m_PostInfinity: 2
+        m_RotationOrder: 4
+  - Foldout: 1
+    TweenType: 1
+    duration: 0.3
+    delay: 0
+    TweenBasic:
+      Foldout: 0
+      duration: 0.3
+      delay: 0
+      currSchedule: 0
+      TweenRectTransformInfos: []
+    TweenCanvasGroup:
+      Foldout: 1
+      duration: 0.3
+      delay: 0
+      currSchedule: 0
+      TweenLerpType: 1
+      StartAlpha: 0
+      EndAlpha: 1
+      startX:
+        serializedVersion: 2
+        m_Curve:
+        - serializedVersion: 3
+          time: 0
+          value: 0
+          inSlope: 0
+          outSlope: 0
+          tangentMode: 0
+          weightedMode: 0
+          inWeight: 0
+          outWeight: 0
+        - serializedVersion: 3
+          time: 1
+          value: 1
+          inSlope: 2
+          outSlope: 2
+          tangentMode: 0
+          weightedMode: 0
+          inWeight: 0
+          outWeight: 0
+        m_PreInfinity: 2
+        m_PostInfinity: 2
+        m_RotationOrder: 4

+ 8 - 0
Assets/Res/UIAnimRes/TweenAssetInfoHeroDetailPanel.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: WXpN4X6pBnK8S5AnfmR/FxuD2bbTNWNPnZQ7x9albyuisfoVTuiirK4=
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Core/Editor/Tween.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: WXod53yoUSqz+VbTVu2VE421wHjVfpFKIXYdAVe07fDWpRr1/uQS32U=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 294 - 0
Assets/Scripts/Core/Editor/Tween/UITweenControllerInspector.cs

@@ -0,0 +1,294 @@
+using System.Collections;
+using System.Collections.Generic;
+using Core.UI.UTool.UITween;
+using UnityEditor;
+using UnityEngine;
+
+[CustomEditor(typeof(UITweenController))]
+public class UITweenControllerInspector : Editor
+{
+    private UITweenController _uiTweenController;
+
+    // private float currValue;
+
+    public override void OnInspectorGUI()
+    {
+        _uiTweenController = serializedObject.targetObject as UITweenController;
+        if (_uiTweenController == null)
+        {
+            return;
+        }
+
+        EditorGUILayout.BeginHorizontal();
+        EditorGUILayout.ObjectField("动画资源", _uiTweenController.TweenAssetInfo, typeof(TweenAssetInfo), false);
+
+        if (_uiTweenController.TweenAssetInfo == null)
+        {
+            if (GUILayout.Button("创建一个动画资源"))
+            {
+                string selectedFolder = EditorUtility.OpenFolderPanel("选择文件夹", "Assets/Res/", "");
+
+                if (!string.IsNullOrEmpty(selectedFolder))
+                {
+                    string path = selectedFolder.Replace(Application.dataPath, "Assets");
+                    _uiTweenController.TweenAssetInfo = ScriptableObject.CreateInstance<TweenAssetInfo>();
+                    AssetDatabase.CreateAsset(_uiTweenController.TweenAssetInfo,
+                        path + $"/TweenAssetInfo{_uiTweenController.gameObject.name}.asset");
+                    AssetDatabase.SaveAssets();
+                }
+            }
+        }
+
+        EditorGUILayout.EndHorizontal();
+        if (_uiTweenController.TweenAssetInfo == null)
+        {
+            return;
+        }
+
+        _uiTweenController.SetMaxTime();
+        EditorGUI.BeginChangeCheck();
+        _uiTweenController.currTime = EditorGUILayout.Slider(_uiTweenController.currTime, 0, _uiTweenController.maxDuration);
+        if (EditorGUI.EndChangeCheck())
+        {
+            if (!_uiTweenController.isUpdate)
+            {
+                _uiTweenController.JumpToTime(_uiTweenController.currTime);
+            }
+        }
+
+        if (GUILayout.Button("播放"))
+        {
+            _uiTweenController.StartPlay();
+        }
+
+        _uiTweenController.TargetFoldout = EditorGUILayout.Foldout(_uiTweenController.TargetFoldout,
+            "目标");
+        if (_uiTweenController.TargetFoldout)
+        {
+            EditorGUI.indentLevel++;
+            for (int i = 0; i < _uiTweenController.allTargets.Count; i++)
+            {
+                Object o = _uiTweenController.allTargets[i];
+                Color color = GUI.color;
+                if (o == null)
+                {
+                    GUI.color = Color.red;
+                }
+
+                _uiTweenController.allTargets[i] =
+                    EditorGUILayout.ObjectField($"第{i + 1}个对象{o}", o, typeof(Object), true);
+                GUI.color = color;
+            }
+
+            EditorGUI.indentLevel--;
+        }
+
+        if (_uiTweenController.allTargets.Count > _uiTweenController.TweenAssetInfo.allTweenInfo.Count)
+        {
+            for (int i = _uiTweenController.allTargets.Count - 1;
+                 i >= _uiTweenController.TweenAssetInfo.allTweenInfo.Count;
+                 i--)
+            {
+                _uiTweenController.allTargets.RemoveAt(i);
+            }
+        }
+
+        if (_uiTweenController.allTargets.Count < _uiTweenController.TweenAssetInfo.allTweenInfo.Count)
+        {
+            for (int i = _uiTweenController.allTargets.Count;
+                 i < _uiTweenController.TweenAssetInfo.allTweenInfo.Count;
+                 i++)
+            {
+                _uiTweenController.allTargets.Add(new Object());
+            }
+        }
+
+        EditorGUI.BeginChangeCheck();
+        for (int i = 0; i < _uiTweenController.TweenAssetInfo.allTweenInfo.Count; i++)
+        {
+            TweenEntity tweenEntity = _uiTweenController.TweenAssetInfo.allTweenInfo[i];
+
+
+            Object o = _uiTweenController.allTargets[i];
+            DrawTweenEntity(tweenEntity, o, i);
+        }
+
+        if (GUILayout.Button("添加动画"))
+        {
+            _uiTweenController.TweenAssetInfo.allTweenInfo.Add(new TweenEntity()
+                { TweenBasic = new TweenTransform() { } });
+            _uiTweenController.allTargets.Add(new Object());
+        }
+
+        if (EditorGUI.EndChangeCheck())
+        {
+            EditorUtility.SetDirty(_uiTweenController.TweenAssetInfo);
+            AssetDatabase.SaveAssets();
+        }
+
+        serializedObject.ApplyModifiedProperties();
+    }
+
+    private void DrawTweenEntity(TweenEntity tweenEntity, Object ob, int index)
+    {
+        Color color = GUI.color;
+        if (ob == null)
+        {
+            GUI.color = Color.red;
+        }
+
+
+        tweenEntity.Foldout = EditorGUILayout.Foldout(tweenEntity.Foldout,
+            tweenEntity.TweenType.ToString());
+        GUI.color = color;
+        if (tweenEntity.Foldout)
+        {
+            EditorGUI.indentLevel++;
+            // 设置背景颜色
+            EditorGUILayout.BeginHorizontal();
+            ob = (Object)EditorGUILayout.ObjectField("目标", ob, typeof(Object));
+            _uiTweenController.allTargets[index] = ob;
+            if (GUILayout.Button("-"))
+            {
+                _uiTweenController.TweenAssetInfo.allTweenInfo.RemoveAt(index);
+                _uiTweenController.allTargets.RemoveAt(index);
+            }
+
+            EditorGUILayout.EndHorizontal();
+
+            tweenEntity.delay = EditorGUILayout.FloatField("延迟", tweenEntity.delay);
+            tweenEntity.duration = EditorGUILayout.FloatField("持续时间", tweenEntity.duration);
+            TweenType tweenType = tweenEntity.TweenType;
+            tweenEntity.TweenType = (TweenType)EditorGUILayout.EnumPopup("类型", tweenEntity.TweenType);
+            if (tweenType != tweenEntity.TweenType)
+            {
+                tweenEntity.Map[tweenType] = tweenEntity.TweenBasic;
+                tweenEntity.Claer();
+                switch (tweenEntity.TweenType)
+                {
+                    case TweenType.RectTransform:
+                        tweenEntity.TweenBasic = new TweenTransform();
+                        break;
+                    case TweenType.CanvasGroup:
+                        tweenEntity.TweenCanvasGroup = new TweenCanvasGroup();
+                        break;
+                }
+            }
+
+            switch (tweenEntity.TweenType)
+            {
+                case TweenType.RectTransform:
+                    EditorGUILayout.BeginHorizontal();
+                    tweenEntity.TweenBasic.Foldout = EditorGUILayout.Foldout(tweenEntity.TweenBasic.Foldout,
+                        "效果");
+                    if (GUILayout.Button("+"))
+                    {
+                        tweenEntity.TweenBasic.TweenRectTransformInfos.Add(new TweenRectTransformInfo());
+                    }
+
+                    EditorGUILayout.EndHorizontal();
+                    DrawTweenTransform(tweenEntity.TweenBasic, ob);
+                    break;
+                case TweenType.CanvasGroup:
+                    tweenEntity.TweenCanvasGroup.Foldout = EditorGUILayout.Foldout(tweenEntity.TweenCanvasGroup.Foldout,
+                        "效果");
+                    DrawTweenCanvasGroup(tweenEntity.TweenCanvasGroup, ob);
+                    break;
+            }
+
+            EditorGUI.indentLevel--;
+        }
+    }
+
+    private void DrawTweenCanvasGroup(TweenCanvasGroup tweenCanvasGroup, Object ob)
+    {
+        if (tweenCanvasGroup.Foldout)
+        {
+            EditorGUI.indentLevel++;
+
+            tweenCanvasGroup.TweenLerpType =
+                (TweenLerpType)EditorGUILayout.EnumPopup("插值类型", tweenCanvasGroup.TweenLerpType);
+            // tweenCanvasGroup.CanvasGroup =
+            //     (CanvasGroup)EditorGUILayout.ObjectField("目标", tweenCanvasGroup.CanvasGroup, typeof(CanvasGroup));
+            switch (tweenCanvasGroup.TweenLerpType)
+            {
+                case TweenLerpType.Default:
+                    tweenCanvasGroup.StartAlpha = EditorGUILayout.FloatField("起始透明度", tweenCanvasGroup.StartAlpha);
+                    tweenCanvasGroup.EndAlpha = EditorGUILayout.FloatField("结束透明度", tweenCanvasGroup.EndAlpha);
+                    break;
+                case TweenLerpType.Curve:
+                    tweenCanvasGroup.startX = EditorGUILayout.CurveField("透明度", tweenCanvasGroup.startX);
+                    break;
+            }
+
+            EditorGUI.indentLevel--;
+        }
+    }
+
+    private void DrawTweenTransform(TweenTransform tweenTransform, Object ob)
+    {
+        if (tweenTransform.Foldout)
+        {
+            EditorGUI.indentLevel++;
+            EditorGUILayout.BeginHorizontal();
+            // tweenTransform.RectTransform =
+            //     (RectTransform)EditorGUILayout.ObjectField("目标", tweenTransform.RectTransform, typeof(RectTransform));
+
+
+            EditorGUILayout.EndHorizontal();
+            EditorGUI.indentLevel++;
+            for (int i = 0; i < tweenTransform.TweenRectTransformInfos.Count; i++)
+            {
+                bool isDelect = DrawTweenRectTransformInfo(tweenTransform.TweenRectTransformInfos[i]);
+                if (isDelect)
+                {
+                    tweenTransform.TweenRectTransformInfos.RemoveAt(i);
+                }
+
+                EditorGUILayout.Space(10);
+            }
+
+            EditorGUI.indentLevel--;
+            EditorGUI.indentLevel--;
+        }
+    }
+
+    private bool DrawTweenRectTransformInfo(TweenRectTransformInfo tweenRectTransformInfo)
+    {
+        bool isDele = false;
+        EditorGUILayout.BeginHorizontal();
+        tweenRectTransformInfo.TweenRectTransformType =
+            (TweenRectTransformType)EditorGUILayout.EnumPopup("类型", tweenRectTransformInfo.TweenRectTransformType);
+        if (GUILayout.Button("-"))
+        {
+            isDele = true;
+        }
+
+        EditorGUILayout.EndHorizontal();
+
+        tweenRectTransformInfo.TweenLerpType =
+            (TweenLerpType)EditorGUILayout.EnumPopup("插值类型", tweenRectTransformInfo.TweenLerpType);
+        switch (tweenRectTransformInfo.TweenRectTransformType)
+        {
+            case TweenRectTransformType.Position:
+            case TweenRectTransformType.Rotation:
+            case TweenRectTransformType.Scale:
+                switch (tweenRectTransformInfo.TweenLerpType)
+                {
+                    case TweenLerpType.Default:
+                        tweenRectTransformInfo.Start = EditorGUILayout.Vector3Field("起始", tweenRectTransformInfo.Start);
+                        tweenRectTransformInfo.End = EditorGUILayout.Vector3Field("结束", tweenRectTransformInfo.End);
+                        break;
+                    case TweenLerpType.Curve:
+                        tweenRectTransformInfo.startX = EditorGUILayout.CurveField("X", tweenRectTransformInfo.startX);
+                        tweenRectTransformInfo.startY = EditorGUILayout.CurveField("Y", tweenRectTransformInfo.startY);
+                        tweenRectTransformInfo.startZ = EditorGUILayout.CurveField("Z", tweenRectTransformInfo.startZ);
+                        break;
+                }
+
+                break;
+        }
+
+        return isDele;
+    }
+}

+ 1 - 1
Assets/Scripts/Core/UI/UTool/UITween/UITweenSize.cs.meta → Assets/Scripts/Core/Editor/Tween/UITweenControllerInspector.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: CXJLsi6vUSok03Y41guGRsy9VNigG+nv2k4KsShTAe2cmd+y+SBZLNw=
+guid: Cy9OsC6oAXjDpVLIcuazJ5cD6G2CqG0Sj5+RkTZzwQ/crvXKh+wW8q4=
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 10 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenAssetInfo.cs

@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Core.UI.UTool.UITween
+{
+    public class TweenAssetInfo : ScriptableObject
+    {
+        public List<TweenEntity> allTweenInfo = new List<TweenEntity>();
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenAssetInfo.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 81c305ba541a4659ad97bd292322e9b3
+timeCreated: 1734179668

+ 62 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenBasic.cs

@@ -0,0 +1,62 @@
+using System;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using UnityEngine;
+using Object = UnityEngine.Object;
+
+namespace Core.UI.UTool.UITween
+{
+    [System.Serializable]
+    public abstract class TweenBasic : IDisposable
+    {
+        public bool Foldout;
+        public float duration;
+        public float delay;
+        public float currSchedule;
+
+        protected float _addTime;
+
+
+        public void Play(Object RectTransform,float allTime,bool isFallBack)
+        {
+            if (allTime < delay)
+            {
+                if (isFallBack)
+                {
+                    Rest(RectTransform);
+                }
+
+                return;
+            }
+
+            ProPlay(RectTransform,allTime - delay);
+        }
+
+        protected virtual void ProPlay(Object RectTransform,float allTime)
+        {
+        }
+
+        public void Rest(Object RectTransform)
+        {
+            ProRest(RectTransform);
+        }
+
+        protected virtual void ProRest(Object RectTransform)
+        {
+        }
+        public void Prepare(float delay,float duration)
+        {
+            this.delay = delay;
+            this.duration = duration;
+            _addTime = 1.0f / duration;
+        }
+
+        public void Dispose()
+        {
+            ProDispose();
+        }
+
+        protected void ProDispose()
+        {
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenBasic.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e9f8025265c142739bd2c9c8618e7ac3
+timeCreated: 1734171798

+ 75 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenCanvasGroup.cs

@@ -0,0 +1,75 @@
+using UnityEngine;
+
+namespace Core.UI.UTool.UITween
+{
+    [System.Serializable]
+    public class TweenCanvasGroup : TweenBasic
+    {
+        // public CanvasGroup CanvasGroup;
+        public TweenLerpType TweenLerpType;
+        public float StartAlpha;
+        public float EndAlpha;
+        public AnimationCurve startX=new AnimationCurve();
+
+        public CanvasGroup GetCanvasGroup(Object CanvasGroup)
+        {
+            CanvasGroup canvasGroup = CanvasGroup as CanvasGroup;
+            if (canvasGroup == null)
+            {
+                GameObject gameObject = CanvasGroup as GameObject;
+                if (gameObject != null)
+                {
+                    canvasGroup = gameObject.GetComponent<CanvasGroup>();
+                }
+            }
+            return canvasGroup;
+        }
+
+        protected override void ProPlay(Object CanvasGroup, float allTime)
+        {
+            CanvasGroup canvasGroup = GetCanvasGroup(CanvasGroup);
+            if (canvasGroup == null)
+            {
+                return;
+            }
+
+            float t = _addTime * allTime;
+            if (t > 1)
+            {
+                t = 1;
+            }
+
+            float v = 0;
+            switch (TweenLerpType)
+            {
+                case TweenLerpType.Default:
+                    v = Mathf.Lerp(StartAlpha, EndAlpha, t);
+                    break;
+                case TweenLerpType.Curve:
+                    v = startX.Evaluate(t);
+                    break;
+            }
+
+            canvasGroup.alpha = v;
+        }
+
+        protected override void ProRest(Object CanvasGroup)
+        {
+            CanvasGroup canvasGroup = GetCanvasGroup(CanvasGroup);
+            if (canvasGroup == null)
+            {
+                return;
+            }
+
+            switch (TweenLerpType)
+            {
+                case TweenLerpType.Default:
+                    canvasGroup.alpha = StartAlpha;
+                    break;
+                case TweenLerpType.Curve:
+                    canvasGroup.alpha = startX.Evaluate(0);
+                    break;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenCanvasGroup.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 9824f8d7969e49e1a8bb977b745208ea
+timeCreated: 1734178591

+ 43 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenEntity.cs

@@ -0,0 +1,43 @@
+using JetBrains.Annotations;
+using UnityEngine;
+using Utility;
+
+namespace Core.UI.UTool.UITween
+{
+    [System.Serializable]
+    public class TweenEntity
+    {
+        public bool Foldout;
+        public TweenType TweenType;
+        public float duration;
+        public float delay;
+        [CanBeNull] public TweenTransform TweenBasic = null;
+        [CanBeNull] public TweenCanvasGroup TweenCanvasGroup = null;
+        [HideInInspector] public Map<TweenType, TweenBasic> Map = new Map<TweenType, TweenBasic>();
+
+        public void Claer()
+        {
+            TweenBasic = null;
+            TweenCanvasGroup = null;
+        }
+
+        public void Play(Object RectTransform,float allTime, bool isFallBack)
+        {
+            TweenBasic?.Play(RectTransform,allTime, isFallBack);
+            TweenCanvasGroup?.Play(RectTransform,allTime, isFallBack);
+        }
+
+
+        public void Rest(Object RectTransform)
+        {
+            TweenBasic?.Rest(RectTransform);
+            TweenCanvasGroup?.Rest(RectTransform);
+        }
+
+        public void Prepare()
+        {
+            TweenBasic?.Prepare(delay, duration);
+            TweenCanvasGroup?.Prepare(delay, duration);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenEntity.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d24154a59d044542900f8a633e8fddf3
+timeCreated: 1734174323

+ 8 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenLerpType.cs

@@ -0,0 +1,8 @@
+namespace Core.UI.UTool.UITween
+{
+    public enum TweenLerpType
+    {
+        Default,
+        Curve,
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenLerpType.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c4821338997e4ef18c92ec10a23ad3c1
+timeCreated: 1734172282

+ 66 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformInfo.cs

@@ -0,0 +1,66 @@
+using UnityEngine;
+
+namespace Core.UI.UTool.UITween
+{
+    [System.Serializable]
+    public class TweenRectTransformInfo
+    {
+        public TweenRectTransformType TweenRectTransformType;
+        public TweenLerpType TweenLerpType;
+        public Vector3 Start;
+        public Vector3 End;
+        public AnimationCurve startX=new AnimationCurve();
+        public AnimationCurve startY=new AnimationCurve();
+        public AnimationCurve startZ=new AnimationCurve();
+
+        public void Play(RectTransform rectTransform, float t)
+        {
+            switch (TweenLerpType)
+            {
+                case TweenLerpType.Default:
+                    Vector3 p = Vector3.Lerp(Start, End, t);
+                    SetValue(rectTransform, p);
+                    break;
+                case TweenLerpType.Curve:
+                    float x = startX.Evaluate(t);
+                    float y = startY.Evaluate(t);
+                    float z = startZ.Evaluate(t);
+                    SetValue(rectTransform, new Vector3(x, y, z));
+                    break;
+            }
+        }
+
+        private void SetValue(RectTransform rectTransform, Vector3 value)
+        {
+            switch (TweenRectTransformType)
+            {
+                case TweenRectTransformType.Position:
+                    rectTransform.anchoredPosition = value;
+                    break;
+                case TweenRectTransformType.Rotation:
+                    rectTransform.localEulerAngles = value;
+                    break;
+                case TweenRectTransformType.Scale:
+                    rectTransform.localScale = new Vector3(value.x, value.y, 1);
+                    break;
+            }
+        }
+
+        public void Rest(RectTransform rectTransform)
+        {
+            switch (TweenLerpType)
+            {
+                case TweenLerpType.Default:
+                    Vector3 p = Start;
+                    SetValue(rectTransform, p);
+                    break;
+                case TweenLerpType.Curve:
+                    float x = startX.Evaluate(0);
+                    float y = startY.Evaluate(0);
+                    float z = startZ.Evaluate(0);
+                    SetValue(rectTransform, new Vector3(x, y, z));
+                    break;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformInfo.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 54fa7699d4cd45969c2ebdddf0e0e661
+timeCreated: 1734172065

+ 9 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformType.cs

@@ -0,0 +1,9 @@
+namespace Core.UI.UTool.UITween
+{
+    public enum TweenRectTransformType
+    {
+        Position,
+        Rotation,
+        Scale,
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenRectTransformType.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 343c69ade4b04954a295fd337060b5be
+timeCreated: 1734172130

+ 62 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenTransform.cs

@@ -0,0 +1,62 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Core.UI.UTool.UITween
+{
+    [System.Serializable]
+    public class TweenTransform : TweenBasic
+    {
+        // public RectTransform RectTransform;
+        public List<TweenRectTransformInfo> TweenRectTransformInfos = new List<TweenRectTransformInfo>();
+
+
+        public RectTransform GetRectTransform(Object RectTransform)
+        {
+            RectTransform rectTransform = RectTransform as RectTransform;
+            if (rectTransform == null)
+            {
+                GameObject gameObject = RectTransform as GameObject;
+                if (gameObject != null)
+                {
+                    rectTransform = gameObject.GetComponent<RectTransform>();
+                }
+            }
+
+            return rectTransform;
+        }
+
+        protected override void ProPlay(Object RectTransform, float allTime)
+        {
+            RectTransform rectTransform = GetRectTransform(RectTransform);
+            if (rectTransform == null)
+            {
+                return;
+            }
+
+            float t = _addTime * allTime;
+            if (t > 1)
+            {
+                t = 1;
+            }
+
+            for (int i = 0; i < TweenRectTransformInfos.Count; i++)
+            {
+                TweenRectTransformInfos[i].Play(rectTransform, t);
+            }
+        }
+
+        protected override void ProRest(Object RectTransform)
+        {
+            RectTransform rectTransform = GetRectTransform(RectTransform);
+            if (rectTransform == null)
+            {
+                return;
+            }
+
+            for (int i = 0; i < TweenRectTransformInfos.Count; i++)
+            {
+                TweenRectTransformInfos[i].Rest(rectTransform);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenTransform.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 9412719a504f4f8ea7b8ee37e81e5750
+timeCreated: 1734171787

+ 8 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenType.cs

@@ -0,0 +1,8 @@
+namespace Core.UI.UTool.UITween
+{
+    public enum TweenType
+    {
+        RectTransform,
+        CanvasGroup,
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/TweenType.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 96f870a17ee145c1ae09a45218ace9d4
+timeCreated: 1734174269

+ 0 - 18
Assets/Scripts/Core/UI/UTool/UITween/UITweenA.cs

@@ -1,18 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class UITweenA : MonoBehaviour
-{
-    // Start is called before the first frame update
-    void Start()
-    {
-        
-    }
-
-    // Update is called once per frame
-    void Update()
-    {
-        
-    }
-}

+ 0 - 11
Assets/Scripts/Core/UI/UTool/UITween/UITweenA.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: C34fsH6qVnqum52X+k+Q27+ARWMAhhgJGqVqOet8edAQ9fMII/YzZ/U=
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 105 - 0
Assets/Scripts/Core/UI/UTool/UITween/UITweenController.cs

@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using UnityEngine;
+using Object = UnityEngine.Object;
+
+namespace Core.UI.UTool.UITween
+{
+    [ExecuteInEditMode]
+    public class UITweenController : MonoBehaviour
+    {
+        public List<Object> allTargets = new List<Object>();
+
+        public TweenAssetInfo TweenAssetInfo;
+
+        public bool TargetFoldout = true;
+
+        // public List<TweenEntity> allTweenInfo = new List<TweenEntity>();
+        public float maxDuration;
+        public bool isUpdate;
+        [HideInInspector] public float currTime;
+
+
+        private void OnEnable()
+        {
+            if (Application.isPlaying)
+            {
+                StartPlay();
+            }
+        }
+
+
+        public void StartPlay()
+        {
+            if (TweenAssetInfo == null)
+            {
+                return;
+            }
+
+            maxDuration = 0;
+            for (int i = 0; i < TweenAssetInfo.allTweenInfo.Count; i++)
+            {
+                TweenEntity tweenEntity = TweenAssetInfo.allTweenInfo[i];
+                if (tweenEntity.duration + tweenEntity.delay > maxDuration)
+                {
+                    maxDuration = tweenEntity.duration + tweenEntity.delay;
+                }
+
+                tweenEntity.Prepare();
+                tweenEntity.Rest(allTargets[i]);
+            }
+
+            isUpdate = true;
+            currTime = 0;
+        }
+
+        public void SetMaxTime()
+        {
+            maxDuration = 0;
+            for (int i = 0; i < TweenAssetInfo.allTweenInfo.Count; i++)
+            {
+                TweenEntity tweenEntity = TweenAssetInfo.allTweenInfo[i];
+                if (tweenEntity.duration + tweenEntity.delay > maxDuration)
+                {
+                    maxDuration = tweenEntity.duration + tweenEntity.delay;
+                }
+            }
+        }
+
+        public void JumpToTime(float t)
+        {
+            for (int i = 0; i < TweenAssetInfo.allTweenInfo.Count; i++)
+            {
+                TweenAssetInfo.allTweenInfo[i].Prepare();
+                // allTweenInfo[i].Rest();
+            }
+
+            PlayTween(t, true);
+        }
+
+        private void PlayTween(float t, bool isFallBack)
+        {
+            for (int i = 0; i < TweenAssetInfo.allTweenInfo.Count; i++)
+            {
+                TweenAssetInfo.allTweenInfo[i].Play(allTargets[i], t, isFallBack);
+            }
+        }
+
+        private void Update()
+        {
+            if (!isUpdate)
+            {
+                return;
+            }
+
+            currTime += Time.deltaTime;
+
+            PlayTween(currTime, false);
+            if (currTime >= maxDuration)
+            {
+                isUpdate = false;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/UI/UTool/UITween/UITweenController.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6a23dadfaa104ddf929b8c98dd02623c
+timeCreated: 1734170808

+ 0 - 36
Assets/Scripts/Core/UI/UTool/UITween/UITweenPostion.cs

@@ -1,36 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class UITweenPostion : MonoBehaviour
-{
-    public float speed = 1;
-    public float time = 1;
-    public Vector3 startPos;
-    public Vector3 endPos;
-    public bool isLoop = false;
-
-    public void Start()
-    {
-        StartCoroutine(Move());
-    }
-    
-
-    IEnumerator Move()
-    {
-        float t = 0;
-        while (t < time)
-        {
-            t += Time.deltaTime * speed;
-            transform.position = Vector3.Lerp(startPos, endPos, t / time);
-            yield return null;
-        }
-        if (isLoop)
-        {
-            StartCoroutine(Move());
-        }
-    }
-  
-    
-}

+ 0 - 11
Assets/Scripts/Core/UI/UTool/UITween/UITweenPostion.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: W3tMsHivAXqYHIet4xlBMyGSWqtutFAgJUmSZLuzzUPpiEzy2i0j6Lw=
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 18
Assets/Scripts/Core/UI/UTool/UITween/UITweenSize.cs

@@ -1,18 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class UITweenSize : MonoBehaviour
-{
-    // Start is called before the first frame update
-    void Start()
-    {
-        
-    }
-
-    // Update is called once per frame
-    void Update()
-    {
-        
-    }
-}

+ 10 - 10
UserSettings/EditorUserSettings.asset

@@ -21,34 +21,34 @@ EditorUserSettings:
       value: 184c
       flags: 0
     RecentlyUsedSceneGuid-0:
-      value: 055303045d535e5d54080e721672094412154e7b757c71342e794b65b2e4616f
+      value: 5a50500553530b595d0f597343770941474e4c722e2a20367e794861e1b86c68
       flags: 0
     RecentlyUsedSceneGuid-1:
-      value: 5a50500553530b595d0f597343770941474e4c722e2a20367e794861e1b86c68
+      value: 5b520d0503545b0d0c0c0a2715770748154f4d2c7d7d7e627a7d4a35b4e1646a
       flags: 0
     RecentlyUsedSceneGuid-2:
-      value: 5b520d0503545b0d0c0c0a2715770748154f4d2c7d7d7e627a7d4a35b4e1646a
+      value: 5a500c0357030b0f0858097a44770f40154f4f2e2a2c743229794b64e0b56c6a
       flags: 0
     RecentlyUsedSceneGuid-3:
-      value: 5a500c0357030b0f0858097a44770f40154f4f2e2a2c743229794b64e0b56c6a
+      value: 5604565200030f5d5d575c7a417b5a44404f1e292e7125672c7b1f63e7b96269
       flags: 0
     RecentlyUsedSceneGuid-4:
-      value: 5604565200030f5d5d575c7a417b5a44404f1e292e7125672c7b1f63e7b96269
+      value: 0009555e5400515f590b097412770f1140161d2b7d2977642e2b4a63b1e5636d
       flags: 0
     RecentlyUsedSceneGuid-5:
-      value: 0009555e5400515f590b097412770f1140161d2b7d2977642e2b4a63b1e5636d
+      value: 0509560200060a0c5908552040750b44444f1a7a2a7827327c2a1e63b3b4603c
       flags: 0
     RecentlyUsedSceneGuid-6:
-      value: 0509560200060a0c5908552040750b44444f1a7a2a7827327c2a1e63b3b4603c
+      value: 020600005157590b5e595b7313215b44424e4b7f7b2b70337479486be6b46d39
       flags: 0
     RecentlyUsedSceneGuid-7:
-      value: 020600005157590b5e595b7313215b44424e4b7f7b2b70337479486be6b46d39
+      value: 5455050750515e025d5f5b2342770f4212164878792d2462282a4a62b1e5603d
       flags: 0
     RecentlyUsedSceneGuid-8:
-      value: 5455050750515e025d5f5b2342770f4212164878792d2462282a4a62b1e5603d
+      value: 5753045f5d005b5f0b0a082315715d44464e4b7b797125622e284430bbe66d68
       flags: 0
     RecentlyUsedSceneGuid-9:
-      value: 5753045f5d005b5f0b0a082315715d44464e4b7b797125622e284430bbe66d68
+      value: 0600055050050c595f0c097146200b44464f4c2f7c2c24627b2a4d35e6e4366c
       flags: 0
     Systems Window:
       value: 183b144645154b7802000a2b17364d11021e17246e72662b47695d73a2a07478a2a505e1e82d6f2f100cca3210371526d1051c05e22a040f2507f00b32f01c061ccb5a9f5ace1e10d81c50a48d5d91a3959694aa9ad8efd7c9f2afe0f1c0fcfdf6f8b6f2a5a6dacfb89debbfa1cbc9c3f5c3bac18e9c89c1bbdec2d6f2b992939996c59699c79ae8d182b7baad82aba0b0aea88398abdbf1dd8a8ea765ffc520262728fafcf8f6c28eb162945c71898d6167877a72a980809c9f71cecece859d579fd5f106dbdadb21de0dde237c686c76706641634c764f547c624a7e622d6628286620686f653d2b635a0204003e0805017509093043470e3643041c5d5b415c54450e1c424b420f6e4b634e636263696655641a1f273c0f083c1102ec362de62318e9ea25ab61ade8ed0ee30655b0b6b7b8176615

+ 57 - 57
UserSettings/Layouts/default-2022.dwlt

@@ -17,9 +17,9 @@ MonoBehaviour:
     x: 0
     y: 43
     width: 2560
-    height: 1349
+    height: 1357
   m_ShowMode: 4
-  m_Title: Game
+  m_Title: Inspector
   m_RootView: {fileID: 5}
   m_MinSize: {x: 875, y: 321}
   m_MaxSize: {x: 10000, y: 10000}
@@ -42,9 +42,9 @@ MonoBehaviour:
     x: 548
     y: 0
     width: 628
-    height: 1000
-  m_MinSize: {x: 200, y: 200}
-  m_MaxSize: {x: 4000, y: 4000}
+    height: 1006
+  m_MinSize: {x: 202, y: 221}
+  m_MaxSize: {x: 4002, y: 4021}
   m_ActualView: {fileID: 21}
   m_Panes:
   - {fileID: 21}
@@ -70,11 +70,11 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 1176
-    height: 1000
+    height: 1006
   m_MinSize: {x: 200, y: 50}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 24
+  controlID: 35
   draggingID: 0
 --- !u!114 &4
 MonoBehaviour:
@@ -92,9 +92,9 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1000
+    y: 1006
     width: 1176
-    height: 299
+    height: 301
   m_MinSize: {x: 101, y: 121}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 17}
@@ -123,7 +123,7 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 2560
-    height: 1349
+    height: 1357
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_UseTopView: 1
@@ -174,11 +174,11 @@ MonoBehaviour:
     x: 0
     y: 30
     width: 2560
-    height: 1299
+    height: 1307
   m_MinSize: {x: 500, y: 100}
   m_MaxSize: {x: 40480, y: 16192}
   vertical: 0
-  controlID: 185
+  controlID: 812
   draggingID: 0
 --- !u!114 &8
 MonoBehaviour:
@@ -196,7 +196,7 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1329
+    y: 1337
     width: 2560
     height: 20
   m_MinSize: {x: 0, y: 0}
@@ -221,11 +221,11 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 1176
-    height: 1299
+    height: 1307
   m_MinSize: {x: 200, y: 100}
   m_MaxSize: {x: 16192, y: 16192}
   vertical: 1
-  controlID: 23
+  controlID: 34
   draggingID: 0
 --- !u!114 &10
 MonoBehaviour:
@@ -245,7 +245,7 @@ MonoBehaviour:
     x: 1176
     y: 0
     width: 264
-    height: 1299
+    height: 1307
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
   m_ActualView: {fileID: 18}
@@ -271,7 +271,7 @@ MonoBehaviour:
     x: 1440
     y: 0
     width: 541
-    height: 1299
+    height: 1307
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
   m_ActualView: {fileID: 20}
@@ -297,7 +297,7 @@ MonoBehaviour:
     x: 1981
     y: 0
     width: 579
-    height: 1299
+    height: 1307
   m_MinSize: {x: 276, y: 71}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 19}
@@ -323,7 +323,7 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 548
-    height: 1000
+    height: 1006
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 22}
@@ -666,9 +666,9 @@ MonoBehaviour:
   m_Pos:
     serializedVersion: 2
     x: 0
-    y: 1073
+    y: 1079
     width: 1175
-    height: 278
+    height: 280
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -702,7 +702,7 @@ MonoBehaviour:
     x: 1176
     y: 73
     width: 262
-    height: 1278
+    height: 1286
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -716,9 +716,9 @@ MonoBehaviour:
   m_SceneHierarchy:
     m_TreeViewState:
       scrollPos: {x: 0, y: 0}
-      m_SelectedIDs: 
-      m_LastClickedID: 0
-      m_ExpandedIDs: 84faffff
+      m_SelectedIDs: 8c2e0100
+      m_LastClickedID: 77452
+      m_ExpandedIDs: 1263ffff2864ffff2e69ffffd875ffffee76fffff47bffffc888ffffde89ffff308fffff7cf7ffff5efaffff8ca60000bc2e0100
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -765,7 +765,7 @@ MonoBehaviour:
     x: 1981
     y: 73
     width: 578
-    height: 1278
+    height: 1286
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -779,7 +779,7 @@ MonoBehaviour:
   m_ObjectsLockedBeforeSerialization: []
   m_InstanceIDsLockedBeforeSerialization: 
   m_PreviewResizer:
-    m_CachedPref: 692
+    m_CachedPref: 582
     m_ControlHash: -371814159
     m_PrefName: Preview_InspectorPreview
   m_LastInspectedObjectInstanceID: -1
@@ -812,7 +812,7 @@ MonoBehaviour:
     x: 1440
     y: 73
     width: 539
-    height: 1278
+    height: 1286
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -834,7 +834,7 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/Editor
+    - Assets/Epic Toon FX/Textures/Text
     m_Globs: []
     m_OriginalText: 
     m_ImportLogFlags: 0
@@ -842,16 +842,16 @@ MonoBehaviour:
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/Editor
+  - Assets/Epic Toon FX/Textures/Text
   m_LastFoldersGridSize: 16
-  m_LastProjectPath: D:\unityProject\XY001
+  m_LastProjectPath: D:\UnityProject\XY001\xy001\XY001
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 0}
-    m_SelectedIDs: b2a60000
-    m_LastClickedID: 42674
-    m_ExpandedIDs: 000000006ea4000070a4000072a4000074a4000076a4000078a400007aa400007ca400007ea4000080a4000082a4000084a4000086a4000088a400008aa400008ca400008ea4000090a4000092a4000094a4000096a4000098a400009aa400009ca400009ea40000a0a40000a2a40000a4a40000a6a40000a8a40000aaa40000aca40000aea40000b0a40000b2a40000b4a40000b6a40000b8a40000baa40000bca40000bea40000c0a40000c2a40000c4a40000c6a40000c8a40000caa40000cca40000cea40000d0a4000000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 610}
+    m_SelectedIDs: 3e4f0100
+    m_LastClickedID: 85822
+    m_ExpandedIDs: 000000008ea4000090a4000098a400000ea5000040a50000fc2f01000630010010300100143001002430010026300100283001005e38010086380100883801008a3801009838010008390100183901002039010048390100ea430100ec430100f443010076440100e64b010000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -879,7 +879,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 000000006ea4000070a4000072a4000074a4000076a4000078a400007aa400007ca400007ea4000080a4000082a4000084a4000086a4000088a400008aa400008ca400008ea4000090a4000092a4000094a4000096a4000098a400009aa400009ca400009ea40000a0a40000a2a40000a4a40000a6a40000a8a40000aaa40000aca40000aea40000b0a40000b2a40000b4a40000b6a40000b8a40000baa40000bca40000bea40000c0a40000c2a40000c4a40000c6a40000c8a40000caa40000cca40000cea40000d0a40000
+    m_ExpandedIDs: 
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -907,7 +907,7 @@ MonoBehaviour:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
     m_HadKeyboardFocusLastEvent: 1
-    m_ExpandedInstanceIDs: d02e01001ef900002afc000092f80000f0f70000d8fa000046fa0000f0f80000dc5b0100d05b0100c85b0100cc5b01004a0b0100de0b0100de0a01009e0b0100220b01002a4201007a490100aa4401008a4301006a4e010054a30000
+    m_ExpandedInstanceIDs: d02e01001ef900002afc000092f80000f0f70000d8fa000046fa0000f0f80000dc5b0100d05b0100c85b0100cc5b01004a0b0100de0b0100de0a01009e0b0100220b01002a4201007a490100aa4401008a4301006a4e010054a3000024350100
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -958,7 +958,7 @@ MonoBehaviour:
     x: 548
     y: 73
     width: 626
-    height: 979
+    height: 985
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1000,7 +1000,7 @@ MonoBehaviour:
     m_VAllowExceedBaseRangeMax: 1
     m_ScaleWithWindow: 0
     m_HSlider: 0
-    m_VSlider: 1
+    m_VSlider: 0
     m_IgnoreScrollWheelUntilClicked: 0
     m_EnableMouseInput: 1
     m_EnableSliderZoomHorizontal: 0
@@ -1012,22 +1012,22 @@ MonoBehaviour:
       x: 0
       y: 21
       width: 626
-      height: 958
-    m_Scale: {x: 0.5899015, y: 0.5899015}
-    m_Translation: {x: 313, y: 478.99994}
+      height: 964
+    m_Scale: {x: 0.59359604, y: 0.59359604}
+    m_Translation: {x: 313, y: 482}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -530.59705
-      y: -811.9999
-      width: 1061.1941
-      height: 1623.9999
+      x: -527.2946
+      y: -812
+      width: 1054.5892
+      height: 1624
     m_MinimalGUI: 1
-  m_defaultScale: 0.5899015
-  m_LastWindowPixelSize: {x: 626, y: 979}
+  m_defaultScale: 0.59359604
+  m_LastWindowPixelSize: {x: 626, y: 985}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
   m_LowResolutionForAspectRatios: 01000000000000000000
@@ -1056,7 +1056,7 @@ MonoBehaviour:
     x: 0
     y: 73
     width: 547
-    height: 979
+    height: 985
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1072,7 +1072,7 @@ MonoBehaviour:
       collapsed: 0
       displayed: 1
       snapOffset: {x: -156, y: -26}
-      snapOffsetDelta: {x: 0, y: 0}
+      snapOffsetDelta: {x: -18, y: 0}
       snapCorner: 3
       id: Tool Settings
       index: 0
@@ -1292,7 +1292,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 0
-      snapOffset: {x: 0, y: -137}
+      snapOffset: {x: 0, y: -197}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 2
       id: Scene View/Particles
@@ -1428,9 +1428,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: 375, y: 127, z: 0}
+    m_Target: {x: -1.58, y: 0.48, z: 0.80000013}
     speed: 2
-    m_Value: {x: 375, y: 127, z: 0}
+    m_Value: {x: -1.58, y: 0.48, z: 0.80000013}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -1476,13 +1476,13 @@ MonoBehaviour:
     m_GridAxis: 1
     m_gridOpacity: 0.5
   m_Rotation:
-    m_Target: {x: 0.21580243, y: -0.7561753, z: 0.30317518, w: 0.53825194}
+    m_Target: {x: 0.2959024, y: -0.15921102, z: 0.05009006, w: 0.9405246}
     speed: 2
-    m_Value: {x: 0.21580222, y: -0.75617456, z: 0.30317488, w: 0.5382514}
+    m_Value: {x: 0.29590213, y: -0.15921088, z: 0.05009001, w: 0.9405237}
   m_Size:
-    m_Target: 335.71613
+    m_Target: 3.2435408
     speed: 2
-    m_Value: 335.71613
+    m_Value: 3.2435408
   m_Ortho:
     m_Target: 0
     speed: 2