DESKTOP-FB72PO8\Administrator il y a 1 mois
Parent
commit
3e16d57c0c
43 fichiers modifiés avec 1046 ajouts et 657 suppressions
  1. 4 216
      Assets/Art/HeroTimeLine/fb_yupingTimeline.playable
  2. 48 0
      Assets/Res/AnimtionCurveLibrary/GameAnimationCurveLibrary.asset
  3. 1 27
      Assets/Res/Config/MagicWeaponConfig.json
  4. 1 16
      Assets/Res/Config/SkillConfig.json
  5. 44 0
      Assets/Res/HeroAnimtion/fb_yuping.asset
  6. 0 0
      Assets/Res/TimeLineAssets/fb_time_TD.txt
  7. 7 0
      Assets/Res/TimeLineAssets/fb_time_TD.txt.meta
  8. 0 0
      Assets/Res/TimeLineAssets/fb_yuping_TD.txt
  9. 205 6
      Assets/Scenes/testCombat.scene
  10. 2 0
      Assets/Scripts/Core/UI/UTool/CTween/AnimationCurveLibrary.cs
  11. 37 4
      Assets/Scripts/Core/Utility/BesselPath.cs
  12. 18 12
      Assets/Scripts/Core/Utility/BesselPathMono.cs
  13. 1 1
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs
  14. 122 3
      Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCollisionInfo.cs
  15. 2 19
      Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCombatSence.cs
  16. 14 8
      Assets/Scripts/GameLogic/Combat/CombatTool/SkillScriptManager.cs
  17. 1 1
      Assets/Scripts/GameLogic/Combat/CombatType/TestCombatType.cs
  18. 6 1
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs
  19. 9 47
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControl.cs
  20. 105 0
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs
  21. 3 0
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs.meta
  22. 21 6
      Assets/Scripts/GameLogic/Combat/Hero/CombatMagicWeaponEntity.cs
  23. 5 3
      Assets/Scripts/GameLogic/Combat/Hero/MagicWeaponAi.cs
  24. 1 1
      Assets/Scripts/GameLogic/Combat/Hero/ShowBaiscEntity.cs
  25. 4 4
      Assets/Scripts/GameLogic/Combat/Hero/State/CombatHeroAttState.cs
  26. 1 1
      Assets/Scripts/GameLogic/Combat/Hero/State/CombatHeroIdleState.cs
  27. 20 7
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponAttState.cs
  28. 9 1
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponChuChangState.cs
  29. 29 0
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponDieState.cs
  30. 3 0
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponDieState.cs.meta
  31. 4 4
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponIdleState.cs
  32. 7 119
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponMoveState.cs
  33. 17 19
      Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponPingDouState.cs
  34. 1 1
      Assets/Scripts/GameLogic/Combat/Hero/State/PlayerHeroIdleState.cs
  35. 26 1
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/MagicSkillBasic.cs
  36. 42 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901001.cs
  37. 0 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901001.cs.meta
  38. 0 9
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S910001.cs
  39. 20 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/MagicAttShowBasic.cs
  40. 60 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/StraightLineShow.cs
  41. BIN
      Excel2Json/Excel/MagicWeapon.xlsx
  42. BIN
      Excel2Json/Excel/skill.xlsx
  43. 146 120
      UserSettings/Layouts/default-2022.dwlt

+ 4 - 216
Assets/Art/HeroTimeLine/fb_yupingTimeline.playable

@@ -1,42 +1,5 @@
 %YAML 1.1
 %TAG !u! tag:yousandi.cn,2023:
---- !u!114 &-9185572214651843675
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  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: f1fc88ca9f5b46d2929d20f65fbe5c4e, type: 3}
-  m_Name: TimeLineParticleSystemAsset
-  m_EditorClassIdentifier: 
-  sourceGameObject:
-    exposedName: 510073d11a064b44b81d5efc39bc6cae
-    defaultValue: {fileID: 0}
-  prefabGameObject: {fileID: 0}
-  updateParticle: 1
-  particleRandomSeed: 2814
-  updateDirector: 1
-  updateITimeControl: 1
-  searchHierarchy: 0
-  active: 1
-  postPlayback: 2
-  targetType: 1
-  LocationType: 5
-  targetSpecialDotName: pengpos
-  hitPointGroupName: 
-  isGround: 0
-  isFollowTarget: 0
-  isNotRotate: 0
-  isFollowRootTarget: 0
-  isAttSpeed: 0
-  isLoop: 0
-  loopAlone: 0
-  isActivityCustomTargetPos: 0
-  CustomTargetPosIndex: 0
-  intervalTime: 0
 --- !u!114 &-9151128744060106284
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -266,76 +229,7 @@ MonoBehaviour:
   m_Curves: {fileID: 0}
   m_Parent: {fileID: 5132940870748184348}
   m_Children: []
-  m_Clips:
-  - m_Version: 1
-    m_Start: 0
-    m_ClipIn: 0
-    m_Asset: {fileID: -9185572214651843675}
-    m_Duration: 1
-    m_TimeScale: 1
-    m_ParentTrack: {fileID: -8734228703646629367}
-    m_EaseInDuration: 0
-    m_EaseOutDuration: 0
-    m_BlendInDuration: 0
-    m_BlendOutDuration: 0
-    m_MixInCurve:
-      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: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    m_MixOutCurve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 1
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    m_BlendInCurveMode: 0
-    m_BlendOutCurveMode: 0
-    m_ExposedParameterNames: []
-    m_AnimationCurves: {fileID: 0}
-    m_Recordable: 0
-    m_PostExtrapolationMode: 0
-    m_PreExtrapolationMode: 0
-    m_PostExtrapolationTime: 0
-    m_PreExtrapolationTime: 0
-    m_DisplayName: fx_fb_duipin_hit
+  m_Clips: []
   m_Markers:
     m_Objects: []
 --- !u!114 &-8034426028797582310
@@ -890,7 +784,7 @@ MonoBehaviour:
   searchHierarchy: 0
   active: 1
   postPlayback: 2
-  targetType: 2
+  targetType: 1
   LocationType: 6
   targetSpecialDotName: hitpos
   hitPointGroupName: 
@@ -1399,115 +1293,9 @@ MonoBehaviour:
   m_Curves: {fileID: 0}
   m_Parent: {fileID: 621060365187866526}
   m_Children: []
-  m_Clips:
-  - m_Version: 1
-    m_Start: 0
-    m_ClipIn: 0
-    m_Asset: {fileID: 4473300503793497422}
-    m_Duration: 1
-    m_TimeScale: 1
-    m_ParentTrack: {fileID: 4448712841006758773}
-    m_EaseInDuration: 0
-    m_EaseOutDuration: 0
-    m_BlendInDuration: 0
-    m_BlendOutDuration: 0
-    m_MixInCurve:
-      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: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    m_MixOutCurve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 1
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    m_BlendInCurveMode: 0
-    m_BlendOutCurveMode: 0
-    m_ExposedParameterNames: []
-    m_AnimationCurves: {fileID: 0}
-    m_Recordable: 0
-    m_PostExtrapolationMode: 0
-    m_PreExtrapolationMode: 0
-    m_PostExtrapolationTime: 0
-    m_PreExtrapolationTime: 0
-    m_DisplayName: fx_fb_duipin_hit
+  m_Clips: []
   m_Markers:
     m_Objects: []
---- !u!114 &4473300503793497422
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  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: f1fc88ca9f5b46d2929d20f65fbe5c4e, type: 3}
-  m_Name: TimeLineParticleSystemAsset(Clone)
-  m_EditorClassIdentifier: 
-  sourceGameObject:
-    exposedName: 8f4afe1992ed43640872dbaa60713fe9
-    defaultValue: {fileID: 0}
-  prefabGameObject: {fileID: 0}
-  updateParticle: 1
-  particleRandomSeed: 2814
-  updateDirector: 1
-  updateITimeControl: 1
-  searchHierarchy: 0
-  active: 1
-  postPlayback: 2
-  targetType: 1
-  LocationType: 5
-  targetSpecialDotName: pengpos
-  hitPointGroupName: 
-  isGround: 0
-  isFollowTarget: 0
-  isNotRotate: 0
-  isFollowRootTarget: 0
-  isAttSpeed: 0
-  isLoop: 0
-  loopAlone: 0
-  isActivityCustomTargetPos: 0
-  CustomTargetPosIndex: 0
-  intervalTime: 0
 --- !u!114 &5110619295240876175
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -1568,7 +1356,7 @@ MonoBehaviour:
   searchHierarchy: 0
   active: 1
   postPlayback: 2
-  targetType: 1
+  targetType: 2
   LocationType: 5
   targetSpecialDotName: hitpos
   hitPointGroupName: 

+ 48 - 0
Assets/Res/AnimtionCurveLibrary/GameAnimationCurveLibrary.asset

@@ -82,3 +82,51 @@ MonoBehaviour:
     m_PreInfinity: 2
     m_PostInfinity: 2
     m_RotationOrder: 4
+  fabaoAtt:
+    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
+  fabaoDuiPing:
+    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: 0
+      outSlope: 0
+      tangentMode: 0
+      weightedMode: 0
+      inWeight: 0
+      outWeight: 0
+    m_PreInfinity: 2
+    m_PostInfinity: 2
+    m_RotationOrder: 4

+ 1 - 27
Assets/Res/Config/MagicWeaponConfig.json

@@ -6,36 +6,10 @@
       "magicAttribute": 1,
       "name": 5,
       "headicon": "icon_tx10001",
-      "model": "fb_wulonghuan",
-      "att": 100,
-      "skillID": [
-        91001
-      ],
-      "heroStory": null
-    },
-    {
-      "ID": 10002,
-      "nickName": -1,
-      "magicAttribute": 1,
-      "name": 5,
-      "headicon": "icon_tx10002",
-      "model": "fb_huohulu",
-      "att": 100,
-      "skillID": [
-        91002
-      ],
-      "heroStory": null
-    },
-    {
-      "ID": 10003,
-      "nickName": -1,
-      "magicAttribute": 1,
-      "name": 5,
-      "headicon": "icon_tx10003",
       "model": "fb_yuping",
       "att": 100,
       "skillID": [
-        91003
+        901001
       ],
       "heroStory": null
     }

+ 1 - 16
Assets/Res/Config/SkillConfig.json

@@ -31,7 +31,7 @@
       ]
     },
     {
-      "ID": 90110011,
+      "ID": 9010011,
       "icon": "",
       "scriptName": "S901001",
       "IDGroup": 901001,
@@ -44,21 +44,6 @@
       "effectValue": [
         100.0
       ]
-    },
-    {
-      "ID": 90120011,
-      "icon": "",
-      "scriptName": "S901002",
-      "IDGroup": 901002,
-      "timelineName": "",
-      "cd": null,
-      "SkillType": 3,
-      "level": 1,
-      "name": null,
-      "desc": null,
-      "effectValue": [
-        100.0
-      ]
     }
   ]
 }

+ 44 - 0
Assets/Res/HeroAnimtion/fb_yuping.asset

@@ -1,5 +1,33 @@
 %YAML 1.1
 %TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &-6430102396614945439
+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: c5a8877f26e7a6a43aaf06fade1a064a, type: 3}
+  m_Name: jiuo
+  m_EditorClassIdentifier: 
+  _Transition:
+    rid: 616298739367936000
+  references:
+    version: 2
+    RefIds:
+    - rid: 616298739367936000
+      type: {class: ClipTransition, ns: Animancer, asm: Kybernetik.Animancer}
+      data:
+        _FadeDuration: 0.25
+        _Speed: 1
+        _Events:
+          _NormalizedTimes: []
+          _Callbacks: []
+          _Names: []
+        _Clip: {fileID: 1827226128182048838, guid: f538b168f24934d46bd78e03404c196e, type: 3}
+        _NormalizedStartTime: NaN
 --- !u!114 &-5287561629531185777
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -44,6 +72,7 @@ MonoBehaviour:
     _Transitions:
     - {fileID: 5519247924259519141}
     - {fileID: -5287561629531185777}
+    - {fileID: -6430102396614945439}
     _Modifiers:
     - _From: 0
       _To: 0
@@ -57,6 +86,21 @@ MonoBehaviour:
     - _From: 1
       _To: 1
       _Fade: 0
+    - _From: 0
+      _To: 2
+      _Fade: 0
+    - _From: 1
+      _To: 2
+      _Fade: 0
+    - _From: 2
+      _To: 2
+      _Fade: 0
+    - _From: 2
+      _To: 1
+      _Fade: 0
+    - _From: 2
+      _To: 0
+      _Fade: 0
     _Aliases: []
     _AliasAllTransitions: 0
 --- !u!114 &5519247924259519141

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
Assets/Res/TimeLineAssets/fb_time_TD.txt


+ 7 - 0
Assets/Res/TimeLineAssets/fb_time_TD.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: Dn5JtCyvBy6NGXkmGwXg2+A7C3OQBCx5E4U9uuK1ja8M2IVRic/MUJF6VdLL
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
Assets/Res/TimeLineAssets/fb_yuping_TD.txt


+ 205 - 6
Assets/Scenes/testCombat.scene

@@ -162,6 +162,39 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 3904968013911866960, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
   m_PrefabInstance: {fileID: 293130736}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &101587813
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 101587814}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: GameObject
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &101587814
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 101587813}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 1612509952}
+  m_Father: {fileID: 611864970}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &111679905
 GameObject:
   m_ObjectHideFlags: 0
@@ -699,7 +732,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].magicWeaponId.Array.data[0]
-      value: 10003
+      value: 10001
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].magicWeaponId.Array.data[1]
@@ -707,7 +740,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[0].magicWeaponId.Array.data[0]
-      value: 10003
+      value: 10001
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[0].magicWeaponId.Array.data[1]
@@ -1255,6 +1288,66 @@ MonoBehaviour:
   m_Spacing: {x: 0, y: -50.3}
   m_Constraint: 0
   m_ConstraintCount: 2
+--- !u!1 &611864968
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 611864970}
+  - component: {fileID: 611864969}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: GameObject (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &611864969
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 611864968}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8b0bd7b63396499eacce1f4c28a706ea, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Transforms:
+  - {fileID: 675361047}
+  - {fileID: 1858319898}
+  - {fileID: 1612509952}
+  - {fileID: 101587814}
+  BesselPath:
+    isActive: 0
+    controlPoints:
+    - {x: -3.442, y: 0, z: 9.89}
+    - {x: -15.332001, y: -0.29, z: 13.17}
+    - {x: 9.228001, y: -3.08, z: -3.56}
+    - {x: -3.442, y: 0, z: 0}
+  isRun: 0
+--- !u!4 &611864970
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 611864968}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -3.442, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 101587814}
+  - {fileID: 675361047}
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &612158946
 GameObject:
   m_ObjectHideFlags: 0
@@ -1281,12 +1374,45 @@ Transform:
   m_GameObject: {fileID: 612158946}
   serializedVersion: 2
   m_LocalRotation: {x: -0, y: -1, z: -0, w: 0}
-  m_LocalPosition: {x: -2.23, y: 0, z: 2.5900002}
+  m_LocalPosition: {x: 12.66, y: 1, z: -5}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 1469800233}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &675361046
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 675361047}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: GameObject (3)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &675361047
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 675361046}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 9.89}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 1858319898}
+  m_Father: {fileID: 611864970}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &753442135
 GameObject:
   m_ObjectHideFlags: 0
@@ -2044,14 +2170,14 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1469800232}
   serializedVersion: 2
-  m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 9.89}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 612158947}
   m_Father: {fileID: 1902930422}
-  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1491951595
 GameObject:
   m_ObjectHideFlags: 0
@@ -2158,12 +2284,44 @@ Transform:
   m_GameObject: {fileID: 1515802677}
   serializedVersion: 2
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -1.4949999, y: 1.615, z: 1}
+  m_LocalPosition: {x: -9.87, y: 4, z: 2}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 21371308}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1612509951
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 1612509952}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: GameObject (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1612509952
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1612509951}
+  serializedVersion: 2
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 12.67, y: -3.08, z: -3.56}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 101587814}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1001 &1663534286
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -2436,6 +2594,38 @@ MonoBehaviour:
   m_OnClick:
     m_PersistentCalls:
       m_Calls: []
+--- !u!1 &1858319897
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 1858319898}
+  m_Layer: 0
+  m_HasEditorInfo: 1
+  m_Name: GameObject (2)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1858319898
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1858319897}
+  serializedVersion: 2
+  m_LocalRotation: {x: -0, y: -1, z: -0, w: 0}
+  m_LocalPosition: {x: -11.89, y: -0.29, z: 3.28}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 675361047}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1902930421
 GameObject:
   m_ObjectHideFlags: 0
@@ -2488,6 +2678,14 @@ MonoBehaviour:
   - {fileID: 1515802678}
   - {fileID: 612158947}
   - {fileID: 1469800233}
+  BesselPath:
+    isActive: 0
+    controlPoints:
+    - {x: -3.442, y: 0, z: 0}
+    - {x: -13.312, y: 4, z: 2}
+    - {x: 9.218, y: 1, z: 4.8900003}
+    - {x: -3.442, y: 0, z: 9.89}
+  isRun: 0
 --- !u!1001 &2101400848
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -4186,6 +4384,7 @@ SceneRoots:
   - {fileID: 5496476638347437383}
   - {fileID: 2101400848}
   - {fileID: 1902930422}
+  - {fileID: 611864970}
   - {fileID: 1663534286}
   - {fileID: 6794712585992138843}
   - {fileID: 4885491695541437786}

+ 2 - 0
Assets/Scripts/Core/UI/UTool/CTween/AnimationCurveLibrary.cs

@@ -18,4 +18,6 @@ public class AnimationCurveLibrary : ScriptableObject
     // [Header("UI显示大小")] public AnimationCurve ui_showSize;
     [Header("UI移动大小")] public AnimationCurve ui_moveSize;
     [Header("UI移动速度")] public AnimationCurve ui_moveSpped;
+    [Header("法宝攻击速度曲线")] public AnimationCurve fabaoAtt;
+    [Header("法宝对拼速度曲线")] public AnimationCurve fabaoDuiPing;
 }

+ 37 - 4
Assets/Scripts/Core/Utility/BesselPath.cs

@@ -4,12 +4,13 @@ using UnityEngine;
 
 namespace Core.Utility
 {
+    [System.Serializable]
     /// <summary>
     /// 贝塞尔曲线
     /// </summary>
-    public class BesselPath :CObject
+    public class BesselPath : CObject
     {
-        public BetterList<Vector3> controlPoints = new BetterList<Vector3>();
+        public List<Vector3> controlPoints = new List<Vector3>();
 
         public Vector3 CalculatePoint(float t)
         {
@@ -20,8 +21,13 @@ namespace Core.Utility
             }
 
             t = Mathf.Clamp01(t);
+            
+            // return controlPoints[0] * ((1 - t) * (1 - t) * (1 - t)) +
+            //        controlPoints[1] * (3 * t * (1 - t) * (1 - t)) +
+            //        controlPoints[2] * (3 * t * t * (1 - t)) +
+                   // controlPoints[3] * (t * t * t);
             int n = controlPoints.Count - 1; // 阶数
-
+            
             Vector3 point = Vector3.zero;
             for (int i = 0; i <= n; i++)
             {
@@ -29,6 +35,7 @@ namespace Core.Utility
                 float bernstein = Bernstein(n, i, t);
                 point += bernstein * controlPoints[i];
             }
+            
             return point;
         }
 
@@ -38,6 +45,32 @@ namespace Core.Utility
             return BinomialCoefficient(n, i) * Mathf.Pow(1 - t, n - i) * Mathf.Pow(t, i);
         }
 
+        public float GetLengthAtT(float t, int segments = 50)
+        {
+            if (controlPoints.Count < 2) return 0f;
+
+            t = Mathf.Clamp01(t);
+            float length = 0f;
+            Vector3 previousPoint = CalculatePoint(0);
+            float step = 1.0f / segments;
+
+            for (int i = 1; i <= segments; i++)
+            {
+                float currentT = i * step;
+                if (currentT < t)
+                {
+                    continue;
+                }
+
+
+                Vector3 currentPoint = CalculatePoint(currentT);
+                length += Vector3.Distance(previousPoint, currentPoint);
+                previousPoint = currentPoint;
+            }
+
+            return length;
+        }
+
         // 计算二项式系数 C(n,i)
         private float BinomialCoefficient(int n, int i)
         {
@@ -53,6 +86,7 @@ namespace Core.Utility
             {
                 result *= i;
             }
+
             return result;
         }
 
@@ -70,7 +104,6 @@ namespace Core.Utility
 
         public override void ActiveObj()
         {
-            
         }
 
         public override void DormancyObj()

+ 18 - 12
Assets/Scripts/Core/Utility/BesselPathMono.cs

@@ -12,32 +12,37 @@ namespace Core.Utility
 
         public ACurve ACurve;
 
+        public bool isRun;
         private void OnDrawGizmos()
         {
+            
             if (BesselPath == null)
             {
                 BesselPath = new BesselPath();
             }
 
-            if (Transforms == null || Transforms.Length < 2)
+            if (!isRun)
             {
-                return;
+                if (Transforms == null || Transforms.Length < 2)
+                {
+                    return;
+                }
+
+                List<Vector3> pos = new List<Vector3>();
+                for (int i = 0; i < Transforms.Length; i++)
+                {
+                    pos.Add(Transforms[i].position);
+                }
+
+                BesselPath.controlPoints = (pos);
             }
 
-            BetterList<Vector3> pos = new BetterList<Vector3>();
-            for (int i = 0; i < Transforms.Length; i++)
-            {
-                pos.Add(Transforms[i].position);
-            }
-
-            BesselPath.controlPoints = (pos);
-
             Gizmos.color = Color.blue;
 
             // 绘制控制点
-            for (int i = 0; i < pos.Count; i++)
+            for (int i = 0; i <  BesselPath.controlPoints.Count; i++)
             {
-                Gizmos.DrawSphere(pos[i], 0.1f);
+                Gizmos.DrawSphere( BesselPath.controlPoints[i], 0.1f);
             }
 
             // 绘制曲线
@@ -48,6 +53,7 @@ namespace Core.Utility
             {
                 float t = i / (float)segments;
                 Vector3 currentPoint = BesselPath.CalculatePoint(t);
+                // Gizmos.DrawSphere(currentPoint, 0.03f);
                 Gizmos.DrawLine(previousPoint, currentPoint);
                 previousPoint = currentPoint;
             }

+ 1 - 1
Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs

@@ -113,7 +113,7 @@ namespace GameLogic.Combat.CombatTool
             if (isSkillUp)
             {
                 // List<SkillConfig> skillConfigs = combatHeroInfo.skillConfigs;
-                combatHeroEntity.CombatHeroSkillControl.UpdateSkill(combatHeroInfo.unLockSkills);
+                combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().UpdateSkill(combatHeroInfo.unLockSkills);
             }
         }
 

+ 122 - 3
Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCollisionInfo.cs

@@ -1,15 +1,23 @@
+using Core.Triiger;
+using Core.Utility;
 using Fort23.Core;
 using Fort23.UTool;
 using GameLogic.Combat.Hero;
 using GameLogic.Combat.Hero.State;
+using UnityEngine;
+using Utility.CTween;
 
 namespace GameLogic.Combat.CombatTool
 {
-    public class MagicWeaponCollisionInfo : CObject
+    public class MagicWeaponCollisionInfo : CObject, ITriggerEntity
     {
         public CombatMagicWeaponEntity a;
         public CombatMagicWeaponEntity b;
 
+        public BesselPath _besselPathA;
+        public BesselPath _besselPathB;
+
+
         public int id;
         protected float _currTime;
 
@@ -18,9 +26,19 @@ namespace GameLogic.Combat.CombatTool
         /// </summary>
         public int State;
 
-        public void Init(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b,int id)
+        private IUnRegister _unRegister;
+        protected bool _isOne;
+
+        protected ParticleSystemPool ParticleSystemPool;
+
+        public void Init(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b, int id)
         {
             this.id = id;
+            if (a.IsEnemy)
+            {
+                (a, b) = (b, a);
+            }
+
             this.a = a;
             this.b = b;
             a.MagicWeaponCollisionId = id;
@@ -28,6 +46,57 @@ namespace GameLogic.Combat.CombatTool
             State = 0;
         }
 
+        private void OnTriggerEnter(Collider collider, ITriggerEntity triggerEntity)
+        {
+            HeroEntityMono heroEntityMono = collider.GetComponent<HeroEntityMono>();
+            if (heroEntityMono == null || (heroEntityMono.combatHeroEntity != b))
+            {
+                return;
+            }
+
+            if (State != 1)
+            {
+                return;
+            }
+
+            if ((a.HpBl <= 30 || b.HpBl < 20))
+            {
+                MagicWeaponPingDouState.MagicWeaponPingDouData rollingStateData =
+                    CObjectPool.Instance.Fetch<MagicWeaponPingDouState.MagicWeaponPingDouData>();
+                rollingStateData.target = b;
+
+                a.CombatAIBasic.ChangeState(CombatHeroStateType.MagicWeaponPingDou,
+                    rollingStateData);
+                MagicWeaponPingDouState.MagicWeaponPingDouData rollingStateData2 =
+                    CObjectPool.Instance.Fetch<MagicWeaponPingDouState.MagicWeaponPingDouData>();
+                rollingStateData.target = a;
+                b.CombatAIBasic.ChangeState(CombatHeroStateType.MagicWeaponPingDou,
+                    rollingStateData2);
+                State = 2;
+                _currTime = 0;
+                CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle("fx_fb_duipin_dian",
+                    a.dotPos, null, false, null, delegate(ParticleSystemPool particleSystemPool)
+                    {
+                        particleSystemPool.transform.rotation =
+                            a.GameObject.transform.rotation;
+                        ParticleSystemPool = particleSystemPool;
+                    });
+            }
+            else
+            {
+                CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle("fx_fb_duipin_hit",
+                    collider.transform.position, null, false, null, delegate(ParticleSystemPool particleSystemPool)
+                    {
+                        particleSystemPool.transform.rotation =
+                            a.GameObject.transform.rotation;
+                    });
+
+                a.ReduceHp(40);
+                // _trigger = true;
+                // _triggerTime = 0.5f;
+            }
+        }
+
         public void Update(float t)
         {
             if (State == 0)
@@ -36,10 +105,55 @@ namespace GameLogic.Combat.CombatTool
                     b.CombatAIBasic.stateControl.CurrStateName.Equals(CombatHeroStateType.idle))
                 {
                     State = 1;
+                    _besselPathA = new BesselPath();
+                    _besselPathA.controlPoints.Add(a.dotPos);
+                    _besselPathA.controlPoints.Add(a.GameObject.transform.TransformPoint(new Vector3(-9.87f, 4, 2)));
+
+                    _besselPathA.controlPoints.Add(b.GameObject.transform.TransformPoint(new Vector3(12.66f, 1, -5)));
+                    _besselPathA.controlPoints.Add(b.dotPos);
+                    GameObject G = new GameObject("BesselPathMono11");
+                    BesselPathMono besselPathMono = G.AddComponent<BesselPathMono>();
+                    besselPathMono.isRun = true;
+                    besselPathMono.BesselPath = _besselPathA;
+                    _besselPathB = new BesselPath();
+                    _besselPathB.controlPoints.Add(b.dotPos);
+                    _besselPathB.controlPoints.Add(
+                        b.GameObject.transform.TransformPoint(new Vector3(-11.89f, -0.29f, 3.28f)));
+
+                    _besselPathB.controlPoints.Add(
+                        a.GameObject.transform.TransformPoint(new Vector3(12.67f, -3.03f, -3.5f)));
+                    _besselPathB.controlPoints.Add(a.dotPos);
+                    GameObject G2 = new GameObject("BesselPathMono22");
+                    BesselPathMono besselPathMono2 = G2.AddComponent<BesselPathMono>();
+                    besselPathMono2.isRun = true;
+                    besselPathMono2.BesselPath = _besselPathB;
+
+                    _unRegister = a.GameObject.OnTriggerEnterEvent(this, OnTriggerEnter);
+                    _isOne = false;
+                    _currTime = 0;
                 }
             }
 
-            if (State == 2)
+            if (State == 1)
+            {
+                _currTime += t * 0.7f;
+               float v= CustomTweenManager.AnimationCurveLibrary.fabaoDuiPing.Evaluate(_currTime);
+                BesselPath besselPath = _isOne ? _besselPathB : _besselPathA;
+                Vector3 a1 = besselPath.CalculatePoint(v);
+                Vector3 a2 = besselPath.CalculatePoint(v - 0.01f);
+                Vector3 b1 = besselPath.CalculatePoint(1 - v);
+                Vector3 b2 = besselPath.CalculatePoint(1 - v + 0.01f);
+                a.combatHeroGameObject.SetPosition(a1);
+                a.GameObject.transform.rotation = Quaternion.LookRotation((a1 - a2).normalized);
+                b.combatHeroGameObject.SetPosition(b1);
+                b.GameObject.transform.rotation = Quaternion.LookRotation((b1 - b2).normalized);
+                if (_currTime >= 1)
+                {
+                    _currTime = 0;
+                    _isOne = !_isOne;
+                }
+            }
+            else if (State == 2)
             {
                 _currTime += t;
                 if (_currTime > 0.1f)
@@ -89,6 +203,11 @@ namespace GameLogic.Combat.CombatTool
                 a.MagicWeaponCollisionId = -1;
                 b.MagicWeaponCollisionId = -1;
             }
+
+            GObjectPool.Instance.Recycle(ParticleSystemPool);
+            ParticleSystemPool = null;
         }
+
+        public string tag { get; }
     }
 }

+ 2 - 19
Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCombatSence.cs

@@ -146,6 +146,7 @@ namespace GameLogic.Combat.CombatTool
                 CombatMagicWeaponEntity target = nullTarget[index];
                 MagicWeaponCollisionInfo magicWeaponCollisionInfo =
                     CObjectPool.Instance.Fetch<MagicWeaponCollisionInfo>();
+                
                 magicWeaponCollisionInfo.Init(combatMagicWeaponEntity, target, MagicWeaponCollisionID);
                 magicWeaponCollisionInfoList.Add(MagicWeaponCollisionID, magicWeaponCollisionInfo);
                 MagicWeaponCollisionID++;
@@ -154,25 +155,7 @@ namespace GameLogic.Combat.CombatTool
             return;
         }
 
-        public void AddCollisionMagicWeapon(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b)
-        {
-            MagicWeaponPingDouState.MagicWeaponPingDouData rollingStateData =
-                CObjectPool.Instance.Fetch<MagicWeaponPingDouState.MagicWeaponPingDouData>();
-            rollingStateData.target = b;
-
-            a.CombatAIBasic.ChangeState(CombatHeroStateType.MagicWeaponPingDou,
-                rollingStateData);
-            MagicWeaponPingDouState.MagicWeaponPingDouData rollingStateData2 =
-                CObjectPool.Instance.Fetch<MagicWeaponPingDouState.MagicWeaponPingDouData>();
-            rollingStateData.target = a;
-            b.CombatAIBasic.ChangeState(CombatHeroStateType.MagicWeaponPingDou,
-                rollingStateData2);
-            magicWeaponCollisionInfoList[a.MagicWeaponCollisionId].SetState(2);
-            // MagicWeaponCollisionInfo magicWeaponCollisionInfo = CObjectPool.Instance.Fetch<MagicWeaponCollisionInfo>();
-            // magicWeaponCollisionInfo.a = a;
-            // magicWeaponCollisionInfo.b = b;
-            // magicWeaponCollisionInfoList.Add(magicWeaponCollisionInfo);
-        }
+  
 
         public void RemoveCollisionMagicWeapon(int id)
         {

+ 14 - 8
Assets/Scripts/GameLogic/Combat/CombatTool/SkillScriptManager.cs

@@ -6,7 +6,7 @@ using Utility;
 
 namespace GameLogic.Combat.CombatTool
 {
-    public class SkillScriptManager: Singleton<SkillScriptManager>
+    public class SkillScriptManager : Singleton<SkillScriptManager>
     {
         public static object ActivatorLoock = "lock";
 
@@ -20,28 +20,34 @@ namespace GameLogic.Combat.CombatTool
                     System.Type type = System.Type.GetType(typeName);
                     if (type == null)
                     {
-                        if (skillConfig.SkillType != 5&&skillConfig.SkillType!=6)
+                        typeName = "GameLogic.Combat.Skill.MagicSkill." + skillConfig.scriptName;
+                        type = System.Type.GetType(typeName);
+                        if (type == null)
                         {
-                            LogTool.Error("没有技能脚本" + typeName);
-                        }
+                            if (skillConfig.SkillType != 5 && skillConfig.SkillType != 6)
+                            {
+                                LogTool.Error("没有技能脚本" + typeName);
+                            }
 
-                        return null;
+                            return null;
+                        }
                     }
 
                     // SkillBasic 
-                    SkillBasic sb = (SkillBasic)CObjectPool.Instance.Fetch(type);;
+                    SkillBasic sb = (SkillBasic)CObjectPool.Instance.Fetch(type);
+                    ;
                     sb.InitSkillConfig(skillConfig);
                     return sb;
                 }
             }
             catch (System.Exception e)
             {
-                LogTool.Log(e+"错误技能" + skillConfig.scriptName);
+                LogTool.Log(e + "错误技能" + skillConfig.scriptName);
             }
 
             return null;
         }
-        
+
         // public SuitBasic CreateSkillBasic(RelicSuitConfig relicSuitConfig)
         // {
         //     try

+ 1 - 1
Assets/Scripts/GameLogic/Combat/CombatType/TestCombatType.cs

@@ -84,7 +84,7 @@ namespace GameLogic.Combat.CombatType
                 // index %= nextConfig.monsterPoint.Length;
                 Vector3 pos =
                     CombatController.currActiveCombat.CombatSenceController.GetTarget(
-                        CombatController.currActiveCombat.CombatSenceController.currTime + 0.15f);
+                        CombatController.currActiveCombat.CombatSenceController.currTime + 0.15f)+new Vector3(0,1,0);
 
                 cTaskAwaitBuffer.AddTask(heroEntity.Init(new CombatHeroAi(), combatHeroInfo, pos,
                     delegate(CombatHeroEntity entity)

+ 6 - 1
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs

@@ -240,7 +240,12 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
 
     public virtual float GetAttSpeed()
     {
-        return CombatHeroSkillControl.NormalAttSpeedScale;
+        CombatHeroSkillControl combatHeroSkillControl= CombatHeroSkillControl as CombatHeroSkillControl;
+        if (combatHeroSkillControl != null)
+        {
+            return combatHeroSkillControl.NormalAttSpeedScale;
+        }
+        return 1;
     }
 
     public void HeroResurrection()

+ 9 - 47
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControl.cs

@@ -11,10 +11,8 @@ using UnityEngine;
 
 namespace GameLogic.Combat.Hero
 {
-    public class CombatHeroSkillControl : IDisposable
+    public class CombatHeroSkillControl : CombatHeroSkillControlBasic
     {
-        private BetterList<SkillBasic> allSkill = new BetterList<SkillBasic>();
-
         /// <summary>
         /// 技能指令,0表示没有技能;
         /// </summary>
@@ -25,28 +23,23 @@ namespace GameLogic.Combat.Hero
         /// </summary>
         public SkillBasic currUseSkill;
 
-        private CombatHeroEntity _combatHeroEntity;
 
 
-       
 
         public float NormalAttSpeedScale;
 
-        /// <summary>
-        /// 当前显示跑CD的技能
-        /// </summary>
-        public SkillBasic currCdSkill;
+  
 
         private BetterList<SkillBasic> _skillQueue = new BetterList<SkillBasic>();
 
         // private BetterList<SkillBasic> _skillQueue = new BetterList<SkillBasic>();
         private int _currUseQueueIndex = 0;
 
-        public async CTask Init(CombatHeroEntity combatHeroEntity)
+        protected override async CTask ProInit()
         {
             NormalAttSpeedScale = 2;
             CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
-            _combatHeroEntity = combatHeroEntity;
+
             List<int> skillId = _combatHeroEntity.CurrCombatHeroInfo.unLockSkills;
             if (skillId != null)
             {
@@ -72,7 +65,7 @@ namespace GameLogic.Combat.Hero
                                     TimeLienData timeLienData = JsonManager.FromJson<TimeLienData>(textAsset.text);
                                     timeLienData.DeserializeData();
                                     handle.Release();
-                                    combatHeroEntity.combatHeroTimeLineControl.AddTimeLienData(timeLienData);
+                                    _combatHeroEntity.combatHeroTimeLineControl.AddTimeLienData(timeLienData);
                                 }
                             }));
                     }
@@ -102,36 +95,6 @@ namespace GameLogic.Combat.Hero
             }
         }
 
-        public SkillBasic GetSkillBasic(int skillGroupId)
-        {
-            for (int i = 0; i < allSkill.Count; i++)
-            {
-                if (allSkill[i].SelfSkillConfig.IDGroup == skillGroupId)
-                {
-                    return allSkill[i];
-                }
-            }
-
-            return null;
-        }
-
-        public SkillBasic AddSkill(SkillConfig skillConfig)
-        {
-            if (string.IsNullOrEmpty(skillConfig.scriptName))
-            {
-                return null;
-            }
-
-            SkillBasic skillBasic = SkillScriptManager.Instance.CreateSkillBasic(skillConfig);
-            if (skillBasic == null)
-            {
-                return null;
-            }
-
-            skillBasic.InitSkill(_combatHeroEntity);
-            allSkill.Add(skillBasic);
-            return skillBasic;
-        }
 
         public void AddCommandSkill(SkillBasic skill)
         {
@@ -189,7 +152,6 @@ namespace GameLogic.Combat.Hero
 
         public void StartPolling()
         {
-         
             for (int i = 0; i < _skillQueue.size; i++)
             {
                 SkillBasic skillBasic = allSkill[i];
@@ -205,7 +167,7 @@ namespace GameLogic.Combat.Hero
             _currUseQueueIndex = 0;
         }
 
-        public void Update(float t)
+        protected override void ProUpdate(float t)
         {
             if (currUseSkill == null && SkillCommands.Count <= 0)
             {
@@ -228,9 +190,9 @@ namespace GameLogic.Combat.Hero
             {
                 StartPolling();
             }
-            
         }
 
+
         public void SetNormalAttCd()
         {
             // if (NormalAttack == null)
@@ -254,14 +216,14 @@ namespace GameLogic.Combat.Hero
             // NormalAttCd = cd;
         }
 
-        public void Dispose()
+        public virtual void Dispose()
         {
             _combatHeroEntity = null;
 
             currUseSkill = null;
         }
 
-        public void ProDormancyObj()
+        public virtual void ProDormancyObj()
         {
             for (int i = 0; i < allSkill.size; i++)
             {

+ 105 - 0
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs

@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using Common.Utility.CombatEvent;
+using Excel2Json;
+using Fort23.Core;
+using Fort23.UTool;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Skill;
+using UnityEngine;
+
+namespace GameLogic.Combat.Hero
+{
+    public class CombatHeroSkillControlBasic : IDisposable
+    {
+        public BetterList<SkillBasic> allSkill = new BetterList<SkillBasic>();
+
+
+        protected CombatHeroEntity _combatHeroEntity;
+
+
+        /// <summary>
+        /// 当前显示跑CD的技能
+        /// </summary>
+        public SkillBasic currCdSkill;
+
+        public T This<T>() where T : class
+        {
+            return this as T;
+        }
+
+        public async CTask Init(CombatHeroEntity combatHeroEntity)
+        {
+            _combatHeroEntity = combatHeroEntity;
+            await ProInit();
+        }
+
+        protected virtual async CTask ProInit()
+        {
+        }
+
+
+        public SkillBasic GetSkillBasic(int skillGroupId)
+        {
+            for (int i = 0; i < allSkill.Count; i++)
+            {
+                if (allSkill[i].SelfSkillConfig.IDGroup == skillGroupId)
+                {
+                    return allSkill[i];
+                }
+            }
+
+            return null;
+        }
+
+        public SkillBasic AddSkill(SkillConfig skillConfig)
+        {
+            if (string.IsNullOrEmpty(skillConfig.scriptName))
+            {
+                return null;
+            }
+
+            SkillBasic skillBasic = SkillScriptManager.Instance.CreateSkillBasic(skillConfig);
+            if (skillBasic == null)
+            {
+                return null;
+            }
+
+           
+            skillBasic.InitSkill(_combatHeroEntity);
+            allSkill.Add(skillBasic);
+            return skillBasic;
+        }
+
+
+        public void Update(float t)
+        {
+            for (int i = 0; i < allSkill.Count; i++)
+            {
+                allSkill[i].CombatUpdate(t);
+            }
+
+            ProUpdate(t);
+        }
+
+        protected virtual void ProUpdate(float t)
+        {
+        }
+
+        public virtual void Dispose()
+        {
+            _combatHeroEntity = null;
+        }
+
+        public virtual void ProDormancyObj()
+        {
+            for (int i = 0; i < allSkill.size; i++)
+            {
+                SkillBasic skillBasic = allSkill[i];
+                CObjectPool.Instance.Recycle(skillBasic);
+            }
+
+            allSkill.Clear();
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3fce874957ed48b5ba297aec89a6e7ee
+timeCreated: 1742527047

+ 21 - 6
Assets/Scripts/GameLogic/Combat/Hero/CombatMagicWeaponEntity.cs

@@ -6,6 +6,7 @@ using Fort23.UTool;
 using GameLogic.Combat.Buff;
 using GameLogic.Combat.CombatTool;
 using GameLogic.Combat.Hero.State;
+using GameLogic.Combat.Skill;
 using UnityEngine;
 using UnityEngine.AI;
 
@@ -16,17 +17,16 @@ namespace GameLogic.Combat.Hero
     /// </summary>
     public class CombatMagicWeaponEntity : CombatHeroEntity
     {
-         
         /// <summary>
         /// 碰撞的target
         /// </summary>
         public CombatMagicWeaponEntity CollidingTarget;
 
-        public int MagicWeaponCollisionId=-1;
+        public int MagicWeaponCollisionId = -1;
         protected MagicWeaponConfig _magicWeaponConfig;
         public float cd = 2;
 
-        
+
         public float HpBl
         {
             get { return _HpBl; }
@@ -35,6 +35,7 @@ namespace GameLogic.Combat.Hero
         private float _HpBl = 100;
 
         public int useIndex;
+
         /// <summary>
         /// 是否进入战斗状态
         /// </summary>
@@ -47,6 +48,8 @@ namespace GameLogic.Combat.Hero
             get { return _magicWeaponControl; }
         }
 
+        private BetterList<SkillBasic> allSkill = new BetterList<SkillBasic>();
+
         public void ReduceHp(float value)
         {
             _HpBl -= value;
@@ -57,7 +60,7 @@ namespace GameLogic.Combat.Hero
                 CombatEventManager.Instance.Dispatch(CombatEventType.MagicWeaponDie,
                     heroDieEventData);
                 cd = 10;
-                CombatAIBasic.ChangeState(CombatHeroStateType.XiuMian);
+                CombatAIBasic.ChangeState(CombatHeroStateType.dile);
             }
         }
 
@@ -98,6 +101,17 @@ namespace GameLogic.Combat.Hero
 
             combatHeroGameObject = new CombatHeroGameObject();
             combatHeroGameObject.Init(this, poolInterface);
+            CombatHeroSkillControl = new CombatHeroSkillControlBasic();
+            CombatHeroSkillControl.Init(this);
+            if (magicWeaponConfig.skillID != null)
+            {
+                for (int i = 0; i < magicWeaponConfig.skillID.Length; i++)
+                {
+                    int id = magicWeaponConfig.skillID[i] * 10 + 1;
+                    SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(id);
+                    CombatHeroSkillControl.AddSkill(skillConfig);
+                }
+            }
 
 
             if (CombatAIBasic == null)
@@ -136,11 +150,12 @@ namespace GameLogic.Combat.Hero
         {
             combatHeroTimeLineControl.Update(t);
             CombatAIBasic?.Update(t);
+            CombatHeroSkillControl?.Update(t);
             if (CombatAIBasic.CurrState.GetType() == typeof(MagicWeapomDormancyState))
             {
                 cd -= t;
-             
-                if (cd <= 0&&_magicWeaponControl.combatHeroEntity.CombatAIBasic.currFocusTarget != null)
+
+                if (cd <= 0 && _magicWeaponControl.combatHeroEntity.CombatAIBasic.currFocusTarget != null)
                 {
                     _HpBl = 100;
                     CollidingTarget = null;

+ 5 - 3
Assets/Scripts/GameLogic/Combat/Hero/MagicWeaponAi.cs

@@ -14,10 +14,11 @@ namespace GameLogic.Combat.Hero
 
             stateControl.AddState(CombatHeroStateType.idle, new MagicWeaponIdleState(_showBaiscEntity));
             stateControl.AddState(CombatHeroStateType.move, new MagicWeaponMoveState(_showBaiscEntity));
-            stateControl.AddState(CombatHeroStateType.MagicWeaponPingDou, new MagicWeaponPingDouState(_showBaiscEntity));
+            stateControl.AddState(CombatHeroStateType.MagicWeaponPingDou,
+                new MagicWeaponPingDouState(_showBaiscEntity));
             stateControl.AddState(CombatHeroStateType.Active, new MagicWeaponChuChangState(_showBaiscEntity));
             stateControl.AddState(CombatHeroStateType.att, new MagicWeaponAttState(_showBaiscEntity));
-            
+            stateControl.AddState(CombatHeroStateType.dile, new MagicWeaponDieState(_showBaiscEntity));
         }
 
         protected override void ProUpdate()
@@ -30,7 +31,8 @@ namespace GameLogic.Combat.Hero
             if (rootRoat != null)
             {
                 rootRoat.localEulerAngles =
-                    new Vector3(rootRoat.localEulerAngles.x ,rootRoat.localEulerAngles.y, rootRoat.localEulerAngles.z + roatSpeed);
+                    new Vector3(rootRoat.localEulerAngles.x, rootRoat.localEulerAngles.y,
+                        rootRoat.localEulerAngles.z + roatSpeed);
             }
         }
     }

+ 1 - 1
Assets/Scripts/GameLogic/Combat/Hero/ShowBaiscEntity.cs

@@ -18,7 +18,7 @@ namespace GameLogic.Combat.Hero
         public CombatHeroGameObject combatHeroGameObject;
         public CombatHeroTimeLineControl combatHeroTimeLineControl;
         public HeroAnimtionBasic combatHeroAnimtion;
-        public CombatHeroSkillControl CombatHeroSkillControl;
+        public CombatHeroSkillControlBasic CombatHeroSkillControl;
 
         public BuffControl BuffControl;
         public BetterList<CombatParticleSystemPool> heroLoopParticle = new BetterList<CombatParticleSystemPool>();

+ 4 - 4
Assets/Scripts/GameLogic/Combat/Hero/State/CombatHeroAttState.cs

@@ -18,7 +18,7 @@ namespace GameLogic.Combat.Hero.State
 
         protected override void ProEnter()
         {
-            skillBasic = combatHeroEntity.CombatHeroSkillControl.CanReleaseSkill();
+            skillBasic = combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().CanReleaseSkill();
             if (skillBasic == null)
             {
                 combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
@@ -37,8 +37,8 @@ namespace GameLogic.Combat.Hero.State
                     LogTool.Log("其他技能结束");
                 }
             });
-            combatHeroEntity.CombatHeroSkillControl.RemoveCommandSkill(skillBasic);
-            combatHeroEntity.CombatHeroSkillControl.UseSkill(skillBasic);
+            combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().RemoveCommandSkill(skillBasic);
+            combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().UseSkill(skillBasic);
         }
 
         protected override void ProExit()
@@ -49,7 +49,7 @@ namespace GameLogic.Combat.Hero.State
             }
 
           
-            combatHeroEntity.CombatHeroSkillControl.currUseSkill = null;
+            combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().currUseSkill = null;
             skillBasic = null;
         }
     }

+ 1 - 1
Assets/Scripts/GameLogic/Combat/Hero/State/CombatHeroIdleState.cs

@@ -30,7 +30,7 @@ namespace GameLogic.Combat.Hero.State
                 combatHeroEntity.CombatAIBasic.AddSubStatus(FightIdleSubState);
             }
 
-            if (combatHeroEntity.CombatHeroSkillControl.CanReleaseSkill() != null)
+            if (combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().CanReleaseSkill() != null)
             {
                 combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.att);
             }

+ 20 - 7
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponAttState.cs

@@ -1,6 +1,7 @@
 using Common.Utility.CombatEvent;
 using Core.Utility;
 using Fort23.Core;
+using GameLogic.Combat.Skill;
 using UnityEngine;
 
 namespace GameLogic.Combat.Hero.State
@@ -9,7 +10,6 @@ namespace GameLogic.Combat.Hero.State
     {
         private CombatMagicWeaponEntity myCombatMagicWeaponEntity;
 
-        private BesselPath _besselPath;
 
         public MagicWeaponAttState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
         {
@@ -21,10 +21,25 @@ namespace GameLogic.Combat.Hero.State
         /// </summary>
         protected override void ProEnter()
         {
-            _besselPath = CObjectPool.Instance.Fetch<BesselPath>();
-            myCombatMagicWeaponEntity.GameObject.transform.eulerAngles = Vector3.zero;
-            Vector3 p1 = myCombatMagicWeaponEntity.GameObject.transform.TransformVector(new Vector3(-1.5f, 1.7f, 1));
-            
+            if (myCombatMagicWeaponEntity.CombatHeroSkillControl.allSkill.Count <= 0)
+            {
+                Finish();
+                return;
+            }
+
+            SkillBasic skillBasic = myCombatMagicWeaponEntity.CombatHeroSkillControl.allSkill[0];
+            if (skillBasic == null)
+            {
+                Finish();
+                return;
+            }
+
+            skillBasic.SetSkillFinishCallBack(delegate(SkillBasic sb) { Finish(); });
+            skillBasic.UseSkill();
+        }
+
+        private void Finish()
+        {
             HeroDieEventData heroDieEventData = HeroDieEventData.Create();
             heroDieEventData.combatHeroEntity = myCombatMagicWeaponEntity;
             CombatEventManager.Instance.Dispatch(CombatEventType.MagicWeaponDie,
@@ -35,12 +50,10 @@ namespace GameLogic.Combat.Hero.State
 
         private void SetTargetPos()
         {
-            
         }
 
         protected override void ProExit()
         {
-            CObjectPool.Instance.Recycle(_besselPath);
         }
     }
 }

+ 9 - 1
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponChuChangState.cs

@@ -15,6 +15,7 @@ namespace GameLogic.Combat.Hero.State
         private float _currTime;
         private TimeLineEventLogicGroupBasic timeLineEventLogicGroup;
 
+        private bool isUpdate;
         public MagicWeaponChuChangState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
         {
             myCombatMagicWeaponEntity = combatHeroEntity as CombatMagicWeaponEntity;
@@ -25,7 +26,7 @@ namespace GameLogic.Combat.Hero.State
             timeLineEventLogicGroup =
                 combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("jihuo");
 
-
+            myCombatMagicWeaponEntity.GameObject.transform.eulerAngles = Vector3.zero;
             myCombatMagicWeaponEntity.GameObject.SetActive(true);
             startPos = myCombatMagicWeaponEntity.MagicWeaponControl.combatHeroEntity.dotPos;
             float y = myCombatMagicWeaponEntity.IsEnemy ? 5 : 3;
@@ -35,16 +36,23 @@ namespace GameLogic.Combat.Hero.State
             endPos = startPos + new Vector3(x, y, 0);
             _addTime = 1.0f / (Vector3.Distance(startPos, endPos) / 3);
             _currTime = 0;
+            isUpdate = true;
         }
 
 
         protected override void ProUpdate(float t)
         {
+            if (!isUpdate)
+            {
+                return;
+            }
+
             _currTime += t * _addTime;
             Vector3 pos = Vector3.Lerp(startPos, endPos, _currTime);
             myCombatMagicWeaponEntity.combatHeroGameObject.SetPosition(pos);
             if (_currTime >= 1)
             {
+                isUpdate = false;
                 if (timeLineEventLogicGroup != null)
                 {
                     timeLineEventLogicGroup.CloseLoopFx();

+ 29 - 0
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponDieState.cs

@@ -0,0 +1,29 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+
+namespace GameLogic.Combat.Hero.State
+{
+    public class MagicWeaponDieState: CombatHeroStateBasic
+    {
+        public MagicWeaponDieState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
+        {
+        }
+
+        protected override void ProEnter()
+        {
+            combatHeroEntity.GameObject.SetActive(false);
+            TimeLineEventLogicGroupBasic    timeLineEventLogicGroup =
+                combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die");
+            if (timeLineEventLogicGroup != null)
+            {
+                timeLineEventLogicGroup.TimeLineUpdateEnd = delegate()
+                {
+                    combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.XiuMian);
+                };
+            }
+            else
+            {
+                combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.XiuMian);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponDieState.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: fd8f67c034ac4daa94e9ce0de6aeaa9c
+timeCreated: 1742549771

+ 4 - 4
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponIdleState.cs

@@ -46,10 +46,10 @@ namespace GameLogic.Combat.Hero
                         myCombatMagicWeaponEntity.GameObject.transform.rotation,
                         newQuaternion, 5);
                 }
-                else
-                {
-                    myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.move);
-                }
+                // else
+                // {
+                //     myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.move);
+                // }
 
                 return;
             }

+ 7 - 119
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponMoveState.cs

@@ -11,7 +11,7 @@ namespace GameLogic.Combat.Hero.State
     /// <summary>
     /// 再空中飞来飞去撞的时候
     /// </summary>
-    public class MagicWeaponMoveState : CombatHeroStateBasic,ITriggerEntity
+    public class MagicWeaponMoveState : CombatHeroStateBasic
     {
         public class MagicWeaponMoveStateData : CObject, IStateEnterData
         {
@@ -45,25 +45,11 @@ namespace GameLogic.Combat.Hero.State
 
         protected override void ProEnter()
         {
-            MagicWeaponMoveStateData magicWeaponMoveStateData = iStateEnterData as MagicWeaponMoveStateData;
-            if (magicWeaponMoveStateData != null)
-            {
-                _trigger = magicWeaponMoveStateData.trigger;
-                _triggerTime = magicWeaponMoveStateData.triggerTime;
-            }
-
-            OnTriggerEnterEvent = myCombatMagicWeaponEntity.GameObject.OnTriggerEnterEvent(this,OnTriggerEnter);
+ 
+            
         }
 
-        public Vector3 GetStartPos()
-        {
-            Vector3 startPos = myCombatMagicWeaponEntity.MagicWeaponControl.combatHeroEntity.dotPos;
-            float y = myCombatMagicWeaponEntity.IsEnemy ? 5 : 3;
-            float x = myCombatMagicWeaponEntity.useIndex;
-
-
-            return startPos + new Vector3(x, y, 0);
-        }
+ 
 
         private void OnTriggerEnter(Collider collider,ITriggerEntity triggerEntity)
         {
@@ -78,109 +64,11 @@ namespace GameLogic.Combat.Hero.State
                 return;
             }
 
-            CombatMagicWeaponEntity combatMagicWeaponEntity =
-                heroEntityMono.combatHeroEntity as CombatMagicWeaponEntity;
-            if ((combatMagicWeaponEntity.HpBl <= 30 || myCombatMagicWeaponEntity.HpBl < 20) &&
-                myCombatMagicWeaponEntity.CombatAIBasic.CurrState is MagicWeaponMoveState)
-            {
-                CombatController.currActiveCombat.MagicWeaponCombatSence.AddCollisionMagicWeapon(
-                    combatMagicWeaponEntity, myCombatMagicWeaponEntity);
-            }
-            else
-            {
-                if (!myCombatMagicWeaponEntity.IsEnemy)
-                {
-                    CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle("fx_爆",
-                        collider.transform.position, null, false, null, delegate(ParticleSystemPool particleSystemPool)
-                        {
-                            particleSystemPool.transform.rotation =
-                                myCombatMagicWeaponEntity.GameObject.transform.rotation;
-                        });
-                }
-
-                combatMagicWeaponEntity.ReduceHp(40);
-                _trigger = true;
-                _triggerTime = 0.5f;
-                myCombatMagicWeaponEntity.CollidingTarget = null;
-            }
-
-            // _trigger = true;
-            // _triggerTime = 0.5f;
-            //碰到了要撞的敌人
+        
+            
         }
 
-        protected override void ProUpdate(float t)
-        {
-            if (myCombatMagicWeaponEntity.CollidingTarget == null ||
-                myCombatMagicWeaponEntity.CollidingTarget.HpBl <= 0)
-            {
-                // myCombatMagicWeaponEntity.CollidingTarget = combatMagicWeaponEntity;
-            }
-
-            MagicWeaponCollisionInfo nMagicWeaponCollisionInfo =
-                CombatController.currActiveCombat.MagicWeaponCombatSence.FindMagicWeaponCollisionInfo(
-                    myCombatMagicWeaponEntity.MagicWeaponCollisionId);
-            myCombatMagicWeaponEntity.CollidingTarget =
-                nMagicWeaponCollisionInfo.a == combatHeroEntity
-                    ? nMagicWeaponCollisionInfo.b
-                    : nMagicWeaponCollisionInfo.a;
-            Vector3 targetPos = Vector3.zero;
-            CombatMagicWeaponEntity currCollidingTarget = myCombatMagicWeaponEntity.CollidingTarget;
-            if (currCollidingTarget == null || !currCollidingTarget.isCombatState) //没有可碰撞的法宝了
-            {
-                Vector3 startPos = GetStartPos();
-                if (Vector3.Distance(startPos, myCombatMagicWeaponEntity.dotPos) < 0.5f)
-                {
-                    myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
-                    return;
-                }
-
-                targetPos = startPos;
-            }
-            else
-            {
-                targetPos = currCollidingTarget.dotPos;
-            }
-
-
-            Quaternion newQuaternion = myCombatMagicWeaponEntity.GameObject.transform.rotation;
-            if (_trigger && _triggerTime > 0)
-            {
-                _triggerTime -= t;
-                if (_triggerTime <= 0)
-                {
-                    _trigger = false;
-                    // speed = 1;
-                }
-            }
-            else
-            {
-                Vector3 newDir = (targetPos - myCombatMagicWeaponEntity.dotPos).normalized;
-                float targetAngle = Vector3.Angle(Vector3.forward, newDir);
-                // Quaternion.Euler(0, targetAngle, 0) * enemyDirection;
-                newQuaternion = Quaternion.LookRotation(newDir);
-
-
-                newQuaternion = Quaternion.RotateTowards(myCombatMagicWeaponEntity.GameObject.transform.rotation,
-                    newQuaternion, 5);
-
-                _lastDir = newDir;
-            }
-
-            // speed += t * 3;
-            // if (speed > 10)
-            // {
-            //     speed = 10;
-            // }
-
-            Vector3 pos = newQuaternion * new Vector3(0, 0, 1);
-            Vector3 movePos = pos * speed * t;
-
-            Vector3 _currPos = myCombatMagicWeaponEntity.dotPos;
-            _currPos += movePos;
-            myCombatMagicWeaponEntity.combatHeroGameObject.SetPosition(_currPos);
-            myCombatMagicWeaponEntity.GameObject.transform.rotation = newQuaternion;
-        }
+   
 
 
         protected void ActiveHero()

+ 17 - 19
Assets/Scripts/GameLogic/Combat/Hero/State/MagicWeaponPingDouState.cs

@@ -1,3 +1,4 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
 using Core.State;
 using Fort23.Core;
 using Fort23.UTool;
@@ -31,8 +32,9 @@ namespace GameLogic.Combat.Hero.State
 
         private MagicWeaponPingDouData _magicWeaponPingDouData;
 
-        private ParticleSystemPool _particleSystemPool1;
+     
         private ParticleSystemPool _particleSystemPool2;
+        private TimeLineEventLogicGroupBasic timeLineEventLogicGroup;
         public MagicWeaponPingDouState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
         {
             myCombatMagicWeaponEntity = combatHeroEntity as CombatMagicWeaponEntity;
@@ -40,20 +42,18 @@ namespace GameLogic.Combat.Hero.State
 
         protected override void ProEnter()
         {
-            CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle("fx_对拼气罩_loop",
-                myCombatMagicWeaponEntity.dotPos, null, false, null, delegate(ParticleSystemPool particleSystemPool)
-                {
-                    particleSystemPool.transform.rotation =
-                        myCombatMagicWeaponEntity.GameObject.transform.rotation;
-                    _particleSystemPool1= particleSystemPool;
-                });
-            CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle("fx_对拼点",
-                myCombatMagicWeaponEntity.dotPos, null, false, null, delegate(ParticleSystemPool particleSystemPool)
-                {
-                    particleSystemPool.transform.rotation =
-                        myCombatMagicWeaponEntity.GameObject.transform.rotation;
-                    _particleSystemPool2= particleSystemPool;
-                });
+             timeLineEventLogicGroup =
+                combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("pengzhuang");
+            // _awaitTime = 1.0f;
+            // 
+            // CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle("fx_对拼气罩_loop",
+            //     myCombatMagicWeaponEntity.dotPos, null, false, null, delegate(ParticleSystemPool particleSystemPool)
+            //     {
+            //         particleSystemPool.transform.rotation =
+            //             myCombatMagicWeaponEntity.GameObject.transform.rotation;
+            //         _particleSystemPool1= particleSystemPool;
+            //     });
+          
         }
 
 
@@ -63,10 +63,8 @@ namespace GameLogic.Combat.Hero.State
 
         protected override void ProExit()
         {
-            GObjectPool.Instance.Recycle(_particleSystemPool1);
-            GObjectPool.Instance.Recycle(_particleSystemPool2);
-            _particleSystemPool1 = null;
-            _particleSystemPool2 = null;
+            timeLineEventLogicGroup?.CloseLoopFx();
+    
         }
 
         public override bool IsUpdateLockTarget()

+ 1 - 1
Assets/Scripts/GameLogic/Combat/Hero/State/PlayerHeroIdleState.cs

@@ -12,7 +12,7 @@ namespace GameLogic.Combat.Hero.State
 
         protected override void ProUpdate(float t)
         {
-            if (combatHeroEntity.CombatHeroSkillControl.CanReleaseSkill() != null)
+            if (combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().CanReleaseSkill() != null)
             {
                 combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.att);
             }

+ 26 - 1
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/MagicSkillBasic.cs

@@ -2,9 +2,34 @@ namespace GameLogic.Combat.Skill.MagicSkill
 {
     public class MagicSkillBasic : SkillBasic
     {
+        protected MagicAttShowBasic magicAttShowBasic;
+
+        
         protected override void ProUseSkill()
         {
-            
+            _finishTimeLineGroupName = "-1";
+            ProMagicUseSkill();
+        }
+        protected virtual void ProMagicUseSkill()
+        {
+        }
+        protected void SetMagicAttShowBasic(MagicAttShowBasic magicAttShowBasic)
+        {
+            this.magicAttShowBasic = magicAttShowBasic;
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (magicAttShowBasic != null)
+            {
+                magicAttShowBasic.Update(time);
+            }
+
+            MagicSkillUpdate(time);
+        }
+
+        protected virtual void MagicSkillUpdate(float time)
+        {
         }
     }
 }

+ 42 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901001.cs

@@ -0,0 +1,42 @@
+using GameLogic.Combat.CombatTool;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill.MagicSkill
+{
+    /// <summary>
+    /// 法宝技能
+    /// </summary>
+    public class S901001 : MagicSkillBasic
+    {
+        private CombatHeroEntity target;
+
+        protected override void ProMagicUseSkill()
+        {
+            StraightLineShow straightLineShow = new StraightLineShow();
+            straightLineShow.Init(this);
+            CombatHeroEntity[] allHero =
+                CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
+            if (allHero == null || allHero.Length <= 0)
+            {
+                SkillPlayFinish();
+                return;
+            }
+
+            target = allHero[0];
+
+            straightLineShow.SetTarget(allHero[0], Finish);
+            SetMagicAttShowBasic(straightLineShow);
+        }
+
+        private void Finish()
+        {
+            Debug.Log("法宝对敌人照成伤害");
+            ILifetCycleHitPoint lifetCycleHitPoint = target.GetMainHotPoin<ILifetCycleHitPoint>();
+            BetterList<ILifetCycleHitPoint> cBetterList = new BetterList<ILifetCycleHitPoint>(1);
+            cBetterList.Add(lifetCycleHitPoint);
+            ActivationTimeLineData("gongji", currTarget: cBetterList);
+            SkillPlayFinish();
+        }
+    }
+}

+ 0 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S910001.cs.meta → Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901001.cs.meta


+ 0 - 9
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S910001.cs

@@ -1,9 +0,0 @@
-namespace GameLogic.Combat.Skill.MagicSkill
-{
-    /// <summary>
-    /// 法宝技能
-    /// </summary>
-    public class S910001 : MagicSkillBasic
-    {
-    }
-}

+ 20 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/MagicAttShowBasic.cs

@@ -2,13 +2,33 @@ namespace GameLogic.Combat.Skill.MagicSkill
 {
     public class MagicAttShowBasic
     {
+        protected SkillBasic _skillBasic;
+
+        protected bool isUpdate;
+        public void Init(SkillBasic skillBasic)
+        {
+            _skillBasic= skillBasic;
+            isUpdate = true;
+            ProInit();
+        }
+        protected virtual void ProInit()
+        {
+            
+        }
+
         public void Update(float t)
         {
+            if (!isUpdate)
+            {
+                return;
+            }
+
             ProUpdate(t);
         }
 
         protected virtual void ProUpdate(float t)
         {
+            
         }
     }
 }

+ 60 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/StraightLineShow.cs

@@ -1,6 +1,66 @@
+using Common.Utility.CombatEvent;
+using Core.Utility;
+using Fort23.Core;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using UnityEngine;
+using Utility.CTween;
+
 namespace GameLogic.Combat.Skill.MagicSkill
 {
     public class StraightLineShow : MagicAttShowBasic
     {
+        private CombatHeroEntity target;
+        private BesselPath _besselPath;
+        private float allTime;
+        private float speed = 15;
+
+        private float addTime;
+        private System.Action callBack;
+
+        public void SetTarget(CombatHeroEntity target, System.Action callBack)
+        {
+            this.callBack = callBack;
+            this.target = target;
+            _besselPath = CObjectPool.Instance.Fetch<BesselPath>();
+            _skillBasic.CombatHeroEntity.GameObject.transform.eulerAngles = Vector3.zero;
+            Vector3 p1 =
+                _skillBasic.CombatHeroEntity.GameObject.transform.TransformPoint(new Vector3(-5f, 5f, 5f));
+            Vector3 p2 = SetTargetPos2();
+            _besselPath.controlPoints.Add(_skillBasic.CombatHeroEntity.GameObject.transform.position);
+            _besselPath.controlPoints.Add(p1);
+            _besselPath.controlPoints.Add(p2);
+            _besselPath.controlPoints.Add(target.dotPos);
+            float d = _besselPath.GetLengthAtT(allTime);
+     
+            addTime = 1.0f / (d / speed);
+            allTime = 0;
+        }
+
+        protected Vector3 SetTargetPos2()
+        {
+            Vector3 p2 = target.GameObject.transform.TransformPoint(new Vector3(-5f, 1f, 5f));
+            return p2;
+        }
+
+        protected override void ProUpdate(float t)
+        {
+            Vector3 p2 = SetTargetPos2();
+            _besselPath.controlPoints[2] = p2;
+            _besselPath.controlPoints[3] = target.dotPos;
+
+            allTime += t * addTime;
+            float v = CustomTweenManager.AnimationCurveLibrary.fabaoAtt.Evaluate(allTime);
+            Vector3 lasetPos = _besselPath.CalculatePoint(v - 0.01f);
+            Vector3 p = _besselPath.CalculatePoint(v);
+            _skillBasic.CombatHeroEntity.combatHeroGameObject.SetPosition(p);
+            Quaternion quaternion = Quaternion.LookRotation((p - lasetPos).normalized);
+            _skillBasic.CombatHeroEntity.GameObject.transform.rotation =
+                Quaternion.Lerp(_skillBasic.CombatHeroEntity.GameObject.transform.rotation, quaternion, 0.5f);
+            if (allTime >= 1)
+            {
+                isUpdate = false;
+                callBack?.Invoke();
+            }
+        }
     }
 }

BIN
Excel2Json/Excel/MagicWeapon.xlsx


BIN
Excel2Json/Excel/skill.xlsx


+ 146 - 120
UserSettings/Layouts/default-2022.dwlt

@@ -19,12 +19,38 @@ MonoBehaviour:
     width: 2560
     height: 1349
   m_ShowMode: 4
-  m_Title: Hierarchy
-  m_RootView: {fileID: 6}
+  m_Title: Inspector
+  m_RootView: {fileID: 7}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_Maximized: 1
 --- !u!114 &2
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  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: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: TimelineWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 710
+    width: 875
+    height: 234
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 13}
+  m_Panes:
+  - {fileID: 13}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &3
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -40,17 +66,17 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 496
-    width: 974
-    height: 803
+    y: 944
+    width: 875
+    height: 355
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
-  m_ActualView: {fileID: 21}
+  m_ActualView: {fileID: 22}
   m_Panes:
-  - {fileID: 21}
+  - {fileID: 22}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &3
+--- !u!114 &4
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -63,20 +89,21 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 11}
+  - {fileID: 12}
   - {fileID: 2}
+  - {fileID: 3}
   m_Position:
     serializedVersion: 2
-    x: 680
+    x: 779
     y: 0
-    width: 974
+    width: 875
     height: 1299
-  m_MinSize: {x: 100, y: 100}
-  m_MaxSize: {x: 8096, y: 16192}
+  m_MinSize: {x: 100, y: 150}
+  m_MaxSize: {x: 8096, y: 24288}
   vertical: 1
   controlID: 43
   draggingID: 0
---- !u!114 &4
+--- !u!114 &5
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -97,13 +124,13 @@ MonoBehaviour:
     height: 1299
   m_MinSize: {x: 275, y: 50}
   m_MaxSize: {x: 4000, y: 4000}
-  m_ActualView: {fileID: 20}
+  m_ActualView: {fileID: 21}
   m_Panes:
-  - {fileID: 20}
-  - {fileID: 15}
+  - {fileID: 21}
+  - {fileID: 16}
   m_Selected: 0
   m_LastSelected: 1
---- !u!114 &5
+--- !u!114 &6
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -120,16 +147,16 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 680
+    width: 779
     height: 1299
-  m_MinSize: {x: 201, y: 221}
-  m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 22}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 23}
   m_Panes:
-  - {fileID: 22}
+  - {fileID: 23}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &6
+--- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -142,9 +169,9 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 7}
   - {fileID: 8}
   - {fileID: 9}
+  - {fileID: 10}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -157,7 +184,7 @@ MonoBehaviour:
   m_TopViewHeight: 30
   m_UseBottomView: 1
   m_BottomViewHeight: 20
---- !u!114 &7
+--- !u!114 &8
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -179,7 +206,7 @@ MonoBehaviour:
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
   m_LastLoadedLayoutName: 
---- !u!114 &8
+--- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -192,22 +219,22 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 5}
-  - {fileID: 3}
-  - {fileID: 10}
+  - {fileID: 6}
   - {fileID: 4}
+  - {fileID: 11}
+  - {fileID: 5}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 30
     width: 2560
     height: 1299
-  m_MinSize: {x: 400, y: 100}
-  m_MaxSize: {x: 32384, y: 16192}
+  m_MinSize: {x: 400, y: 150}
+  m_MaxSize: {x: 32384, y: 24288}
   vertical: 0
   controlID: 42
   draggingID: 0
---- !u!114 &9
+--- !u!114 &10
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -228,7 +255,7 @@ MonoBehaviour:
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
---- !u!114 &10
+--- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -249,12 +276,12 @@ MonoBehaviour:
     height: 1299
   m_MinSize: {x: 200, y: 200}
   m_MaxSize: {x: 4000, y: 4000}
-  m_ActualView: {fileID: 19}
+  m_ActualView: {fileID: 20}
   m_Panes:
-  - {fileID: 19}
+  - {fileID: 20}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &11
+--- !u!114 &12
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -271,22 +298,21 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 974
-    height: 496
+    width: 875
+    height: 710
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 23}
+  m_ActualView: {fileID: 24}
   m_Panes:
-  - {fileID: 23}
+  - {fileID: 24}
+  - {fileID: 19}
   - {fileID: 18}
   - {fileID: 17}
-  - {fileID: 16}
+  - {fileID: 15}
   - {fileID: 14}
-  - {fileID: 13}
-  - {fileID: 12}
   m_Selected: 0
-  m_LastSelected: 6
---- !u!114 &12
+  m_LastSelected: 5
+--- !u!114 &13
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -306,10 +332,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 680
-    y: 73
-    width: 972
-    height: 475
+    x: 779
+    y: 783
+    width: 873
+    height: 213
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -327,9 +353,9 @@ MonoBehaviour:
     m_IsLocked: 0
   m_SequenceHierarchy: {fileID: 0}
   m_SequencePath:
-    m_SelectionRoot: -1840
+    m_SelectionRoot: 0
     m_SubElements: []
---- !u!114 &13
+--- !u!114 &14
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -349,10 +375,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 680
+    x: 779
     y: 73
-    width: 972
-    height: 315
+    width: 873
+    height: 379
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -363,11 +389,11 @@ MonoBehaviour:
     m_LastAppliedPresetName: Default
     m_SaveData: []
     m_OverlaysVisible: 1
-  _SourceObject: {fileID: 11400000, guid: 8a18e10aaf4ea994e9e39fa8b79d5fbd, type: 2}
+  _SourceObject: {fileID: 11400000, guid: 7966078bfd2ccab4a92b1f0be02bcd95, type: 2}
   _Data:
     _Transitions:
-    - {fileID: 5809678034847680219, guid: 8a18e10aaf4ea994e9e39fa8b79d5fbd, type: 2}
-    - {fileID: 1485322484274848399, guid: 8a18e10aaf4ea994e9e39fa8b79d5fbd, type: 2}
+    - {fileID: 5519247924259519141, guid: 7966078bfd2ccab4a92b1f0be02bcd95, type: 2}
+    - {fileID: -5287561629531185777, guid: 7966078bfd2ccab4a92b1f0be02bcd95, type: 2}
     _Modifiers:
     - _From: 0
       _To: 0
@@ -375,10 +401,10 @@ MonoBehaviour:
     - _From: 1
       _To: 0
       _Fade: 0
-    - _From: 1
+    - _From: 0
       _To: 1
       _Fade: 0
-    - _From: 0
+    - _From: 1
       _To: 1
       _Fade: 0
     _Aliases: []
@@ -401,7 +427,7 @@ MonoBehaviour:
       type: {class: TransitionLibraryAliasesPage, ns: Animancer.Editor.TransitionLibraries, asm: Kybernetik.Animancer.Editor}
       data:
         _ScrollPosition: {x: 0, y: 0}
---- !u!114 &14
+--- !u!114 &15
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -471,7 +497,7 @@ MonoBehaviour:
   m_CurrentEditor: 0
   m_LayerEditor:
     m_SelectedLayerIndex: 0
---- !u!114 &15
+--- !u!114 &16
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -505,7 +531,7 @@ MonoBehaviour:
     m_LastAppliedPresetName: Default
     m_SaveData: []
     m_OverlaysVisible: 1
---- !u!114 &16
+--- !u!114 &17
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -1307,7 +1333,7 @@ MonoBehaviour:
     {\n        \"m_SerializableColors\": []\n    }\n}\n\n"
   m_AssetMaybeChangedOnDisk: 0
   m_AssetMaybeDeleted: 0
---- !u!114 &17
+--- !u!114 &18
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2133,7 +2159,7 @@ MonoBehaviour:
     {\n        \"m_SerializableColors\": []\n    }\n}\n\n"
   m_AssetMaybeChangedOnDisk: 0
   m_AssetMaybeDeleted: 0
---- !u!114 &18
+--- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2435,7 +2461,7 @@ MonoBehaviour:
     true,\n    \"m_ClearCoat\": false\n}\n\n"
   m_AssetMaybeChangedOnDisk: 0
   m_AssetMaybeDeleted: 0
---- !u!114 &19
+--- !u!114 &20
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2455,8 +2481,8 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: -30346
-    y: -31970
+    x: 1654
+    y: 73
     width: 360
     height: 1278
   m_SerializedDataModeController:
@@ -2474,23 +2500,23 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: dcf8ffff78faffff
+      m_ExpandedIDs: 0c88fdff6888fdff341efeff641efeffa41efeffd41efeff10bdfeffa0befeffacbefeffbcbefeffd6befeffdabefeffe0befeffecbefeffe605ffffe63effff78faffffb2a80000
       m_RenameOverlay:
         m_UserAcceptedRename: 0
-        m_Name: 
-        m_OriginalName: 
+        m_Name: GameObject (1)
+        m_OriginalName: GameObject (1)
         m_EditFieldRect:
           serializedVersion: 2
           x: 0
           y: 0
           width: 0
           height: 0
-        m_UserData: 0
+        m_UserData: -161744
         m_IsWaitingForDelay: 0
         m_IsRenaming: 0
-        m_OriginalEventType: 11
+        m_OriginalEventType: 0
         m_IsRenamingFilename: 0
-        m_ClientGUIView: {fileID: 10}
+        m_ClientGUIView: {fileID: 11}
       m_SearchString: 
     m_ExpandedScenes: []
     m_CurrenRootInstanceID: 0
@@ -2498,7 +2524,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: f7da054d227971a4d8e6d4985252c187
---- !u!114 &20
+--- !u!114 &21
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2545,7 +2571,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &21
+--- !u!114 &22
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2565,10 +2591,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 680
-    y: 569
-    width: 972
-    height: 782
+    x: 779
+    y: 1017
+    width: 873
+    height: 334
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -2580,7 +2606,7 @@ MonoBehaviour:
     m_SaveData: []
     m_OverlaysVisible: 1
   m_SearchFilter:
-    m_NameFilter: 
+    m_NameFilter: fb_yup
     m_ClassNames: []
     m_AssetLabels: []
     m_AssetBundleNames: []
@@ -2590,24 +2616,24 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/Art/VFX/FXPrefabs
+    - Assets/Art/FaBaoMesh/1
     m_Globs: []
-    m_OriginalText: 
+    m_OriginalText: fb_yup
     m_ImportLogFlags: 0
     m_FilterByTypeIntersection: 0
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/Art/VFX/FXPrefabs
+  - Assets/Art/FaBaoMesh/1
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\unityProject\XiuXianGame
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 271}
-    m_SelectedIDs: c8b30000
-    m_LastClickedID: 46024
-    m_ExpandedIDs: 0000000090af000092af000094af000096af000098af00009aaf00009caf00009eaf0000a0af0000a2af0000a4af0000b4af0000c2af0000e0af0000e8af0000ecaf0000ae5d010000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 223}
+    m_SelectedIDs: f8370100
+    m_LastClickedID: 79864
+    m_ExpandedIDs: 00000000b0af0000b2af0000b4af0000b6af0000b8af0000baaf0000bcaf0000beaf0000c0af0000c2af0000c4af0000d8af0000e0af0000eaaf000002b0000008b0000014b0000018b000005ebc0000a409010000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -2623,7 +2649,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 2}
+      m_ClientGUIView: {fileID: 3}
     m_SearchString: 
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
@@ -2635,7 +2661,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 0000000090af000092af000094af000096af000098af00009aaf00009caf00009eaf0000a0af0000a2af0000a4af0000
+    m_ExpandedIDs: 00000000b0af0000b2af0000b4af0000b6af0000b8af0000baaf0000bcaf0000beaf0000c0af0000c2af0000c4af0000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -2663,23 +2689,23 @@ MonoBehaviour:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
     m_HadKeyboardFocusLastEvent: 1
-    m_ExpandedInstanceIDs: bc7400008ebd000008bd0000300b0100b0ae00005cdf0000c8480100f630010094b1000014b3000090b4000088b4000042b40000aab40000fcb3000044b30000a2b400007cb400008cb4000048a501003eb2000022b2000070de000056dc000020af00001cad00001aad0000
+    m_ExpandedInstanceIDs: bc7400008ebd000008bd0000300b0100b0ae00005cdf0000c8480100f630010094b1000014b3000090b4000088b4000042b40000aab40000fcb3000044b30000a2b400007cb400008cb4000048a501003eb2000022b2000070de000056dc000020af00001cad00001aad000074c8000070c80000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
-      m_Name: Nanzhu_timeline_TD
-      m_OriginalName: Nanzhu_timeline_TD
+      m_Name: fb_yuping
+      m_OriginalName: fb_yuping
       m_EditFieldRect:
         serializedVersion: 2
         x: 0
         y: 0
         width: 0
         height: 0
-      m_UserData: 57960
+      m_UserData: 51324
       m_IsWaitingForDelay: 0
       m_IsRenaming: 0
       m_OriginalEventType: 0
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 2}
+      m_ClientGUIView: {fileID: 3}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -2691,7 +2717,7 @@ MonoBehaviour:
     m_GridSize: 16
   m_SkipHiddenPackages: 0
   m_DirectoriesAreaWidth: 310
---- !u!114 &22
+--- !u!114 &23
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2711,9 +2737,9 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: -32000
-    y: -31970
-    width: 679
+    x: 0
+    y: 73
+    width: 778
     height: 1278
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -2767,29 +2793,29 @@ MonoBehaviour:
       serializedVersion: 2
       x: 0
       y: 21
-      width: 679
+      width: 778
       height: 1257
     m_Scale: {x: 0.7740148, y: 0.7740148}
-    m_Translation: {x: 339.5, y: 628.5}
+    m_Translation: {x: 389, y: 628.5}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -438.62213
+      x: -502.5744
       y: -812
-      width: 877.24426
+      width: 1005.1488
       height: 1624
     m_MinimalGUI: 1
   m_defaultScale: 0.7740148
-  m_LastWindowPixelSize: {x: 679, y: 1278}
+  m_LastWindowPixelSize: {x: 778, y: 1278}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
   m_LowResolutionForAspectRatios: 00000000000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
---- !u!114 &23
+--- !u!114 &24
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -2809,10 +2835,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: -31320
-    y: -31970
-    width: 972
-    height: 475
+    x: 779
+    y: 73
+    width: 873
+    height: 689
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -2827,7 +2853,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: -164, y: -26.666687}
+      snapOffset: {x: -174, y: -26.666687}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 3
       id: Tool Settings
@@ -2905,9 +2931,9 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: 67.5, y: 86}
-      snapOffsetDelta: {x: 0, y: 0}
-      snapCorner: 0
+      snapOffset: {x: 67.5, y: -121}
+      snapOffsetDelta: {x: 0, y: -2}
+      snapCorner: 2
       id: Orientation
       index: 0
       layout: 4
@@ -3048,7 +3074,7 @@ MonoBehaviour:
       floating: 1
       collapsed: 0
       displayed: 0
-      snapOffset: {x: -289.33337, y: -225.33334}
+      snapOffset: {x: -289.33337, y: -121}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 3
       id: Scene View/Particles
@@ -3184,9 +3210,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: -1.4418998, y: 8.068302, z: 4.0124907}
+    m_Target: {x: -0.43593112, y: -1.2712173, z: 0.9120189}
     speed: 2
-    m_Value: {x: -1.4418998, y: 8.068302, z: 4.0124907}
+    m_Value: {x: -0.43593112, y: -1.2712173, z: 0.9120189}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -3232,13 +3258,13 @@ MonoBehaviour:
     m_GridAxis: 1
     m_gridOpacity: 0.5
   m_Rotation:
-    m_Target: {x: 0.33301866, y: -0.56865865, z: 0.2696374, w: 0.70219404}
+    m_Target: {x: 0.23096015, y: 0.09932555, z: -0.02380938, w: 0.96763974}
     speed: 2
-    m_Value: {x: 0.33300954, y: -0.56864303, z: 0.26963, w: 0.7021748}
+    m_Value: {x: 0.23091245, y: 0.100771785, z: -0.024154566, w: 0.96744055}
   m_Size:
-    m_Target: 3.8479714
+    m_Target: 3.6526446
     speed: 2
-    m_Value: 3.8479714
+    m_Value: 3.6612985
   m_Ortho:
     m_Target: 0
     speed: 2

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff