From f54c64f3ad7938dfee4a8d875587dfe6340597be Mon Sep 17 00:00:00 2001 From: wangjianchao <1365003673@qq.com> Date: Thu, 30 Apr 2026 15:50:03 +0800 Subject: [PATCH] 1 --- Assets/Art/Timeline/0-180.playable | 1122 +++++++++++++++++ .../Timeline/0-180.playable.meta} | 6 +- Assets/Art/Timeline/180-0.playable | 1122 +++++++++++++++++ Assets/Art/Timeline/180-0.playable.meta | 8 + .../ExcelData/Excel/BaseData.xlsx | Bin 21691 -> 21963 bytes .../ExcelData/Excel/StateData.xlsx | Bin 12794 -> 13038 bytes Assets/Third/AI/Scripts/Chat/ChatUI.cs | 21 +- .../Scripts/Sensor/Base/Sensor.cs | 15 +- .../SensorModule/Scripts/Sensor/TZQ_Sensor.cs | 7 +- .../SensorModule/Scripts/Sensor/ZXKWakeup.cs | 12 +- .../SensorModule/Scripts/SensorManager.cs | 332 ++--- Assets/_Scenes/Init.unity | 2 +- Assets/_Scenes/XinFeiTingZhen.unity | 282 ++++- .../XinFeiTingZhen/FSMManager/FSMManager.cs | 5 +- .../FSMManager/State/DiErXinYinZengQiang.cs | 2 +- .../FSMManager/State/HouZhengZhongXian.cs | 4 +- .../FSMManager/State/JianJiaGu.cs | 5 +- .../FSMManager/State/JianJiaQuJian.cs | 4 +- .../FSMManager/State/JianJiaShangQu.cs | 4 +- .../FSMManager/State/JianJiaXiaJiao.cs | 4 +- .../FSMManager/State/JianJiaXiaQu.cs | 4 +- .../FSMManager/State/JianJiaXian.cs | 2 +- .../FSMManager/State/LeiGu11_12.cs | 2 +- .../FSMManager/State/LeiJianXi.cs | 2 +- .../FSMManager/State/LianXuXingZaYin.cs | 2 +- .../FSMManager/State/QiGuanHuXiYin.cs | 2 +- .../FSMManager/State/QianZhengZhongXian.cs | 2 +- .../FSMManager/State/ShuZhangZaoQiBenMaLv.cs | 2 +- .../FSMManager/State/SuoGuZhongXian.cs | 2 +- .../FSMManager/State/XiongGuXian.cs | 3 +- .../Application/XinFeiTingZhen/GameManager.cs | 2 - .../物体旋转0-180度/MultiObjectController.cs | 88 -- .../MultiObjectController.cs.meta | 11 - .../Other/物体旋转0-180度/YAxisRotator.cs | 133 -- .../物体旋转0-180度/YAxisRotator.cs.meta | 11 - .../XinFeiTingZhen/UI/CountdownPanel.cs | 2 +- .../XinFeiTingZhen/UI/TreeViewPanel.cs | 28 +- 37 files changed, 2753 insertions(+), 502 deletions(-) create mode 100644 Assets/Art/Timeline/0-180.playable rename Assets/{_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度.meta => Art/Timeline/0-180.playable.meta} (52%) create mode 100644 Assets/Art/Timeline/180-0.playable create mode 100644 Assets/Art/Timeline/180-0.playable.meta delete mode 100644 Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs delete mode 100644 Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs.meta delete mode 100644 Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs delete mode 100644 Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs.meta diff --git a/Assets/Art/Timeline/0-180.playable b/Assets/Art/Timeline/0-180.playable new file mode 100644 index 0000000..874ddc2 --- /dev/null +++ b/Assets/Art/Timeline/0-180.playable @@ -0,0 +1,1122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8421437356586026945 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: 5947863982767822378} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!114 &-7590656864639944084 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track (3) + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: -10, y: -0.8468, z: -0.0046} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: 1884113296467586574} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!114 &-6786903364522282068 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track (1) + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: -10, y: 0, z: 0} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: -5418850314548018007} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!74 &-5418850314548018007 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded (1) + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] +--- !u!74 &-4989139322308630654 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded (2) + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3} + m_Name: 0-180 + m_EditorClassIdentifier: + m_Version: 0 + m_Tracks: + - {fileID: -8421437356586026945} + - {fileID: -6786903364522282068} + - {fileID: 5642281781616806033} + - {fileID: -7590656864639944084} + m_FixedDuration: 0 + m_EditorSettings: + m_Framerate: 60 + m_ScenePreview: 1 + m_DurationMode: 0 + m_MarkerTrack: {fileID: 0} +--- !u!74 &1884113296467586574 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded (3) + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] +--- !u!114 &5642281781616806033 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track (2) + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: 0, y: -0.8468, z: -0.0046} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: -4989139322308630654} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!74 &5947863982767822378 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度.meta b/Assets/Art/Timeline/0-180.playable.meta similarity index 52% rename from Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度.meta rename to Assets/Art/Timeline/0-180.playable.meta index 3a40173..9099c39 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度.meta +++ b/Assets/Art/Timeline/0-180.playable.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 03811c703638b5144b2933c5b9877777 -folderAsset: yes -DefaultImporter: +guid: c48874f905c2eef4fa0c3c2f643f7d22 +NativeFormatImporter: externalObjects: {} + mainObjectFileID: 11400000 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Art/Timeline/180-0.playable b/Assets/Art/Timeline/180-0.playable new file mode 100644 index 0000000..d034056 --- /dev/null +++ b/Assets/Art/Timeline/180-0.playable @@ -0,0 +1,1122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3363750484671550300 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: 6009440714449136373} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!74 &-1492182396507566462 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded (3) + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3} + m_Name: 180-0 + m_EditorClassIdentifier: + m_Version: 0 + m_Tracks: + - {fileID: -3363750484671550300} + - {fileID: 1987304972953789498} + - {fileID: 2914873767249624483} + - {fileID: 1828734976308347945} + m_FixedDuration: 0 + m_EditorSettings: + m_Framerate: 60 + m_ScenePreview: 1 + m_DurationMode: 0 + m_MarkerTrack: {fileID: 0} +--- !u!114 &1828734976308347945 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track (3) + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: -10, y: -0.8468, z: -0.0046} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: -1492182396507566462} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!114 &1987304972953789498 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track (1) + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: -10, y: 0, z: 0} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: 6555897429747282408} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!74 &2888068834091462213 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded (2) + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] +--- !u!114 &2914873767249624483 +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: d21dcc2386d650c4597f3633c75a1f98, type: 3} + m_Name: Animation Track (2) + m_EditorClassIdentifier: + m_Version: 3 + m_AnimClip: {fileID: 0} + m_Locked: 0 + m_Muted: 0 + m_CustomPlayableFullTypename: + m_Curves: {fileID: 0} + m_Parent: {fileID: 11400000} + m_Children: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: 0, y: -0.8468, z: -0.0046} + m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0} + m_InfiniteClipTimeOffset: 0 + m_InfiniteClipRemoveOffset: 0 + m_InfiniteClipApplyFootIK: 1 + mInfiniteClipLoop: 0 + m_MatchTargetFields: 63 + m_Position: {x: 0, y: 0, z: 0} + m_EulerAngles: {x: 0, y: 0, z: 0} + m_AvatarMask: {fileID: 0} + m_ApplyAvatarMask: 1 + m_TrackOffset: 0 + m_InfiniteClip: {fileID: 2888068834091462213} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!74 &6009440714449136373 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] +--- !u!74 &6555897429747282408 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recorded (1) + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 180, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1.5 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 180 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 4 + script: {fileID: 0} + flags: 16 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 4 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 4 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 4 + script: {fileID: 0} + flags: 0 + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Art/Timeline/180-0.playable.meta b/Assets/Art/Timeline/180-0.playable.meta new file mode 100644 index 0000000..b4a3af8 --- /dev/null +++ b/Assets/Art/Timeline/180-0.playable.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35f6739f33351504f8f108636f5bf69f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/XinFeiTingZhen/ExcelData/Excel/BaseData.xlsx b/Assets/Resources/XinFeiTingZhen/ExcelData/Excel/BaseData.xlsx index 76a6798569d700d056970a14c6cc8cbdce207a4a..500d625badaa68a6406b76eccc8c111429380ba6 100644 GIT binary patch delta 11138 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 Oz#=tRP^zK-l>Y-0_i1hb delta 10884 zcmY*F!244cv;f`K(ccz65u1ETYTicIMu{Wo^hS+CImxuRbImk&;ef@=SpVn98z1K1MB+ovS zB=4S`4wKS!(Y>7>G_2M{GU{Z$t-WGrvRZA_&Vca*Jdt#{P-Wfe$>p{h^GMrFydA{U zDpvRHqZz7eZ8KG`SiRvpLq1=%y5(eRTy%~BRI|Wyuc%$SUr;lW2WBUxT>bvkrf4IZ zz|XJ<320z^r$|If`+j}5?um2doM!0unIMJsZIBx;KGa819C1YQ`qrDJ3sFn;1u`K5 z0s<;RsK&Omv8PrA6!Qf)AVOrZY@`&0Lzd|;P>>jnY$QAC$@6sPm2tVFx3enXeY<|< zmojGFy0H4Ahu^3W;T5Wn4w|We12k|*Z%gxwol{9^?Yv5n1s7JTT?+A!^&EeZB}KAH z+C=4^g_Tb)bMcIqlbBrJ?eR8Hwa&C2RDWr$B&Tg5vSLmOM$Sbe1oCTIFYh%egfDEx z?v1Sr2YM#T4emFNY=688IGfLOE+uSt9}zANyJLt=i^Vg$b0aaowU5Aki?81w`GDo~ zn45~AnUqQXm|j8YXlLjA>~s>RP;R(O8=<7+D_;anRc!B$8W1tFnAl;CBDm4Z>aH84 z4(_d+8t<#fs3QwD6^KzcuGl;8i=|NsP(x~(`>Z8<*tH~YN3P#!>7;s$ee}s`Pq{Fh z*VE}Z@QfM(2SYSd6NVi}1`S7+!EP3kS*|BTKzJFCfIxx(&CnwQGEGfAR+|$(Zk9gc zaCVrlGBCc)ituo>4=<2^KR-9|N!*`;(Jk89*V%^G19%h+b3yos5H|uY&BJtcZJmA< zje|cEaC4A7sc8qCY;I8Fa0%6IKe&4}0=~ilegU`ceD`P14o@}dnH|(;=924Dlx8rY zx-QsR9q{Sl8n_3}AJ1X;_lu8DK8l!JXF_#VLp#Ts#KdPf=GT+gX9uB+j~Md-lI;?k z)JIaAohI#Fou_9~SkYP8oFk*7djpq`JELQ~4_993LtB>zL!pm%=jW%s&+hdM@9&H6 z>2IH({$BhwU3z-(#NRA#x<8vUxL|g5b9SUK=ZSsr{}cfDh_zEoQcqH2PZBRQG^Z>Q zFP3Ic;^1l18BSim?*jZEU*UD>9DMQ*@DqO$@HC)Up_YK-+MMj_>dcmEuO^oH98nhe zcmZ3zzc_F2l-ih-{6s={vv<0^6RH_Ys6hX?y!v!GesZu~+%_Me2zs##P+f0seg(2A z&w%?6&pT`yneD`zY(Up{6FGBlq4YBvf2)Xtv#=(@_5m-}*1$XTO8W4>F{ z-95O3N9^5h($evLeRIVse~F1V;Mh-JN*Q*j8>W8{>3cr(!TDQQ5OvrgG+f0!CZBi1 z6ZoNi1kEr@IVhvM*$Er$^B<7E`XN965a8x}`ut5v9=bh6dY3p+&bvi<9X7ZmEuX!S zKd*Q6bVCwN0OEJUQQN0h(=*B9lF(J|kbH+ry43OTfrZDSZk(J z_lTOBOUmRyhOhety@O0DGQYZubI*KSe33;o3i)gMxcq@YY>Y<3>b^iKjNgHQ80aC9 zsKGa{=q#uCtxe_8!<3>}1hyCG?CV8iROlCYEGzLcNNT3Sm|#{Vc+OGHGhv*Hc(J=rj1HE$$aeGoo;ri1J>h$-P1jTgKJ$%A;8%&X3JUKsC zAl5Q#@{Cw1Q=tclNydvKR%}`=R%*@SDL*HZdFoAF8`%!;V|dCSUqWf8#DF&;^UoA| z9`lG@#agBD+4QBLNRPgxsqsdub@6L%S;tC>`DmW4ZS5WwGqI>y4z_nr%A~etDD)kB z`ngh|{&KkIaA}~CHEJ>>_e?C5XGYq>??A~&$UveZW7%Q9&KZ)5U%IRxObNz4O=s_8 zQCJ=%DI~MrU4eXa&{pmP7%5rz|zdEnlxt%u-cH+AY3`*96$U%lPuN162R=1o3K z5p%VV2=bxr>y3`bH-gGuPRyH-DzfTC^W-{sq`qIk-T_Cdka42vW!z_B?{wLy9Zpgx z8V!-$x&F$RS|xmW*XfZ8u5`1p(NvnII4bSHNji(viQX2>1B^b!)SoH|p}iYtgt*ex zkjPO>3Uj}$pj1p1g2Q7}wd>eR7)kOp*_K#qP3RWYaKnb8`&;i$B>9Y(6pZ5m40A2W zTegsbLVNx>OU|{8G02@E#%u$|Difze0SjsqA<9K^9?j3r;ZQql-K~kQIDasy(lI+=nj)N8PbRf9rEVI|$b~YVBu7AYvzsrfDcLl8hC-Y1crT zs(Lav4xVu<@hF6M)2xX5Ptp>2ZR_4m1Hp6qu)WTWj9~}+STm{eT+vey_sFlnvLONM z*~B-J_}oQ{V_?p}ihM`rT0u)q1<4UUFSa>X&>rbmSzrCBj*3)W8j?IQ9Nx5-4IOi~ z0&2n;^HWs)pA6+z)&Ag$mzS)S^V#aa{vaGC%P_>gs>l|nj;?Ep0RF^f z>X0e=4$}+}?m^HA_i|q_3hWw{(PAcu9cdmq=*#$b-$PJtP3()q4+S)O=6BF*-xXRU z24gd@HbMT-@Q~LOZ&TUOih)A*L`P&_2CFUN{&XH$6TqCxe8mXzoJcj|c4c;!Gw?u9 zFD|w!CeS@=^hCitPInyDE<`5O0NfW-9jSH`BO=K-(Z#&5BpYU4UmcO@awr6)CHG3_ z{oP2#quWSUlCTNOps3YRqZk}L=Qfj$b*RjY>(xnAL02P#{F&qvbkp8xzo2Xz{1$Hu zIg392x^Qi99D3)uOi{3G&e-m>@3B{BMvdxuytJ63a~2;5uVBG}E;r?KokvSe5bj zIvJpZM=a*R@;Kx>G1(PcI))o_oa^=?FH%e-+WY{kS8}xQdB$|0&5yFGI_eu2LZQ+V z-9isG2{c|M{N7D@Igy_Lh}Md|r6l-m`=OvmD)q!pj@Q&ya2s-wAw>Qr2|PjJrS5TfWblDKBb8 zkku#&AR5$16+W=hX14MZ@6PIL8NDZ|fKL$H(Zi2jhQ;gx1}TY~>2IEsC{Y-~X2)9_ zzdSW+ohz&pq1cSIfOD!OZWCUlXr;DB?JC4N;;>ge0i$ZxY4$q{^M{B`%wiW%Hn@Dp(3>I)S`4f0cgG|^#)O=c*Gv4cNk2B z+Aj&unK-_LW)HBX>blIbj0wt=i1(`UlE)_G@aq)ZMK)O)$=pWnP!b<`Rr@$YX@(oj zhMfgvPBZ61#FFTmmGV%w2%K$=#(r66{6KouS6108Hdj%Btuaq)Qid{nee?{IE=jq+>4YyLeNa}3r9EbhZ`5hV0ED*r-zG@sjb!I`3z?qi*IHF9i z+tPWtQHNt88IBdP?;|}?U;AE&5e`X61wXiwGe<5nho2a;uOg?uvATH07p!AU+zQG6 zel6uaqwkwBpR7f{g54IL*w~n6kC9otpGrcixk8i66$H_>+UwspPHljT6Fq}QFBPHv)G3Yu(D9&&icq`jOqe;_ zf=^}v2;AIZ!wl{-WbmS+0No&T5yQqre}s6t-~Kf^`(ke$9bt`=CD?L)X#CFy!+t6* z>i{US-^7SvQ{*05??I;~hO-Jag5@K+Vv_-KVYB7>5|;vs$R>uKq7ZiXyVmJlK)f_# z`RDNX%1>oPYC`AJM3*t1T;mA#h3J-g7w&ZdP(GLt;_E2V$jxKt9T5w@}$gQRdonVI7)RS`e>G`ii||G* zE8c$>0YYA?OG(VyS2OGsFBy=!t!o;=PPCjSZJkP;A>wiCe_BBpT-=J<07{%e=NdQ_ zXY(!fpp2hA%jDN`8$qkDo)odyzw5CQ62e4DptBLiS9+bWLyyGRLidHF5T$q2KH3!p zNg2?li6iu#(~qc^uD)IK1*_1M{7wEHppE;bT)O^dN;H{(#rrJ;lJO%5O>$93f)=!z z6&Il%Y{IzFwGuY)Gq{m3n9t~K@AfRZ%52}a`G0Jy)&@!>BD7t}e8Y(HVO^jBcS-CW zxnD*mC2_&8u*McU=$cx6Fk?>guc=^s0N_4J*8aul`L=hhk*LxYIq_z~Wk;JAO+crB zF8VCq2!1wPR46dBz$smA4PC`JXuAHACEu)GCdr}gYGAYN&)?z#PUns>B7rjc`FjpF zA0sZOiWPk(Yin%LKh4YhwDcZFOVZc^PVv=QrGbPFP?s%+O~w)n;#&1U3uKrjz*UCo z%|Ri%Z2S>JHkwWLuNhvLrn6CoXW?Tdj@CCrI2)mQuqvFV&QvQDqPl!qEik^JH!@8? zFN$%-M}AR9?EhAw+3{+tH_;%dm%lVjVs!O-%IC4#Y-xp6A@!@|H@R>M2xkRq)Rzzr z2ZcNe<(6Pgyfy~CMEVo|L%(W0fW+(=h96Q+cQW}dVv1j^6m|Zd;!8sv6}IcFNH4|i zVk#Yx&F>Gsgd2fQOL;mBtrw}D?5!6pEaM=?aAcY*HWhrB1bcYd_3K-PT+$(>gto25 zpLQ61i@Fynop6z;g1?`$u8wDK8`o&PTR$V9~viS+2>)TS!yfr zw8pW1=YCMDA{*RF`5gjm#TJ2zMuIly{bHPMQUYGk5r5J>>%%!qcdX1r?Q)F@HE*^* zzbScjmMIvhqiwRiM$eM|5{WZaPE>}qQVCCy6?dZtPRSKvReyi)f^xZ|8T%7{bjtI zjo!lC{dr$y&i+ctIp2`{&27tP71VaD6=9(F=CiT$3`aZOGMa-dE}FDGt`};D)>|2i zmFCNaEc$Gm-HGos;4_pjCADTNE37hbp2Xds3G7~jA4I)(C9i;>3iVbHM(<0I!8cl> zLTLl;#lM!^^Z+WkD2E)X02}JOzl??ToT{-HBOEnquZa=vlAeH*_7L+(T%vIeO%$Bv zXinP65V@UU_@QHo10jcf(Rl$OQ-}^=ToDOu99~HK!u~UtqPsd;F9ks$cM3l8`#C`; zZ4|t-tVZRg^FQyHS;kSeU7#-^MTfy`P};S+S>#;6YW+KnyB7uW7jQ*N01G%HoAYe%!8nhbaykW-P-N-D;RoAcTV^9hq^x%^WWoy z!XWsH8+gu}mh=$~M3fh?RbVyE4PV`Va-{sq7Q zZs|3~OSQzmGYcC3gPZu{O+n9fIF>P3rr)@|!h5v%MO|5l55cDl>rhG^u9LLGy4=}3 z&7q#@!_n|rHN_i>T(durgew?cBs2YfYM7))$>Gj>f`23DiRttheUlvtU+=q{Nv*hdKTlkwoa^K5C^>J%vI#jP3j}t`QT(^v_=b8%5 zyEtTCh6wx$W~2OQe*DVX%g$4Qmd8J1tRrL%3U(Q+(!apdf?uK#!Zv?|JCkupdQ?KL z8#LTa`|xWZiJe=Yo07@5bkN_hhvy_-Ppiuw|Z zuk63*W*@&-@tMU><^N!Mvj{2uYHI0hr1?IGwD8)rrku6XP#+d5X%bg<7*cPDDQ#2k zFk(^8mJd!IEUh*E(t}=QeT`oc<>bUdVSW3W(Oc0b->*rk`+dVAT%b9`SYr#k8LWjL z|I4Y7cO=6vHMapWSY$PJVjPDJcXG5gTr7^~$!Z069WSfa^VZhn&RWyY{g1$U+u2#$ zpj*oWmse<&=s<{PAJKShoUj60d+i1)8v>)XD#>fBWfBmZ&S0$@@r$o|p7W-8N%7HG z)1k+2C07p_#MsEQuR<5YZmc^xw>{2pKE-J}B$NZ35Iy7KX14aMPCQNy@^AQLGAMXT z!^!TFa5x0D%BcavWruX}SKRdEfOIkj)v*jD z;l{McZjBteM_!6X(Nl!N^$2Jq>Q%?m=;7eHl)BK$T+9R%e3l}V8vBdgSgerDL+yL=PnGX*AuSL9*{C)*5=dqL2jxk{ z1ujR*qBl=0G;SX--0qFjm~?KD z|4ese{-Z8D7z`Izy=W;TP4>P7V3Icvody|#sIMY4v{ahyeN{>O9dCdRt-|2T21&Hq z)gPb%_W)l$R4$6EQn=FFf-{(Kq>c&NR;nr*F~|FD0gk^eOyBdW7=6yxJ(S*&)JGE6 z!RI17;diijKE5}s{wi-GW;}wu^qQ>4<@>%7XwgTXFa|BUoN*v&D(o>Ahxn1#XskbP z0hOwzf%T02fqL;nAfU4hs<5@>aV_gD-hxXj&mDwsMdU4Vty)m(2g`*K!QD5hK7%EN zqMmfQEXKv*YbChZFLg{npF*wazyHjT(vcr+D;}y!st-grtvDBB$js@@)f$B6N2=K4 z6%}N<7IqP{HjsW;mOXTaWk|8hMt{#}gAR?$8wb?V&F5mE0nW>?phluXsxJNJw@YCI zTE;FUzqIwv8*`IFa?3y(1OIM&1-JTIe*8TPUI*GGcGEf;(}H+WhO3d+Rril>AA$Dg zn=RjGm<<5`J>e(iFC5^Xt8F%A1v2o1H9iOM-M8GlGe}jPA+Fqh+zDO0=emDx2JZjd z{P_f{e^z^^&NVr{6Vx=sWlPue>?Yn$Hd42VJ+!msdvmb(_*g9Q_!;-3<2x_dt*h_| z5Qo@zd;D~B`uF7T(}!o+@lF>^h>r{*v}x#Z^y2Bp$EPK&gK8t@{dMe{op?samqa^1 zulrWdf{3sFTeE-v-Mf~XW znBKY8h3e4i#@fP&emtaU!OYj);>ZY)4O8r^H7VgAp&utnp};nH)4`yonEp5asK;oM zg3`XR#t{?iKI{*ha{k7=(Dh(Z;VHJvyj&S@>K2lMxImw8mqy@WQT3v%R)mB^LLvv! zpxt=2`tm}ft-ggPD`qZUBHnM`)5%*U0#I_7^sU2rRmS*(r_~WA6Ky;rRKUL3?q2Aw z>i4z%sfX;-^1Q)ZcQXr~FR|5g-Jug-c@TYq*;hEK3_%oBCxZhNZwtOi64oaRRi-9W7MnYmeOPVW4W$N zYd0XqtZ0FO+{jX9gBDdiQS&}+;ndQ*5!DXczCpgWRQZdo#XHmmm-BSCTV)1b$hq)k zAh$`a?>GJtF?BolnK-_6vKs4EI<2?5jt+J4MoV$;I5on$jr@es(7{zgP3)@be}L+r zEkvbPo4lrEcwHyuZCdv#soQuVJqcB|h|g#k_*>C{g}|_xv@f^ItV&>52Rp{erMuy4g|QWAL+ST%#+z5wapZkA*xGp~ z--tb6S%s8(HYsEu!Rn)&+S*LSCN0k-}{5T@qA`Oi< zD(6aKXHyh@6%tGm+O!A-1>dTF7$405aYORjCn2_l$Y1-RKkujxDoDju79%y`~HAPE$Cj0{K*nA1u zs;Ti0CcSHFEu<|FmwgIb2B{Qo`rDSEw2dBBsSHR4)8aw zxmCWQ6O`isvV>_>7v6h4TjR+f0oK=)WcA!q!0Z z+1dH1jQ0sgXZUaK446&5kW+{vn^|D8?&~P|qOp?{+dEV|g<4#?z#v+A!qMvZ(?W&@ zJZ*+LJUoVaJZ+P?!A_B2Urg#)7X~~z8Oo?av=vfSx@!JprjiPtTe{@@(rP{Rrp6q= zgo!ISt#{AAeS8f#(spQ;z&5hgq{e<9w*l+;vMB`OrScG#zGUN8mbWDxR>Jf}6IxkM z(Wvs=aB{JivwAN+GsI1sYuq?Ze+iQCDKoCuqQ)j#V)H~|jHxQ1q`-^?$7vRdok^p> zTq0o~VNb2auf(nzZC3myi=f&d?z7&~8Ax)H7HC25q6c6L(LM5+R}t3BB`{{sWmC~l zFyFTRu>G8QWN**}7F`%}R~Q#)ei6VhVCHw<%FQbN^X?^SA!fEB{nC}rl&DH*VvOmVKf2_-5f{4WUYF!FUebk58I``;H&?T}ZBXQlL2T~Qo0?qPO zpdlHB4G7C=uh8Zva_UAHmYy`%C+G}@_RE#dEP^^TqkUmBOH{r^Qwpt0A(W}>LIa(< znnKF8IUGpuk2G40D3x$veMDe3uT?;bk?UB$(yE)hGvpv#KkP!xL}-IKpY*}lNDRN|NJN2wvH-ukVF_>D-vEN#9ovYW}suBK`BHM{J(@-4zy zys<5dYQETk4jUxLf!L(urhuT0mkfopmA8ON{jAj~9uJ{`<5)o#X*K8>%aox{pK1_BUe z_kru+xYdlP5Xsed@wOqJ_n-Dcv-sUTqO@m*P&jl%f6(=UOeP?`FdJ=Q%;L$Mw(7}K3!bgG6Uxa zdOFIy&88av{p{j(_WNOnE5L|~nA@Ha_dr@wTJ-=pPd&DQXiPr)ig#U_Yf?}~$T7&O zjZ;ZnPac$oybkI=xg>ZF=(HS`<^Q&Mds|kl8GuiPQHzUF$CZ`&xWj1?0NdTVWv0&T zcqaYILHS))5DjWr8K7N@{SF8oq9AjB`Y zW{by|z*6vE1@mbK+1>w4@nxv-?B@~YZy_g0{wST4@;?`}s<;KkZMQT>QJiEudY8_J zgF{(SmxAE^y>R&%g|GkSivbOj2GB)oo)Fkwgvvwy3p5xqR8H6L^xc4joT?=Pw!3n+w^p0caAkG(-tX{* z!b5|^&$23<`lG4NBVdWOW^uDJz4hQ0@jAmvj-OThw2Bh=6>uoRM^B$Q513^5vNrbkQuzk~Mvr}6)E-2zS5 MV}F^Y_0RTy04=%d$^ZZW diff --git a/Assets/Resources/XinFeiTingZhen/ExcelData/Excel/StateData.xlsx b/Assets/Resources/XinFeiTingZhen/ExcelData/Excel/StateData.xlsx index 17571365a1fe8f8d3d5f4a81c895ea5f9bae1a4e..30516d48c9fad02e1df2005cad361940ce614dfa 100644 GIT binary patch delta 8400 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 delta 8217 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 c74! + ChatAI.Instance.SendData(str, str => { Thinking = false; wakeUpCurrentTime = 0; @@ -174,11 +166,8 @@ public class ChatUI : MonoBehaviour } else { - //coroutine = StartCoroutine(TypeText(0.18f * str.Length, str, str => GenChatTxt(str), () => Typing = false)); GenChatTxt(str); - //Typing = false; OnAppendMsg(0, MsgTypeEnum.Str, str); - //Typing = true; ChatAI.Instance.PlayVoice(str, clip => { audioSource.clip = clip; audioSource.Play(); @@ -196,7 +185,7 @@ public class ChatUI : MonoBehaviour if (!string.IsNullOrEmpty(str)) { Thinking = true; - ChatAI.Instance.SendData(Regex.Replace(str, @"[\p{P}\p{S}]", ""), str => + ChatAI.Instance.SendData(str, str => { Thinking = false; wakeUpCurrentTime = 0; @@ -208,11 +197,8 @@ public class ChatUI : MonoBehaviour } else { - //coroutine = StartCoroutine(TypeText(0.18f * str.Length, str, str => GenChatTxt(str), () => Typing = false)); GenChatTxtNext(str); - //Typing = false; OnAppendMsg(0, MsgTypeEnum.Str, str); - //Typing = true; ChatAI.Instance.PlayVoice(str, clip => { audioSource.clip = clip; audioSource.Play(); @@ -242,7 +228,6 @@ public class ChatUI : MonoBehaviour private void ResponseCallBack(string _response) { _response = _response.Trim(); - //VoiceBtnEnable(); m_SendBtn.interactable = true; if (!string.IsNullOrEmpty(_response)) { diff --git a/Assets/Third/SensorModule/Scripts/Sensor/Base/Sensor.cs b/Assets/Third/SensorModule/Scripts/Sensor/Base/Sensor.cs index 1c7fc39..efd8663 100644 --- a/Assets/Third/SensorModule/Scripts/Sensor/Base/Sensor.cs +++ b/Assets/Third/SensorModule/Scripts/Sensor/Base/Sensor.cs @@ -1,22 +1,23 @@ -using System.Collections; -using System.Collections.Generic; +// Sensor.cs using UnityEngine; -/// -/// ´«¸ÐÆ÷»ùÀà -/// + public abstract class Sensor : MonoBehaviour { SensorManager sensorManager; + public void Init(SensorManager sm) { sensorManager = sm; } + public void SendData(string data) { sensorManager.SendFunction(data); } - public virtual void ReceiveData(string datas) + + // Ð޸ģºÔö¼Ó portName ²ÎÊý£¬ÓÃÓÚÇø·ÖÊý¾ÝÀ´Ô´ + public virtual void ReceiveData(string datas, string portName) { if (!gameObject.activeSelf) return; } -} +} \ No newline at end of file diff --git a/Assets/Third/SensorModule/Scripts/Sensor/TZQ_Sensor.cs b/Assets/Third/SensorModule/Scripts/Sensor/TZQ_Sensor.cs index 01798ac..63fe577 100644 --- a/Assets/Third/SensorModule/Scripts/Sensor/TZQ_Sensor.cs +++ b/Assets/Third/SensorModule/Scripts/Sensor/TZQ_Sensor.cs @@ -1,15 +1,14 @@ using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.UI; - public class TZQ_Sensor : Sensor { [SerializeField] Text txt; public int positionValue = 0; - public override void ReceiveData(string datas) + public override void ReceiveData(string datas,string portName) { - base.ReceiveData(datas); + base.ReceiveData(datas, portName); Regex regex = new Regex(@"Position:(\d+)"); Match match = regex.Match(datas); if (match.Success) @@ -20,4 +19,4 @@ public class TZQ_Sensor : Sensor } } } -} +} \ No newline at end of file diff --git a/Assets/Third/SensorModule/Scripts/Sensor/ZXKWakeup.cs b/Assets/Third/SensorModule/Scripts/Sensor/ZXKWakeup.cs index d1e71c4..2aba2bc 100644 --- a/Assets/Third/SensorModule/Scripts/Sensor/ZXKWakeup.cs +++ b/Assets/Third/SensorModule/Scripts/Sensor/ZXKWakeup.cs @@ -1,12 +1,4 @@ -using NAudio.Wave; using System; -using System.IO; -using System.IO.Ports; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading; /// /// ÓïÒô¹¤¾ß /// @@ -14,9 +6,9 @@ public class ZXKWakeup : Sensor { //»½ÐÑ´Ê£ºÐ¡ÖÇСÖÇ public Action callBack;//»½Ðѻص÷ - public override void ReceiveData(string datas) + public override void ReceiveData(string datas, string portName) { - base.ReceiveData(datas); + base.ReceiveData(datas, portName); if (datas.TrimEnd('\n', '\r') == "hello") { callBack?.Invoke(); diff --git a/Assets/Third/SensorModule/Scripts/SensorManager.cs b/Assets/Third/SensorModule/Scripts/SensorManager.cs index a3e3ad7..2f3fa20 100644 --- a/Assets/Third/SensorModule/Scripts/SensorManager.cs +++ b/Assets/Third/SensorModule/Scripts/SensorManager.cs @@ -1,25 +1,21 @@ +// SensorManager.cs using System; -using System.Collections.Concurrent; using System.Collections.Generic; -using System.Data.SqlTypes; using System.IO.Ports; using System.Text; using System.Threading; -//using UnityEditor.PackageManager.UI; using UnityEngine; using UnityThreadingUtils; -using ZXKFramework; -public class SensorManager : MonoBehaviour /*MonoSingleton*/ +public class SensorManager : MonoBehaviour { public enum DataType { ×Ö·û´®, ×Ö½ÚÁ÷, } - #region ´®¿Ú²ÎÊý,Ö÷ÒªÐ޸Ĵ®¿ÚÃûÓë²¨ÌØÂÊ - [Header("´®¿ÚÃû")] - public string portName = "COM10"; + + #region ´®¿Ú²ÎÊý [Header("²¨ÌØÂÊ")] public int baudRate = 115200; [Header("ÆæÅ¼Ð£Ñé")] @@ -28,31 +24,162 @@ public class SensorManager : MonoBehaviour /*MonoSingleton*/ private int dataBits = 8; [Header("ֹͣλ")] private StopBits stopBits = StopBits.One; - SerialPort sp = null; - Thread dataReceiveThread; [Header("½ÓÊÕÊý¾Ý¸ñʽ")] public DataType dataType; #endregion + + // 1. Ð޸ģºÊ¹ÓÃÁÐ±í´æ´¢¶à¸ö´®¿Ú¼°Ïà¹ØÏß³Ì + private List serialPorts = new List(); + private List receiveThreads = new List(); + private Dictionary allSensor = new Dictionary(); - StringBuilder sb = new StringBuilder(); public GameObject sensorView; + private void Start() { - sp = new SerialPort(portName, baudRate, parity, dataBits, stopBits); + // 1. ×Ô¶¯²éÕÒ²¢Á¬½ÓËùÓпÉÓÃ¶Ë¿Ú + List connectedPorts = AutoConnectAll(); + + if (connectedPorts.Count == 0) + { + Debug.LogError("ûÓÐÕÒµ½¿ÉÓõĴ®¿ÚÉ豸¡£"); + return; + } + + // 2. ³õʼ»¯´«¸ÐÆ÷ foreach (Sensor s in GetComponentsInChildren()) { allSensor.TryAdd(s.GetType().Name, s); + s.Init(this); // Á¢¼´³õʼ»¯ } - switch (dataType) + } + + /// + /// ×Ô¶¯²éÕÒ²¢Á¬½ÓËùÓпÉÓõĴ®¿Ú + /// + /// ³É¹¦Á¬½ÓµÄ¶Ë¿ÚÃû³ÆÁбí + private List AutoConnectAll() + { + List connectedPorts = new List(); + string[] portNames = SerialPort.GetPortNames(); + + if (portNames.Length == 0) { - case DataType.×Ö½ÚÁ÷: - dataReceiveThread = new Thread(new ThreadStart(DataReceiveBytesThread)); - break; - case DataType.×Ö·û´®: - dataReceiveThread = new Thread(new ThreadStart(DataReceiveStrThread)); - break; + Debug.LogWarning("δ¼ì²âµ½Èκδ®¿ÚÓ²¼þ¡£"); + return connectedPorts; + } + + foreach (string name in portNames) + { + try + { + SerialPort sp = new SerialPort(name, baudRate, parity, dataBits, stopBits); + sp.ReadTimeout = 1000; + sp.Open(); + + // Á¬½Ó³É¹¦£¬¼ÓÈëÁбí + serialPorts.Add(sp); + connectedPorts.Add(name); + Debug.Log($"³É¹¦Á¬½ÓÉ豸: {name}"); + + // 2. Ϊÿһ¸ö¶Ë¿ÚÆô¶¯¶ÀÁ¢µÄ½ÓÊÕÏß³Ì + Thread thread = new Thread(() => DataReceiveThread(sp)); + thread.IsBackground = true; + thread.Start(); + receiveThreads.Add(thread); + + } + catch (Exception e) + { + Debug.LogWarning($"¶Ë¿Ú {name} Á¬½Óʧ°Ü: {e.Message}"); + } + } + + return connectedPorts; + } + + /// + /// ͨÓõÄÊý¾Ý½ÓÊÕÏ̷߳½·¨£¨Ã¿¸ö´®¿ÚÒ»¸ö£© + /// + /// µ±Ç°´¦ÀíµÄ´®¿Ú¶ÔÏó + private void DataReceiveThread(SerialPort port) + { + while (true) + { + // ¼ì²é¶Ë¿ÚÊÇ·ñ»¹ÓÐЧ + if (port == null || !port.IsOpen) break; + + try + { + if (port.BytesToRead > 0) + { + string receivedData = ""; + + // ¸ù¾Ý¸ñʽ½âÎöÊý¾Ý + if (dataType == DataType.×Ö½ÚÁ÷) + { + byte[] buffer = new byte[port.BytesToRead]; + port.Read(buffer, 0, buffer.Length); + receivedData = Encoding.Default.GetString(buffer); + } + else // ×Ö·û´® + { + receivedData = port.ReadExisting(); + } + + // ʹÓõ÷¶ÈÆ÷½«ÈÎÎñÅ×»ØÖ÷Ïß³Ì + UnityMainThreadDispatcher.Instance().Enqueue(() => + { + // 3. ¹Ø¼ü£º½«Êý¾ÝºÍ¶Ë¿ÚÃûÒ»Æð·Ö·¢¸øËùÓд«¸ÐÆ÷ + // Äã¿ÉÒÔÔÚÕâÀïдÂß¼­£¬±ÈÈçÖ»´¦ÀíÌØ¶¨¶Ë¿ÚµÄÊý¾Ý£¬»òÕ߹㲥¸øËùÓÐ + foreach (var sensor in allSensor.Values) + { + sensor.ReceiveData(receivedData, port.PortName); + } + }); + } + } + catch (TimeoutException) + { + // ³¬Ê±Õý³££¬¼ÌÐøÑ­»· + continue; + } + catch (Exception ex) + { + Debug.Log($"¶ÁÈ¡ {port.PortName} ʱ³ö´í: {ex.Message}"); + break; // ¶ÁÈ¡³ö´í£¬Í˳öÏß³ÌÑ­»· + } + + Thread.Sleep(20); // ·ÀÖ¹CPUÕ¼Óùý¸ß + } + } + + /// + /// ·¢ËÍÊý¾Ý£¨¹ã²¥Ä£Ê½£ºÏòËùÓдò¿ªµÄ¶Ë¿Ú·¢ËÍ£© + /// + /// + public void SendFunction(string str) + { + if (string.IsNullOrEmpty(str)) return; + + byte[] dataSend = Encoding.ASCII.GetBytes(str); + + // ±éÀúËùÓд®¿Ú£¬Ïòÿһ¸ö·¢ËÍÊý¾Ý + foreach (var sp in serialPorts) + { + try + { + if (sp != null && sp.IsOpen) + { + sp.Write(dataSend, 0, dataSend.Length); + Debug.Log($"Ïò {sp.PortName} ·¢ËÍ: {str}"); + } + } + catch (Exception e) + { + Debug.LogError($"·¢ËÍʧ°Ü {sp?.PortName}: {e.Message}"); + } } - OpenPort(); } private void Update() { @@ -68,160 +195,35 @@ public class SensorManager : MonoBehaviour /*MonoSingleton*/ } } } - /// - /// ½ÓÊÕ×Ö½ÚÁ÷ - /// - private void DataReceiveBytesThread() - { - while (true) - { - if (sp != null && sp.IsOpen) - { - try - { - if (sp.BytesToRead > 0) - { - byte[] buffer = new byte[sp.BytesToRead]; - sp.Read(buffer, 0, sp.BytesToRead); - string receivedData = Encoding.Default.GetString(buffer); - //Debug.Log(receivedData); - UnityMainThreadDispatcher.Instance().Enqueue(() => - { - foreach (var s in allSensor) - { - s.Value.ReceiveData(receivedData); - } - }); - } - } - catch (Exception e) - { - Debug.Log("ÏûÏ¢½ÓÊÕʧ°Ü:" + e); - } - } - Thread.Sleep(20); - } - } - - /// - /// ½ÓÊÕ×Ö·û´® - /// - private void DataReceiveStrThread() - { - while (true) - { - if (sp != null && sp.IsOpen) - { - try - { - if (sp.BytesToRead > 0) - { - sb.Append(sp.ReadExisting()); - //this.ColorLog(GDLog.LogColorState.Blue, sp.ReadLine()); - UnityMainThreadDispatcher.Instance().Enqueue(() => - { - foreach (var s in allSensor) - { - s.Value.ReceiveData(sb.ToString()); - } - sb.Clear(); - }); - } - } - catch (Exception) - { - Debug.Log("ÏûÏ¢½ÓÊÕʧ°Ü"); - } - } - Thread.Sleep(20); - } - } - /// - /// ·¢ËÍÏûÏ¢ - /// - /// - public void SendFunction(string str) - { - try - { - byte[] dataSend = Encoding.ASCII.GetBytes(str); - if (sp != null && sp.IsOpen) - { - if (dataSend != null && dataSend.Length > 0) - { - sp.Write(dataSend, 0, dataSend.Length); - Debug.Log("·¢ËÍÏûÏ¢³É¹¦£º" + str); - } - } - } - catch (Exception) - { - Debug.Log("·¢ËÍÏûϢʧ°Ü£º" + str); - } - } - //»ñȡָ¶¨´«¸ÐÆ÷ + // »ñÈ¡´«¸ÐÆ÷Âß¼­±£³Ö²»±ä public T GetSensor() where T : Sensor { - try + string name = typeof(T).Name; + if (!allSensor.ContainsKey(name)) { - string name = typeof(T).Name; - if (!allSensor.ContainsKey(name)) + T comp = GetComponentInChildren(); + if (comp != null) { - allSensor.TryAdd(name, GetComponentInChildren()); - allSensor[name].Init(this); - } - //Debug.Log("´«¸ÐÆ÷»ñÈ¡³É¹¦"); - return allSensor[name] as T; - } - catch (Exception) - { - Debug.Log("´«¸ÐÆ÷»ñȡʧ°Ü"); - return null; - } - } - #region ´®¿Ú¿ªÆô¹Ø±ÕÏà¹Ø - //´ò¿ª´®¿Ú - public void OpenPort() - { - try - { - if (!sp.IsOpen) - { - sp.Open(); - dataReceiveThread.Start(); - Debug.Log("´®¿Ú´ò¿ª³É¹¦"); + allSensor[name] = comp; + comp.Init(this); } } - catch (Exception e) - { - Debug.Log("´®¿Ú´ò¿ªÊ§°Ü" + e.ToString()); - } + return allSensor[name] as T; } - //¹Ø±Õ´®¿Ú - public void ClosePort() - { - try - { - sp.Close(); - dataReceiveThread.Abort(); - Debug.Log("´®¿Ú¹Ø±Õ"); - } - catch (Exception) - { - Debug.Log("´®¿Ú¹Ø±Õʧ°Ü"); - } - } - #endregion - - #region Unity Í˳öÏà¹Ø + // Í˳öʱ¹Ø±ÕËùÓÐ¶Ë¿Ú private void OnApplicationQuit() { - ClosePort(); + foreach (var sp in serialPorts) + { + try + { + if (sp != null && sp.IsOpen) sp.Close(); + sp?.Dispose(); + } + catch (Exception e) { Debug.Log(e.Message); } + } + serialPorts.Clear(); + receiveThreads.Clear(); } - private void OnDisable() - { - ClosePort(); - } - #endregion } \ No newline at end of file diff --git a/Assets/_Scenes/Init.unity b/Assets/_Scenes/Init.unity index b19eb27..66d9d71 100644 --- a/Assets/_Scenes/Init.unity +++ b/Assets/_Scenes/Init.unity @@ -2662,7 +2662,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 12800000, guid: 60ee95c36778d1e45be2c34febf3bae9, type: 3} - m_FontSize: 30 + m_FontSize: 28 m_FontStyle: 1 m_BestFit: 0 m_MinSize: 2 diff --git a/Assets/_Scenes/XinFeiTingZhen.unity b/Assets/_Scenes/XinFeiTingZhen.unity index 7751381..cd1ce53 100644 --- a/Assets/_Scenes/XinFeiTingZhen.unity +++ b/Assets/_Scenes/XinFeiTingZhen.unity @@ -13456,6 +13456,37 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 85679981} m_CullTransparentMesh: 1 +--- !u!1 &88074756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 88074757} + m_Layer: 0 + m_Name: Init + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &88074757 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88074756} + 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: [] + m_Father: {fileID: 482236347} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &88731828 GameObject: m_ObjectHideFlags: 0 @@ -27887,7 +27918,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: rotationSpeed: 90 - angleThreshold: 0.5 + currentState: 0 --- !u!114 &164371420 MonoBehaviour: m_ObjectHideFlags: 0 @@ -50744,6 +50775,8 @@ Transform: - {fileID: 1290841875} - {fileID: 874457400} - {fileID: 91711526} + - {fileID: 482236347} + - {fileID: 1529152633} m_Father: {fileID: 1942301345} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &320283063 @@ -50945,6 +50978,37 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 321170204} m_CullTransparentMesh: 1 +--- !u!1 &322000172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 322000173} + m_Layer: 0 + m_Name: Init + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &322000173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 322000172} + 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: [] + m_Father: {fileID: 1529152633} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &322303626 GameObject: m_ObjectHideFlags: 0 @@ -77043,6 +77107,52 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 481938719} m_CullTransparentMesh: 1 +--- !u!1 &482236346 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 482236347} + - component: {fileID: 482236348} + m_Layer: 0 + m_Name: 0-180 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &482236347 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 482236346} + 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: 88074757} + - {fileID: 1763236867} + m_Father: {fileID: 320283062} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &482236348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 482236346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73e6573c7793f244a81c07ddef440979, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &482404400 GameObject: m_ObjectHideFlags: 0 @@ -101088,6 +101198,63 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 638086546} m_CullTransparentMesh: 1 +--- !u!1 &638142533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 638142534} + - component: {fileID: 638142535} + m_Layer: 0 + m_Name: Play + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &638142534 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638142533} + 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: [] + m_Father: {fileID: 1529152633} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!320 &638142535 +PlayableDirector: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638142533} + m_Enabled: 1 + serializedVersion: 3 + m_PlayableAsset: {fileID: 11400000, guid: 35f6739f33351504f8f108636f5bf69f, type: 2} + m_InitialState: 0 + m_WrapMode: 2 + m_DirectorUpdateMode: 1 + m_InitialTime: 0 + m_SceneBindings: + - key: {fileID: -3363750484671550300, guid: 35f6739f33351504f8f108636f5bf69f, type: 2} + value: {fileID: 1609040204495296083} + - key: {fileID: 1987304972953789498, guid: 35f6739f33351504f8f108636f5bf69f, type: 2} + value: {fileID: 1131973531} + - key: {fileID: 2914873767249624483, guid: 35f6739f33351504f8f108636f5bf69f, type: 2} + value: {fileID: 6845830716270844837} + - key: {fileID: 1828734976308347945, guid: 35f6739f33351504f8f108636f5bf69f, type: 2} + value: {fileID: 164371421} + m_ExposedReferences: + m_References: [] --- !u!1 &638762768 GameObject: m_ObjectHideFlags: 0 @@ -121547,7 +121714,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: AttentionList: [] - duration: 20 + duration: 90 countdownImage: {fileID: 438585181} timeText: {fileID: 1592349207} --- !u!1 &763628518 @@ -181273,7 +181440,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: rotationSpeed: 90 - angleThreshold: 0.5 + currentState: 0 --- !u!114 &1131973533 MonoBehaviour: m_ObjectHideFlags: 0 @@ -240897,6 +241064,52 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: serializedGuid: f81ae0c0f0c7a743a5c5f63b788208e3 +--- !u!1 &1529152632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1529152633} + - component: {fileID: 1529152634} + m_Layer: 0 + m_Name: 180-0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1529152633 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529152632} + 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: 322000173} + - {fileID: 638142534} + m_Father: {fileID: 320283062} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1529152634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529152632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73e6573c7793f244a81c07ddef440979, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1529991838 GameObject: m_ObjectHideFlags: 0 @@ -277979,6 +278192,63 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1762772529} m_CullTransparentMesh: 1 +--- !u!1 &1763236866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1763236867} + - component: {fileID: 1763236868} + m_Layer: 0 + m_Name: Play + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1763236867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763236866} + 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: [] + m_Father: {fileID: 482236347} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!320 &1763236868 +PlayableDirector: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763236866} + m_Enabled: 1 + serializedVersion: 3 + m_PlayableAsset: {fileID: 11400000, guid: c48874f905c2eef4fa0c3c2f643f7d22, type: 2} + m_InitialState: 0 + m_WrapMode: 2 + m_DirectorUpdateMode: 1 + m_InitialTime: 0 + m_SceneBindings: + - key: {fileID: -8421437356586026945, guid: c48874f905c2eef4fa0c3c2f643f7d22, type: 2} + value: {fileID: 1609040204495296083} + - key: {fileID: -6786903364522282068, guid: c48874f905c2eef4fa0c3c2f643f7d22, type: 2} + value: {fileID: 1131973531} + - key: {fileID: 5642281781616806033, guid: c48874f905c2eef4fa0c3c2f643f7d22, type: 2} + value: {fileID: 6845830716270844837} + - key: {fileID: -7590656864639944084, guid: c48874f905c2eef4fa0c3c2f643f7d22, type: 2} + value: {fileID: 164371421} + m_ExposedReferences: + m_References: [] --- !u!1 &1763559331 GameObject: m_ObjectHideFlags: 0 @@ -303072,7 +303342,6 @@ MonoBehaviour: virtualCameraManager: {fileID: 0} test: 0 sceneDataHandler: {fileID: 0} - multiObjectController: {fileID: 693784968} --- !u!114 &1942301347 MonoBehaviour: m_ObjectHideFlags: 0 @@ -350581,7 +350850,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: rotationSpeed: 90 - angleThreshold: 0.5 + currentState: 0 --- !u!114 &1609040204495296085 MonoBehaviour: m_ObjectHideFlags: 0 @@ -368632,7 +368901,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6c58763dd2491d94c882310d382a6dfc, type: 3} m_Name: m_EditorClassIdentifier: - portName: COM4 baudRate: 115200 dataType: 1 sensorView: {fileID: 2871564559804087914} @@ -418546,7 +418814,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: rotationSpeed: 90 - angleThreshold: 0.5 + currentState: 0 --- !u!114 &6845830716270844836 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/FSMManager.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/FSMManager.cs index a9148cd..9068afe 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/FSMManager.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/FSMManager.cs @@ -36,6 +36,7 @@ namespace YiLiao.XinFeiTingZhen GameManager.Instance.uiManager.CloseUI(); GameManager.Instance.uiManager.CloseUI(); GameManager.Instance.uiManager.CloseUI(); + GameManager.Instance.uiManager.CloseUI(); GameManager.Instance.highLightManager.HideAllHighLight(); GameManager.Instance.sceneDataHandler.SaveSceneDataToJson(main_gameModel.mainData.folder + "/SaveData/" + stateName + ".json"); GameManager.Instance.uiManager.GetUI().AddTip(gameModel.bData.txt); @@ -197,13 +198,13 @@ namespace YiLiao.XinFeiTingZhen public void PlayClip(string value, Action callBack = null) { float t = GetClipLength(value); - if (t > 0.1f) GameManager.Instance.uiManager.GetUI().LockAllBtn(); + if (t > 0.1f) GameManager.Instance.uiManager.CloseUI(); GameManager.Instance.timelineManager.PlayNormalClip(value); if (Game.Instance) { if (coroutine != null) Game.Instance.IEnumeratorManager.Stop(coroutine); coroutine = Game.Instance.IEnumeratorManager.Run(WaitExecute(t, () => { - GameManager.Instance.uiManager.GetUI().UnLockAllBtn(); + GameManager.Instance.uiManager.ShowUI(); callBack?.Invoke(); })); } diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/DiErXinYinZengQiang.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/DiErXinYinZengQiang.cs index d02208f..a0b734c 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/DiErXinYinZengQiang.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/DiErXinYinZengQiang.cs @@ -21,7 +21,7 @@ namespace YiLiao.XinFeiTingZhen public override void OnStateEnter() { base.OnStateEnter(); - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { GameManager.Instance.senSor.SendFunction("#ID:8,9;SONG:59,59;%"); fsm.PlayBgm(0); fsm.ShowTip(0); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/HouZhengZhongXian.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/HouZhengZhongXian.cs index 9619023..083e3a1 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/HouZhengZhongXian.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/HouZhengZhongXian.cs @@ -8,12 +8,10 @@ namespace YiLiao.XinFeiTingZhen base.OnStateEnter(); fsm.ShowTip(0); fsm.PlayBgm(0); - - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°×µ¹Ç¼¬Í»¡±", "×µ¹Ç¼¬Í»", 0, 999); fsm.Light_EnableInteraction("×µ¹Ç¼¬Í»"); }); - fsm.InteractionDown("×µ¹Ç¼¬Í»", obj => { fsm.HideArrow(); fsm.InteractionDown("×µ¹Ç¼¬Í»", null); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaGu.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaGu.cs index 7074395..f91d912 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaGu.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaGu.cs @@ -8,13 +8,12 @@ namespace YiLiao.XinFeiTingZhen base.OnStateEnter(); fsm.ShowTip(0); fsm.PlayBgm(0); - - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°¼çëιǡ±", "¼çëιÇ×ó", 0, 999); fsm.Light_EnableInteraction("¼çëιÇ×ó"); fsm.Light_EnableInteraction("¼çëιÇÓÒ"); }); - + fsm.InteractionDown("¼çëιÇ×ó", args => { fsm.AddScore(0, 0.5f); fsm.Unlight_DisableInteraction("¼çëιÇ×ó"); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaQuJian.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaQuJian.cs index 7bc6a91..84799b5 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaQuJian.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaQuJian.cs @@ -16,12 +16,10 @@ namespace YiLiao.XinFeiTingZhen { fsm.ShowTip(0); fsm.PlayBgm(0); - - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°Á½¼çëιÇÄÚÔµÖ®¼äµÄÇøÓò¡±", "Á½¼çëιÇÄÚÔµÖ®¼äµÄÇøÓò", 0, 999); fsm.Show_Light_EnableInteraction("Á½¼çëιÇÄÚÔµÖ®¼äµÄÇøÓò"); }); - fsm.InteractionDown("Á½¼çëιÇÄÚÔµÖ®¼äµÄÇøÓò", obj => { fsm.HideArrow(); fsm.InteractionDown("Á½¼çëιÇÄÚÔµÖ®¼äµÄÇøÓò", null); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaShangQu.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaShangQu.cs index ef339e9..2525560 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaShangQu.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaShangQu.cs @@ -16,10 +16,12 @@ namespace YiLiao.XinFeiTingZhen { fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°¼çëθÔÒÔÉϵÄÇøÓò¡±", "¼çëθÔÒÔÉϵÄÇøÓò", 0, 999); fsm.Show_Light_EnableInteraction("¼çëθÔÒÔÉϵÄÇøÓò"); }); + fsm.InteractionDown("¼çëθÔÒÔÉϵÄÇøÓò", obj => { fsm.HideArrow(); fsm.InteractionDown("¼çëθÔÒÔÉϵÄÇøÓò", null); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaJiao.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaJiao.cs index b7f2b16..ba0c9c2 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaJiao.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaJiao.cs @@ -8,12 +8,10 @@ namespace YiLiao.XinFeiTingZhen base.OnStateEnter(); fsm.ShowTip(0); fsm.PlayBgm(0); - - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°¼çëÎϽǡ±", "¼çëÎϽÇ", 0, 999); fsm.Light_EnableInteraction("¼çëÎϽÇ"); }); - fsm.InteractionDown("¼çëÎϽÇ", args => { fsm.AddScore(0, 0.5f); fsm.Unlight_DisableInteraction("¼çëÎϽÇ"); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaQu.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaQu.cs index 123202e..abc3ab2 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaQu.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXiaQu.cs @@ -16,10 +16,12 @@ namespace YiLiao.XinFeiTingZhen { fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°Á½¼çëÎϽǵÄÁ¬ÏßÓëµÚ12ÐØ×µË®Æ½ÏßÖ®¼äÇøÓò¡±", "Á½¼çëÎϽǵÄÁ¬ÏßÓëµÚ12ÐØ×µË®Æ½ÏßÖ®¼äÇøÓò", 0, 999); fsm.Show_Light_EnableInteraction("Á½¼çëÎϽǵÄÁ¬ÏßÓëµÚ12ÐØ×µË®Æ½ÏßÖ®¼äÇøÓò"); }); + fsm.InteractionDown("Á½¼çëÎϽǵÄÁ¬ÏßÓëµÚ12ÐØ×µË®Æ½ÏßÖ®¼äÇøÓò", obj => { fsm.HideArrow(); fsm.InteractionDown("Á½¼çëÎϽǵÄÁ¬ÏßÓëµÚ12ÐØ×µË®Æ½ÏßÖ®¼äÇøÓò", null); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXian.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXian.cs index 74c86a3..c1bf444 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXian.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/JianJiaXian.cs @@ -17,7 +17,7 @@ namespace YiLiao.XinFeiTingZhen fsm.ShowTip(0); fsm.PlayBgm(0); fsm.PlayClip("¼çëÎÏß¶¯»­1", () => { - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°¼çëÎϽǡ±", "¼çëÎϽÇ", 0, 999); fsm.Light_EnableInteraction("¼çëÎϽÇ"); }); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiGu11_12.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiGu11_12.cs index f4a8eef..c0f31cd 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiGu11_12.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiGu11_12.cs @@ -8,7 +8,7 @@ namespace YiLiao.XinFeiTingZhen base.OnStateEnter(); fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo180(() => { + fsm.PlayClip("0-180", () => { fsm.ShowArrow("µã»÷¡°11-12À߹ǡ±", "Àß¹Ç11-12×ó", 0, 999); fsm.Light_EnableInteraction("Àß¹Ç11-12×ó"); fsm.Light_EnableInteraction("Àß¹Ç11-12ÓÒ"); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiJianXi.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiJianXi.cs index 3a27b6b..633c01d 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiJianXi.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LeiJianXi.cs @@ -8,7 +8,7 @@ namespace YiLiao.XinFeiTingZhen base.OnStateEnter(); fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { fsm.Show("Àß¼ä϶"); fsm.ShowArrow("µã»÷¡°Àß¼ä϶¡±", "Àß¼ä϶", 0, 999); }); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LianXuXingZaYin.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LianXuXingZaYin.cs index 914be7f..54e4f31 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LianXuXingZaYin.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/LianXuXingZaYin.cs @@ -34,7 +34,7 @@ namespace YiLiao.XinFeiTingZhen } if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun) { - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { fsm.PlayBgm(0); fsm.ShowTip(0); fsm.Light("Ö§Æø¹Ü·ÎÅÝÌýÕïÆ÷λÖÃ3"); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QiGuanHuXiYin.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QiGuanHuXiYin.cs index 64a2bf3..15c85b5 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QiGuanHuXiYin.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QiGuanHuXiYin.cs @@ -22,7 +22,7 @@ namespace YiLiao.XinFeiTingZhen public override void OnStateEnter() { base.OnStateEnter(); - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { GameManager.Instance.senSor.SendFunction("#ID:3;SONG:1;%"); fsm.PlayBgm(0); fsm.ShowTip(0); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QianZhengZhongXian.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QianZhengZhongXian.cs index 6b1151e..6426a82 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QianZhengZhongXian.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/QianZhengZhongXian.cs @@ -16,7 +16,7 @@ namespace YiLiao.XinFeiTingZhen { fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { fsm.ShowArrow("µã»÷¡°ÐعDZúÉÏÔµµÄÖе㡱", "ÐØ¹Ç±úÉÏÔµµÄÖеã", 0, 999); fsm.Show_Light_EnableInteraction("ÐØ¹Ç±úÉÏÔµµÄÖеã"); }); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/ShuZhangZaoQiBenMaLv.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/ShuZhangZaoQiBenMaLv.cs index 9368ec3..3652313 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/ShuZhangZaoQiBenMaLv.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/ShuZhangZaoQiBenMaLv.cs @@ -33,7 +33,7 @@ namespace YiLiao.XinFeiTingZhen } if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun) { - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { fsm.PlayBgm(0); fsm.ShowTip(0); fsm.Light("×óËø¹ÇÖÐÏßÓëµÚ5À߼佻µãÄÚ0.5cmÌýÕïÆ÷λÖÃ1"); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/SuoGuZhongXian.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/SuoGuZhongXian.cs index 707d8b6..befb035 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/SuoGuZhongXian.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/SuoGuZhongXian.cs @@ -16,7 +16,7 @@ namespace YiLiao.XinFeiTingZhen { fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { fsm.ShowArrow("µã»÷¡°Ëø¹ÇµÄ¼ç·å¶Ë¡±", "Ëø¹ÇµÄ¼ç·å¶Ë", 0, 999); fsm.Show_Light_EnableInteraction("Ëø¹ÇµÄ¼ç·å¶Ë"); }); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/XiongGuXian.cs b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/XiongGuXian.cs index 7cfd049..eabf41d 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/XiongGuXian.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/FSMManager/State/XiongGuXian.cs @@ -16,11 +16,10 @@ namespace YiLiao.XinFeiTingZhen { fsm.ShowTip(0); fsm.PlayBgm(0); - GameManager.Instance.multiObjectController.RotateAllTo0(() => { + fsm.PlayClip("180-0", () => { fsm.ShowArrow("µã»÷¡°ÐعDZßÔµ¡±", "ÐØ¹Ç±ßÔµ", 0, 999); fsm.Show_Light_EnableInteraction("ÐØ¹Ç±ßÔµ"); }); - fsm.InteractionDown("ÐØ¹Ç±ßÔµ", obj => { fsm.HideArrow(); fsm.InteractionDown("ÐØ¹Ç±ßÔµ", null); diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/GameManager.cs b/Assets/_Scripts/Application/XinFeiTingZhen/GameManager.cs index 09295a9..162c0c8 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/GameManager.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/GameManager.cs @@ -36,8 +36,6 @@ namespace YiLiao.XinFeiTingZhen public bool test; [HideInInspector] public SceneDataHandler sceneDataHandler; - - public MultiObjectController multiObjectController; IEnumerator Start() { diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs b/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs deleted file mode 100644 index 4959d9c..0000000 --- a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs +++ /dev/null @@ -1,88 +0,0 @@ -using UnityEngine; -using System; - -public class MultiObjectController : MonoBehaviour -{ - [Header("ÐèÒªÐýתµÄÎïÌåÁбí")] - // ÔÚInspectorÃæ°åÀï°Ñ¶à¸öÎïÌåÍϵ½ÕâÀï - public YAxisRotator[] rotators; - /// - /// ÈÃËùÓÐÎïÌåתµ½180¶È£¬²¢ÔÚÈ«²¿Íê³Éºó´òÓ¡ÈÕÖ¾ - /// - public void RotateAllTo180(Action callBack = null) - { - int completedCount = 0; - int totalCount = rotators.Length; - - foreach (var rotator in rotators) - { - if (rotator == null) continue; - - // Ϊÿ¸öÎïÌåµ÷ÓÃÐýת - // ʹÓñհü²¶»ñ completedCount ºÍ totalCount ÓеãÂé·³£¬ÒòΪ±äÁ¿»á±ä - // ¸üºÃµÄ·½Ê½ÊǶ¨ÒåÒ»¸ö¾Ö²¿º¯Êý»òʹÓüÆÊýÆ÷À࣬ÕâÀïÓüòµ¥µÄ¾Ö²¿º¯Êýд·¨ - if (rotator.isActiveAndEnabled) - { - rotator.RotateTo180(() => - { - completedCount++; - Debug.Log($"{rotator.gameObject.name} Íê³ÉÐýת£¡µ±Ç°Íê³ÉÊý: {completedCount}/{totalCount}"); - - // Èç¹ûËùÓÐÎïÌå¶¼Íê³ÉÁË£¨°üÀ¨ÄÇЩԭ±¾¾Í²»ÐèҪתµÄ£© - if (completedCount == totalCount) - { - Debug.Log("=== ËùÓÐÎïÌåÐýתÈÎÎñÈ«²¿Íê³É£¡ ==="); - callBack?.Invoke(); - } - }); - } - else - { - completedCount++; - Debug.Log($"{rotator.gameObject.name} Íê³ÉÐýת£¡µ±Ç°Íê³ÉÊý: {completedCount}/{totalCount}"); - - // Èç¹ûËùÓÐÎïÌå¶¼Íê³ÉÁË£¨°üÀ¨ÄÇЩԭ±¾¾Í²»ÐèҪתµÄ£© - if (completedCount == totalCount) - { - Debug.Log("=== ËùÓÐÎïÌåÐýתÈÎÎñÈ«²¿Íê³É£¡ ==="); - callBack?.Invoke(); - } - } - } - } - - /// - /// ÈÃËùÓÐÎïÌåתµ½0¶È - /// - public void RotateAllTo0(Action callBack = null) - { - int completedCount = 0; - int totalCount = rotators.Length; - - foreach (var rotator in rotators) - { - if (rotator == null) continue; - if (rotator.isActiveAndEnabled) - { - rotator.RotateTo0(() => - { - completedCount++; - if (completedCount == totalCount) - { - Debug.Log("=== ËùÓÐÎïÌåÒѹéÁ㣡 ==="); - callBack?.Invoke(); - } - }); - } - else - { - completedCount++; - if (completedCount == totalCount) - { - Debug.Log("=== ËùÓÐÎïÌåÒѹéÁ㣡 ==="); - callBack?.Invoke(); - } - } - } - } -} \ No newline at end of file diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs.meta b/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs.meta deleted file mode 100644 index 5e63c67..0000000 --- a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/MultiObjectController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6764884e271942546ad1811ae5feb2d0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs b/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs deleted file mode 100644 index 0020d8a..0000000 --- a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs +++ /dev/null @@ -1,133 +0,0 @@ -using UnityEngine; -using System; // ±ØÐëÒýÈë System ÃüÃû¿Õ¼äÒÔʹÓà Action -using System.Collections; - -public class YAxisRotator : MonoBehaviour -{ - [Header("ÐýתÉèÖÃ")] - [Tooltip("ÐýתËÙ¶È£¬¶ÈÊý/Ãë")] - public float rotationSpeed = 90f; - - [Tooltip("ÅжÏÊÇ·ñµ½´ïÄ¿±ê½Ç¶ÈµÄÎó²î·¶Î§ (¶È)")] - public float angleThreshold = 0.5f; - - private Coroutine _currentRotationCoroutine = null; - private float _targetAngle = 0f; - - void Start() - { - _targetAngle = transform.localEulerAngles.y; - } - - /// - /// ·½·¨1£ºÐýתµ½180¶È - /// - /// ÐýתÍê³Éºó£¨»òÎÞÐèÐýתʱ£©Ö´ÐеĻص÷º¯Êý - public void RotateTo180(Action onComplete = null) - { - // ¼ì²éÊÇ·ñÒѾ­½Ó½ü180¶È - if (IsAngleClose(180f)) - { - Debug.Log($"[{gameObject.name}] ÒѾ­ÔÚ180¶È¸½½ü£¬Ìø¹ýÐýת£¬Ö±½Ó´¥·¢»Øµ÷¡£"); - _targetAngle = 180f; - - // ¡¾Ð޸ĵ㡿¼´Ê¹ÎÞÐèÐýת£¬Ò²Á¢¼´´¥·¢»Øµ÷ - onComplete?.Invoke(); - return; - } - - // Èç¹ûÕýÔÚÐýת£¬ÏÈ´ò¶Ï֮ǰµÄÐýת - if (_currentRotationCoroutine != null) - { - StopCoroutine(_currentRotationCoroutine); - // ×¢Ò⣺±»´ò¶ÏµÄ¾ÉÐýת²»»á´¥·¢»Øµ÷£¬Ö»ÓÐ×îÖÕÍê³ÉµÄÄǸö»á´¥·¢ - } - - _targetAngle = 180f; - _currentRotationCoroutine = StartCoroutine(RotateRoutine(180f, onComplete)); - } - - /// - /// ·½·¨2£ºÐýתµ½0¶È - /// - /// ÐýתÍê³Éºó£¨»òÎÞÐèÐýתʱ£©Ö´ÐеĻص÷º¯Êý - public void RotateTo0(Action onComplete = null) - { - // ¼ì²éÊÇ·ñÒѾ­½Ó½ü0¶È - if (IsAngleClose(0f)) - { - Debug.Log($"[{gameObject.name}] ÒѾ­ÔÚ0¶È¸½½ü£¬Ìø¹ýÐýת£¬Ö±½Ó´¥·¢»Øµ÷¡£"); - _targetAngle = 0f; - - // ¡¾Ð޸ĵ㡿¼´Ê¹ÎÞÐèÐýת£¬Ò²Á¢¼´´¥·¢»Øµ÷ - onComplete?.Invoke(); - return; - } - - if (_currentRotationCoroutine != null) - { - StopCoroutine(_currentRotationCoroutine); - } - - _targetAngle = 0f; - _currentRotationCoroutine = StartCoroutine(RotateRoutine(0f, onComplete)); - } - - /// - /// ºËÐÄЭ³Ì£ºÖ´ÐÐÆ½»¬Ðýת - /// - private IEnumerator RotateRoutine(float targetY, Action onComplete) - { - while (true) - { - Vector3 currentEuler = transform.localEulerAngles; - float currentY = currentEuler.y; - - // ¼ÆËã×î¶Ì·¾¶½Ç¶È²î - float delta = Mathf.DeltaAngle(currentY, targetY); - - // µ½´ïÄ¿±êÅÐ¶Ï - if (Mathf.Abs(delta) <= angleThreshold) - { - transform.localRotation = Quaternion.Euler(0, targetY, 0); - - // Ðýת½áÊø£¬´¥·¢»Øµ÷ - onComplete?.Invoke(); - - _currentRotationCoroutine = null; - yield break; - } - - float step = rotationSpeed * Time.deltaTime; - - // ×îºóÒ»²½ÐÞÕý - if (Mathf.Abs(delta) < step) - { - transform.localRotation = Quaternion.Euler(0, targetY, 0); - - // Ðýת½áÊø£¬´¥·¢»Øµ÷ - onComplete?.Invoke(); - - _currentRotationCoroutine = null; - yield break; - } - - // Ö´ÐÐÐýת - float newY = currentY + Mathf.Sign(delta) * step; - transform.localRotation = Quaternion.Euler(0, newY, 0); - - yield return null; - } - } - - /// - /// ¸¨ÖúÅжϽǶÈÊÇ·ñ½Ó½ü - /// - private bool IsAngleClose(float target) - { - float currentY = transform.localEulerAngles.y; - float delta = Mathf.DeltaAngle(currentY, target); - Debug.Log(delta); - return Mathf.Abs(delta) <= angleThreshold; - } -} \ No newline at end of file diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs.meta b/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs.meta deleted file mode 100644 index 28a9d72..0000000 --- a/Assets/_Scripts/Application/XinFeiTingZhen/Other/物体旋转0-180度/YAxisRotator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4fd97c47bd999024ea592ad3c434b53e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/UI/CountdownPanel.cs b/Assets/_Scripts/Application/XinFeiTingZhen/UI/CountdownPanel.cs index 239fe83..8a0968c 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/UI/CountdownPanel.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/UI/CountdownPanel.cs @@ -9,7 +9,7 @@ namespace YiLiao.XinFeiTingZhen public class CountdownPanel : UIBase { [Tooltip("µ¹¼ÆÊ±×Üʱ³¤£¨Ã룩")] - public float duration = 20f; + public float duration = 90f; [Tooltip("°ó¶¨´øÓÐFilledÊôÐÔµÄImage×é¼þ")] public Image countdownImage; diff --git a/Assets/_Scripts/Application/XinFeiTingZhen/UI/TreeViewPanel.cs b/Assets/_Scripts/Application/XinFeiTingZhen/UI/TreeViewPanel.cs index ea93caf..358531f 100644 --- a/Assets/_Scripts/Application/XinFeiTingZhen/UI/TreeViewPanel.cs +++ b/Assets/_Scripts/Application/XinFeiTingZhen/UI/TreeViewPanel.cs @@ -80,14 +80,14 @@ namespace YiLiao.XinFeiTingZhen new[] { "ÐŦÄܶ¯»­", "XinGongNengDongHua" }, // --- ·Î²¿ÌýÕï --- - new[] { "·Î²¿ÌýÕï", "Õý³£ºôÎüÒô", "Æø¹ÜºôÎüÒô", "QiGuanHuXiYin" }, + //new[] { "·Î²¿ÌýÕï", "Õý³£ºôÎüÒô", "Æø¹ÜºôÎüÒô", "QiGuanHuXiYin" }, new[] { "·Î²¿ÌýÕï", "Õý³£ºôÎüÒô", "Ö§Æø¹ÜºôÎüÒô", "ZhiQiGuanHuXiYin" }, new[] { "·Î²¿ÌýÕï", "Õý³£ºôÎüÒô", "Ö§Æø¹Ü·ÎÅݺôÎüÒô", "ZhiQiGuanFeiPaoHuXiYin" }, new[] { "·Î²¿ÌýÕï", "Õý³£ºôÎüÒô", "·ÎÅݺôÎüÒô", "FeiPaoHuXiYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "Òì³£·ÎÅݺôÎüÒô", "·ÎÅݺôÎüÒô¼õÈõ»òÏûʧ", "FeiPaoHuXiYinJianRuoHuoXiaoShi" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "Òì³£·ÎÅݺôÎüÒô", "·ÎÅݺôÎüÒôÔöÇ¿", "FeiPaoHuXiYinZengQiang" }, - new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "Òì³£·ÎÅݺôÎüÒô", "ºôÎüÒôÑÓ³¤", "HuXiYinYanChang" }, + //new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "Òì³£·ÎÅݺôÎüÒô", "ºôÎüÒôÑÓ³¤", "HuXiYinYanChang" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "Òì³£·ÎÅݺôÎüÒô", "¶ÏÐøÐÔºôÎüÒô", "DuanXuXingHuXiYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "Òì³£·ÎÅݺôÎüÒô", "´Ö²ÚÐÔºôÎüÒô", "CuCaoXingHuXiYin" }, @@ -97,7 +97,7 @@ namespace YiLiao.XinFeiTingZhen new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "´Öʪ†ªÒô£¨´óË®ÅÝÒô£©", "CuShiLuoYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "ÖÐʪ†ªÒô£¨ÖÐË®ÅÝÒô£©", "ZhongShiLuoYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "ϸʪ†ªÒô£¨Ð¡Ë®ÅÝÒô£©", "XiShiLuoYin" }, - new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "Velcro†ªÒô", "VelcroLuoYin" }, + //new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "Velcro†ªÒô", "VelcroLuoYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "Äí·¢Òô", "NianFaYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "¸ßµ÷¸É†ªÒô£¨ÉÚµÑÒô£©", "GaoDiaoGanLuoYin" }, new[] { "·Î²¿ÌýÕï", "Òì³£ºôÎüÒô", "†ªÒô", "µÍµ÷¸É†ªÒô£¨÷ýÒô£©", "DiDiaoGanLuoYin" }, @@ -111,21 +111,21 @@ namespace YiLiao.XinFeiTingZhen new[] { "ÐÄÔàÌýÕï", "ÐÄÔà°êĤÌýÕïÇø", "Ö÷¶¯Âö°êµÚ¶þÌýÕïÇø", "ZhuDongMaiBanDiErTingZhenQu" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÔà°êĤÌýÕïÇø", "Èý¼â°êÇø", "SanJianBanQu" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÂÊ", "XinLv" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÂÊ", "XinLv" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒô", "DiYiXinYin" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô", "DiErXinYin" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒô", "DiYiXinYin" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô", "DiErXinYin" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÈýÐÄÒô", "DiSanXinYin" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚËÄÐÄÒô", "DiSiXinYin" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚËÄÐÄÒô", "DiSiXinYin" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒôÔöÇ¿", "DiYiXinYinZengQiang" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒô¼õÈõ", "DiYiXinYinJianRuo" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒôÇ¿Èõ²»µÈ", "DiYiXinYinQiangRuoBuDeng" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒôÇ¿Èõ²»µÈ", "DiYiXinYinQiangRuoBuDeng" }, //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒôÔöÇ¿", "DiErXinYinZengQiang" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô¼õÈõ", "DiErXinYinJianRuo" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒô·ÖÁÑ", "DiYiXinYinFenLie" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒôͨ³£·ÖÁÑ", "DiErXinYinTongChangFenLie" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô¹Ì¶¨·ÖÁÑ", "DiErXinYinGuDingFenLie" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô·´³£·ÖÁÑ", "DiErXinYinFanChangFenLie" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô¼õÈõ", "DiErXinYinJianRuo" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚÒ»ÐÄÒô·ÖÁÑ", "DiYiXinYinFenLie" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒôͨ³£·ÖÁÑ", "DiErXinYinTongChangFenLie" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô¹Ì¶¨·ÖÁÑ", "DiErXinYinGuDingFenLie" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÒô", "µÚ¶þÐÄÒô·´³£·ÖÁÑ", "DiErXinYinFanChangFenLie" }, new[] { "ÐÄÔàÌýÕï", "¶îÍâÐÄÒô", "ÊæÕÅÆÚ¶îÍâÐÄÒô", "ÊæÕÅÔçÆÚ±¼ÂíÂÉ", "ShuZhangZaoQiBenMaLv" }, new[] { "ÐÄÔàÌýÕï", "¶îÍâÐÄÒô", "ÊæÕÅÆÚ¶îÍâÐÄÒô", "ÊæÕÅÍíÆÚ±¼ÂíÂÉ", "ShuZhangWanQiBenMaLv" }, @@ -138,7 +138,7 @@ namespace YiLiao.XinFeiTingZhen new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÊÕËõÆÚÔÓÒô", "Èý¼â°êÇø", "SanJianBanQu2" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÊæÕÅÆÚÔÓÒô", "¶þ¼â°êÇø", "ErJianBanQu3" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÊæÕÅÆÚÔÓÒô", "Ö÷¶¯Âö°êÇø", "ZhuDongMaiBanQu3" }, - new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÊæÕÅÆÚÔÓÒô", "·Î¶¯Âö°êÇø", "FeiDongMaiBanQu3" }, + //new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÊæÕÅÆÚÔÓÒô", "·Î¶¯Âö°êÇø", "FeiDongMaiBanQu3" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÊæÕÅÆÚÔÓÒô", "Èý¼â°êÇø", "SanJianBanQu3" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "Á¬ÐøÐÔÔÓÒô", "LianXuXingZaYin" }, new[] { "ÐÄÔàÌýÕï", "ÐÄÔàÔÓÒô", "ÐİüĦ²ÁÒô", "XinBaoMoCaYin" }