From fb0c39ccbf740318fd70a5fae3a527e0c3f1ba2e Mon Sep 17 00:00:00 2001 From: Ding Yuntian <1491671119@qq.com> Date: Wed, 28 May 2025 21:48:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=BA=E6=99=AF=E5=92=8C=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssetGroups/Actor Resource.asset | 25 + Assets/{VFX.meta => Animation/OutScene.meta} | 2 +- Assets/Animation/{ => OutScene}/LEAF.anim | 0 .../Animation/{ => OutScene}/LEAF.anim.meta | 2 +- .../{ => OutScene}/天桥上场景导出.controller | 52 +- .../天桥上场景导出.controller.meta | 2 +- .../{ => OutScene}/天桥上场景导出_Clip.anim | 0 .../天桥上场景导出_Clip.anim.meta | 2 +- .../诊室附近树叶动画.controller | 16 +- .../诊室附近树叶动画.controller.meta | 2 +- Assets/Editor/Inspector/ActorSlotEditor.cs | 2 + .../FixSystemPrefabs/ActorAnima.prefab | 4 +- Assets/Prefabs/Tasktext.prefab | 138 - .../Actor}/外出佩佩动画.aseprite | Bin .../Actor}/外出佩佩动画.aseprite.meta | 6 +- .../Actor}/外出佩佩天桥上挥手动画.aseprite | Bin .../外出佩佩天桥上挥手动画.aseprite.meta | 6 +- .../Actor}/外出医生动画.aseprite | Bin .../Actor}/外出医生动画.aseprite.meta | 8 +- .../Actor}/天桥上佩佩动画导出.aseprite | Bin 22912 -> 23682 bytes .../Actor}/天桥上佩佩动画导出.aseprite.meta | 9 +- .../Actor}/天桥上医生动画导出.aseprite | Bin 14580 -> 14580 bytes .../Actor}/天桥上医生动画导出.aseprite.meta | 7 +- .../Actor/天桥人物.meta} | 5 +- .../Actor/天桥人物/doctor.anim} | 2 +- .../Actor/天桥人物/doctor.anim.meta} | 2 +- .../Actor/天桥人物/peipei.anim} | 2 +- .../Actor/天桥人物/peipei.anim.meta} | 2 +- .../天桥人物}/天桥上佩佩动画导出.controller | 18 +- .../天桥上佩佩动画导出.controller.meta | 2 +- .../天桥人物}/天桥上医生动画导出.controller | 18 +- .../天桥上医生动画导出.controller.meta | 2 +- Assets/RawResources/Actor/诊室外人物.meta | 8 + .../Actor/诊室外人物}/ABOVE.anim | 0 .../Actor/诊室外人物}/ABOVE.anim.meta | 2 +- .../Actor/诊室外人物}/BACK.anim | 0 .../Actor/诊室外人物}/BACK.anim.meta | 2 +- .../Actor/诊室外人物}/HOODBACK.anim | 0 .../Actor/诊室外人物}/HOODBACK.anim.meta | 2 +- .../Actor/诊室外人物}/LDLE.anim | 0 .../Actor/诊室外人物}/LDLE.anim.meta | 2 +- .../Actor/诊室外人物}/SMOKE.anim | 24 +- .../Actor/诊室外人物}/SMOKE.anim.meta | 2 +- .../Actor/诊室外人物}/WAVE.anim | 0 .../Actor/诊室外人物}/WAVE.anim.meta | 2 +- .../Actor/诊室外人物}/外出佩佩动画.controller | 71 +- .../诊室外人物}/外出佩佩动画.controller.meta | 2 +- .../外出佩佩天桥上挥手动画.controller | 127 +- .../外出佩佩天桥上挥手动画.controller.meta | 2 +- .../Actor/诊室外人物}/外出医生动画.controller | 120 +- .../诊室外人物}/外出医生动画.controller.meta | 2 +- Assets/Render/Renderer2Dtest.asset | 22 +- .../Animation/天桥上场景导出.aseprite.meta | 28 +- .../Animation/诊室附近树叶动画.aseprite.meta | 4 +- .../Basic Function/Clinic System.prefab | 1 - Assets/Scenes/Bridge.unity | 17106 +--------------- Assets/Scenes/ClinicOut.unity | 385 +- .../FixSystemNew/Clinic/ClinicSystem.cs | 5 - .../SceneManagement/ActorKit/ActorManager.cs | 9 + .../SceneManagement/ActorKit/ActorSlot.cs | 4 + .../SceneManagement/EnvironmentKit.meta | 3 + .../EnvironmentKit/AbsScenePart.cs | 28 + .../EnvironmentKit/AbsScenePart.cs.meta | 3 + .../EnvironmentKit/ActiveScenePart.cs | 45 + .../EnvironmentKit/ActiveScenePart.cs.meta | 3 + .../EnvironmentKit/AnimatorScenePart.cs | 46 + .../EnvironmentKit/AnimatorScenePart.cs.meta | 3 + .../EnvironmentKit/EnvironmentManager.cs | 67 + .../EnvironmentKit/EnvironmentManager.cs.meta | 3 + .../EnvironmentKit/SpriteScenePart.cs | 49 + .../EnvironmentKit/SpriteScenePart.cs.meta | 3 + .../SceneManagement/Old/EnvironmentManager.cs | 4 +- 72 files changed, 1062 insertions(+), 17463 deletions(-) rename Assets/{VFX.meta => Animation/OutScene.meta} (77%) rename Assets/Animation/{ => OutScene}/LEAF.anim (100%) rename Assets/Animation/{ => OutScene}/LEAF.anim.meta (79%) rename Assets/Animation/{ => OutScene}/天桥上场景导出.controller (85%) rename Assets/Animation/{ => OutScene}/天桥上场景导出.controller.meta (79%) rename Assets/Animation/{ => OutScene}/天桥上场景导出_Clip.anim (100%) rename Assets/Animation/{ => OutScene}/天桥上场景导出_Clip.anim.meta (79%) rename Assets/Animation/{ => OutScene}/诊室附近树叶动画.controller (83%) rename Assets/Animation/{ => OutScene}/诊室附近树叶动画.controller.meta (79%) delete mode 100644 Assets/Prefabs/Tasktext.prefab rename Assets/{Animation => RawResources/Actor}/外出佩佩动画.aseprite (100%) rename Assets/{Animation => RawResources/Actor}/外出佩佩动画.aseprite.meta (98%) rename Assets/{Animation => RawResources/Actor}/外出佩佩天桥上挥手动画.aseprite (100%) rename Assets/{Animation => RawResources/Actor}/外出佩佩天桥上挥手动画.aseprite.meta (97%) rename Assets/{Animation => RawResources/Actor}/外出医生动画.aseprite (100%) rename Assets/{Animation => RawResources/Actor}/外出医生动画.aseprite.meta (99%) rename Assets/{Animation => RawResources/Actor}/天桥上佩佩动画导出.aseprite (92%) rename Assets/{Animation => RawResources/Actor}/天桥上佩佩动画导出.aseprite.meta (95%) rename Assets/{Animation => RawResources/Actor}/天桥上医生动画导出.aseprite (99%) rename Assets/{Animation => RawResources/Actor}/天桥上医生动画导出.aseprite.meta (96%) rename Assets/{Prefabs/Tasktext.prefab.meta => RawResources/Actor/天桥人物.meta} (57%) rename Assets/{Animation/医生.anim => RawResources/Actor/天桥人物/doctor.anim} (98%) rename Assets/{Animation/医生.anim.meta => RawResources/Actor/天桥人物/doctor.anim.meta} (79%) rename Assets/{Animation/佩佩.anim => RawResources/Actor/天桥人物/peipei.anim} (98%) rename Assets/{Animation/佩佩.anim.meta => RawResources/Actor/天桥人物/peipei.anim.meta} (79%) rename Assets/{Animation => RawResources/Actor/天桥人物}/天桥上佩佩动画导出.controller (81%) rename Assets/{Animation => RawResources/Actor/天桥人物}/天桥上佩佩动画导出.controller.meta (79%) rename Assets/{Animation => RawResources/Actor/天桥人物}/天桥上医生动画导出.controller (81%) rename Assets/{Animation => RawResources/Actor/天桥人物}/天桥上医生动画导出.controller.meta (79%) create mode 100644 Assets/RawResources/Actor/诊室外人物.meta rename Assets/{Animation => RawResources/Actor/诊室外人物}/ABOVE.anim (100%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/ABOVE.anim.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/BACK.anim (100%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/BACK.anim.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/HOODBACK.anim (100%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/HOODBACK.anim.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/LDLE.anim (100%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/LDLE.anim.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/SMOKE.anim (69%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/SMOKE.anim.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/WAVE.anim (100%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/WAVE.anim.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/外出佩佩动画.controller (59%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/外出佩佩动画.controller.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/外出佩佩天桥上挥手动画.controller (60%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/外出佩佩天桥上挥手动画.controller.meta (79%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/外出医生动画.controller (55%) rename Assets/{Animation => RawResources/Actor/诊室外人物}/外出医生动画.controller.meta (79%) create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit.meta create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs.meta create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs.meta create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs.meta create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs.meta create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs create mode 100644 Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs.meta diff --git a/Assets/AddressableAssetsData/AssetGroups/Actor Resource.asset b/Assets/AddressableAssetsData/AssetGroups/Actor Resource.asset index b9af28b23..ddec944bc 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Actor Resource.asset +++ b/Assets/AddressableAssetsData/AssetGroups/Actor Resource.asset @@ -22,6 +22,31 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 2359eeb42b1a4f044b01b6ea27390f1d + m_Address: "Animation/\u5929\u6865\u4F69\u4F69" + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 0252f0740dd08da4ab8f5aeb7ddcc4ea + m_Address: "Animation/\u5929\u6865\u533B\u751F" + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: b6a14d8a19b9a3041baf76df2e8e4558 + m_Address: "Animation/\u8BCA\u5BA4\u5916\u4F69\u4F69" + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 476f3a0fe5e8ea243a4600320037142b + m_Address: "Animation/\u8BCA\u5BA4\u5916\u5929\u6865\u4F69\u4F69" + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 1c522e1aacf5ba34682943e477111d62 + m_Address: "Animation/\u8BCA\u5BA4\u5916\u533B\u751F" + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 0 m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2} m_SchemaSet: diff --git a/Assets/VFX.meta b/Assets/Animation/OutScene.meta similarity index 77% rename from Assets/VFX.meta rename to Assets/Animation/OutScene.meta index 240ed7d6b..723ca2b67 100644 --- a/Assets/VFX.meta +++ b/Assets/Animation/OutScene.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5d5f9ed9e133a9c4c9b8f47a34e2a7e2 +guid: ae5f17bbba793db45b95810b5ed87a5f folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Animation/LEAF.anim b/Assets/Animation/OutScene/LEAF.anim similarity index 100% rename from Assets/Animation/LEAF.anim rename to Assets/Animation/OutScene/LEAF.anim diff --git a/Assets/Animation/LEAF.anim.meta b/Assets/Animation/OutScene/LEAF.anim.meta similarity index 79% rename from Assets/Animation/LEAF.anim.meta rename to Assets/Animation/OutScene/LEAF.anim.meta index e27c4bcec..d89759b6e 100644 --- a/Assets/Animation/LEAF.anim.meta +++ b/Assets/Animation/OutScene/LEAF.anim.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f76a20d16f238dd4a8451782d8750ceb +guid: 972ba0e2e97e1f94e8f8a0892bb7f14b NativeFormatImporter: externalObjects: {} mainObjectFileID: 7400000 diff --git a/Assets/Animation/天桥上场景导出.controller b/Assets/Animation/OutScene/天桥上场景导出.controller similarity index 85% rename from Assets/Animation/天桥上场景导出.controller rename to Assets/Animation/OutScene/天桥上场景导出.controller index 03903067b..af05e684f 100644 --- a/Assets/Animation/天桥上场景导出.controller +++ b/Assets/Animation/OutScene/天桥上场景导出.controller @@ -12,7 +12,7 @@ AnimatorController: m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer - m_StateMachine: {fileID: 5510992033376376165} + m_StateMachine: {fileID: 6288365692251616884} m_Mask: {fileID: 0} m_Motions: [] m_Behaviours: [] @@ -22,29 +22,7 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} ---- !u!1107 &5510992033376376165 -AnimatorStateMachine: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Base Layer - m_ChildStates: - - serializedVersion: 1 - m_State: {fileID: 7800661804958849455} - m_Position: {x: 200, y: 0, z: 0} - m_ChildStateMachines: [] - m_AnyStateTransitions: [] - m_EntryTransitions: [] - m_StateMachineTransitions: {} - m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 50, y: 20, z: 0} - m_EntryPosition: {x: 50, y: 120, z: 0} - m_ExitPosition: {x: 800, y: 120, z: 0} - m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} - m_DefaultState: {fileID: 7800661804958849455} ---- !u!1102 &7800661804958849455 +--- !u!1102 &5870137442411848463 AnimatorState: serializedVersion: 6 m_ObjectHideFlags: 1 @@ -52,7 +30,7 @@ AnimatorState: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: "\u5929\u6865\u4E0A\u573A\u666F\u5BFC\u51FA_Clip" - m_Speed: 0.25 + m_Speed: 1 m_CycleOffset: 0 m_Transitions: [] m_StateMachineBehaviours: [] @@ -64,9 +42,31 @@ AnimatorState: m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: dbdcfeb06fd85ba4c99a3023d5eb929d, type: 2} + m_Motion: {fileID: 7400000, guid: c4377bac4ed254642ad64ef2f1a23fe9, type: 2} m_Tag: m_SpeedParameter: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1107 &6288365692251616884 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 5870137442411848463} + m_Position: {x: 200, y: 0, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 5870137442411848463} diff --git a/Assets/Animation/天桥上场景导出.controller.meta b/Assets/Animation/OutScene/天桥上场景导出.controller.meta similarity index 79% rename from Assets/Animation/天桥上场景导出.controller.meta rename to Assets/Animation/OutScene/天桥上场景导出.controller.meta index 072b29a12..d531716ad 100644 --- a/Assets/Animation/天桥上场景导出.controller.meta +++ b/Assets/Animation/OutScene/天桥上场景导出.controller.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1b3cbedbafed10044946d65d431635de +guid: f06ecbbdd7cbb9846914eebc731f697c NativeFormatImporter: externalObjects: {} mainObjectFileID: 9100000 diff --git a/Assets/Animation/天桥上场景导出_Clip.anim b/Assets/Animation/OutScene/天桥上场景导出_Clip.anim similarity index 100% rename from Assets/Animation/天桥上场景导出_Clip.anim rename to Assets/Animation/OutScene/天桥上场景导出_Clip.anim diff --git a/Assets/Animation/天桥上场景导出_Clip.anim.meta b/Assets/Animation/OutScene/天桥上场景导出_Clip.anim.meta similarity index 79% rename from Assets/Animation/天桥上场景导出_Clip.anim.meta rename to Assets/Animation/OutScene/天桥上场景导出_Clip.anim.meta index e7f6d7c2c..2b7a753c3 100644 --- a/Assets/Animation/天桥上场景导出_Clip.anim.meta +++ b/Assets/Animation/OutScene/天桥上场景导出_Clip.anim.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: dbdcfeb06fd85ba4c99a3023d5eb929d +guid: c4377bac4ed254642ad64ef2f1a23fe9 NativeFormatImporter: externalObjects: {} mainObjectFileID: 7400000 diff --git a/Assets/Animation/诊室附近树叶动画.controller b/Assets/Animation/OutScene/诊室附近树叶动画.controller similarity index 83% rename from Assets/Animation/诊室附近树叶动画.controller rename to Assets/Animation/OutScene/诊室附近树叶动画.controller index 81e266c10..f497e8327 100644 --- a/Assets/Animation/诊室附近树叶动画.controller +++ b/Assets/Animation/OutScene/诊室附近树叶动画.controller @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1102 &-5454553847925892763 +--- !u!1102 &-5340231124759479622 AnimatorState: serializedVersion: 6 m_ObjectHideFlags: 1 @@ -8,7 +8,7 @@ AnimatorState: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: LEAF - m_Speed: 0.25 + m_Speed: 1 m_CycleOffset: 0 m_Transitions: [] m_StateMachineBehaviours: [] @@ -20,13 +20,13 @@ AnimatorState: m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: f76a20d16f238dd4a8451782d8750ceb, type: 2} + m_Motion: {fileID: 7400000, guid: 972ba0e2e97e1f94e8f8a0892bb7f14b, type: 2} m_Tag: m_SpeedParameter: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1107 &-2803534740675637701 +--- !u!1107 &-26154164438857343 AnimatorStateMachine: serializedVersion: 6 m_ObjectHideFlags: 1 @@ -36,8 +36,8 @@ AnimatorStateMachine: m_Name: Base Layer m_ChildStates: - serializedVersion: 1 - m_State: {fileID: -5454553847925892763} - m_Position: {x: 430, y: 110, z: 0} + m_State: {fileID: -5340231124759479622} + m_Position: {x: 200, y: 0, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -47,7 +47,7 @@ AnimatorStateMachine: m_EntryPosition: {x: 50, y: 120, z: 0} m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} - m_DefaultState: {fileID: -5454553847925892763} + m_DefaultState: {fileID: -5340231124759479622} --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -60,7 +60,7 @@ AnimatorController: m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer - m_StateMachine: {fileID: -2803534740675637701} + m_StateMachine: {fileID: -26154164438857343} m_Mask: {fileID: 0} m_Motions: [] m_Behaviours: [] diff --git a/Assets/Animation/诊室附近树叶动画.controller.meta b/Assets/Animation/OutScene/诊室附近树叶动画.controller.meta similarity index 79% rename from Assets/Animation/诊室附近树叶动画.controller.meta rename to Assets/Animation/OutScene/诊室附近树叶动画.controller.meta index 88d65ff53..135e77cae 100644 --- a/Assets/Animation/诊室附近树叶动画.controller.meta +++ b/Assets/Animation/OutScene/诊室附近树叶动画.controller.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 13c55656c164c9a4ca735baa2e50e744 +guid: 34de88a0262d75446a654cb939b186bb NativeFormatImporter: externalObjects: {} mainObjectFileID: 9100000 diff --git a/Assets/Editor/Inspector/ActorSlotEditor.cs b/Assets/Editor/Inspector/ActorSlotEditor.cs index 5352cfe4e..c774e392e 100644 --- a/Assets/Editor/Inspector/ActorSlotEditor.cs +++ b/Assets/Editor/Inspector/ActorSlotEditor.cs @@ -11,6 +11,8 @@ namespace AibisDream.SystemEditor // 先绘制默认的 Inspector DrawDefaultInspector(); // 重画UI + EditorGUILayout.Separator(); + EditorGUILayout.LabelField("层级设置", EditorStyles.boldLabel); example.sortingLayer = EditorKit.SortingLayerField("目标层级", example.sortingLayer); example.sortingOrder = EditorGUILayout.IntField("层级顺序", example.sortingOrder); } diff --git a/Assets/Prefabs/FixSystemPrefabs/ActorAnima.prefab b/Assets/Prefabs/FixSystemPrefabs/ActorAnima.prefab index 1ca05573a..badb2272e 100644 --- a/Assets/Prefabs/FixSystemPrefabs/ActorAnima.prefab +++ b/Assets/Prefabs/FixSystemPrefabs/ActorAnima.prefab @@ -75,7 +75,7 @@ SpriteRenderer: m_SortingLayerID: 941243827 m_SortingLayer: 13 m_SortingOrder: 120 - m_Sprite: {fileID: -6352753263497330606, guid: 825826e10ef378544b22becd550862f1, type: 3} + m_Sprite: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 @@ -83,7 +83,7 @@ SpriteRenderer: m_Size: {x: 7.4651165, y: 9.930233} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 + m_WasSpriteAssigned: 0 m_MaskInteraction: 0 m_SpriteSortPoint: 0 --- !u!95 &6457534782112409331 diff --git a/Assets/Prefabs/Tasktext.prefab b/Assets/Prefabs/Tasktext.prefab deleted file mode 100644 index d07a8bb3b..000000000 --- a/Assets/Prefabs/Tasktext.prefab +++ /dev/null @@ -1,138 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &5295477770541402281 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2064460273118752238} - - component: {fileID: 1440951267645871901} - - component: {fileID: 3556313705934389985} - m_Layer: 5 - m_Name: Tasktext - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2064460273118752238 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5295477770541402281} - 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: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 350, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1440951267645871901 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5295477770541402281} - m_CullTransparentMesh: 1 ---- !u!114 &3556313705934389985 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5295477770541402281} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ' - -' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Animation/外出佩佩动画.aseprite b/Assets/RawResources/Actor/外出佩佩动画.aseprite similarity index 100% rename from Assets/Animation/外出佩佩动画.aseprite rename to Assets/RawResources/Actor/外出佩佩动画.aseprite diff --git a/Assets/Animation/外出佩佩动画.aseprite.meta b/Assets/RawResources/Actor/外出佩佩动画.aseprite.meta similarity index 98% rename from Assets/Animation/外出佩佩动画.aseprite.meta rename to Assets/RawResources/Actor/外出佩佩动画.aseprite.meta index d2192544f..59ad83251 100644 --- a/Assets/Animation/外出佩佩动画.aseprite.meta +++ b/Assets/RawResources/Actor/外出佩佩动画.aseprite.meta @@ -12,12 +12,12 @@ ScriptedImporter: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: BACK - second: {fileID: 7400000, guid: a9b7b3ed28c7f114db06684cf498cc49, type: 2} + second: {fileID: 7400000, guid: f468217ea82a20c428e4018154d7858b, type: 2} - first: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: HOODBACK - second: {fileID: 7400000, guid: e422a0609c2ce6f4baf765dfc4dcfb7f, type: 2} + second: {fileID: 7400000, guid: e20c69477ca8fa94ca1bdf632e6593a4, type: 2} - first: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule @@ -115,7 +115,7 @@ ScriptedImporter: addSortingGroup: 1 addShadowCasters: 0 importFileNodeState: 1 - platformSettingsDirtyTick: 638773061778456340 + platformSettingsDirtyTick: 638840649868771105 textureAssetName: singleSpriteImportData: - name: diff --git a/Assets/Animation/外出佩佩天桥上挥手动画.aseprite b/Assets/RawResources/Actor/外出佩佩天桥上挥手动画.aseprite similarity index 100% rename from Assets/Animation/外出佩佩天桥上挥手动画.aseprite rename to Assets/RawResources/Actor/外出佩佩天桥上挥手动画.aseprite diff --git a/Assets/Animation/外出佩佩天桥上挥手动画.aseprite.meta b/Assets/RawResources/Actor/外出佩佩天桥上挥手动画.aseprite.meta similarity index 97% rename from Assets/Animation/外出佩佩天桥上挥手动画.aseprite.meta rename to Assets/RawResources/Actor/外出佩佩天桥上挥手动画.aseprite.meta index 945c1f0f4..fd0e03456 100644 --- a/Assets/Animation/外出佩佩天桥上挥手动画.aseprite.meta +++ b/Assets/RawResources/Actor/外出佩佩天桥上挥手动画.aseprite.meta @@ -7,12 +7,12 @@ ScriptedImporter: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: ABOVE - second: {fileID: 7400000, guid: 9f5bde8a704b30c4599434547655efc3, type: 2} + second: {fileID: 7400000, guid: 85deced6ce06aaa4bbe314cb55fda5a7, type: 2} - first: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: WAVE - second: {fileID: 7400000, guid: ab10f3c136559804fa308f82885bf524, type: 2} + second: {fileID: 7400000, guid: 6f025a6bf93a35c438af0a7d1d14f2e0, type: 2} serializedVersion: 2 userData: assetBundleName: @@ -105,7 +105,7 @@ ScriptedImporter: addSortingGroup: 1 addShadowCasters: 0 importFileNodeState: 1 - platformSettingsDirtyTick: 638773085217056246 + platformSettingsDirtyTick: 638840650581786179 textureAssetName: singleSpriteImportData: - name: diff --git a/Assets/Animation/外出医生动画.aseprite b/Assets/RawResources/Actor/外出医生动画.aseprite similarity index 100% rename from Assets/Animation/外出医生动画.aseprite rename to Assets/RawResources/Actor/外出医生动画.aseprite diff --git a/Assets/Animation/外出医生动画.aseprite.meta b/Assets/RawResources/Actor/外出医生动画.aseprite.meta similarity index 99% rename from Assets/Animation/外出医生动画.aseprite.meta rename to Assets/RawResources/Actor/外出医生动画.aseprite.meta index 5193ff3bd..efeacc724 100644 --- a/Assets/Animation/外出医生动画.aseprite.meta +++ b/Assets/RawResources/Actor/外出医生动画.aseprite.meta @@ -7,17 +7,17 @@ ScriptedImporter: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: BACK - second: {fileID: 7400000, guid: a9b7b3ed28c7f114db06684cf498cc49, type: 2} + second: {fileID: 7400000, guid: f468217ea82a20c428e4018154d7858b, type: 2} - first: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: LDLE - second: {fileID: 7400000, guid: 62e505b1fb41afe4a97b53dc31fefcd3, type: 2} + second: {fileID: 7400000, guid: 2c25950b2a5b69c45ab4a0fdf6aa78bf, type: 2} - first: type: UnityEngine:AnimationClip assembly: UnityEngine.AnimationModule name: SMOKE - second: {fileID: 7400000, guid: ab5fcaeabd6d1e14580e90104b29bb68, type: 2} + second: {fileID: 7400000, guid: 01585ebd1fc9b1a43943f597b0266f21, type: 2} serializedVersion: 2 userData: assetBundleName: @@ -110,7 +110,7 @@ ScriptedImporter: addSortingGroup: 1 addShadowCasters: 0 importFileNodeState: 1 - platformSettingsDirtyTick: 638773066588121022 + platformSettingsDirtyTick: 638840650791300671 textureAssetName: singleSpriteImportData: - name: diff --git a/Assets/Animation/天桥上佩佩动画导出.aseprite b/Assets/RawResources/Actor/天桥上佩佩动画导出.aseprite similarity index 92% rename from Assets/Animation/天桥上佩佩动画导出.aseprite rename to Assets/RawResources/Actor/天桥上佩佩动画导出.aseprite index ef50d7d0a6f5eb3bb25b2864c32acb6a54067022..a4cd701cd64f1deebcf3bc4117a78f0ab81e2d41 100644 GIT binary patch delta 862 zcmX|AKWp1i5LeQWb}94|l$O%c&?N>JV#tsO8N$^=_<@HU4aI^C76fWU1|y8?2oFMN zFqMaZG#KQeMi{CHLk03+kOxy`FgTx}-=n>$j~gEE9e4NpbKmZFZh!6U-hLkLz8il0 zG(35}`|Rz{TiWlvc%o^0+K#5}YMQ2>Lrq;38ED!Mv(E{$2-4JG%tRegb;x!@%?hxF7-J#kk z=??M@yB_ognb+hFdSrCTouRm6y#dt84}o(;6O=P9Hv+M?O}KUjcZovMGWM77W%d?P zoh*SU8a*HyAj(jPMtv$)>^hW-OkH(=U z6dMFfpn+nE^Z{;{3MoB?)uns}dyHrWL!ew!xn!$Dd`Ygfmt>K^K{Ud4$#w!OLnO3^ zu=->!pidEG;0&&KCFDv~1;Y9SwKK|v|H>%^AyWCy#89wj@WmY?E<(23luqGyz!$1= ztkMZ^J1jAQ!?k0m6WTtqFYZ}N5$HFhw`sfP z@{z3>;$f9z2eHStc+g|Ni}xR@x8>nWS%$q=vKs%-U%BmTfASv^-+%AF+5dXglDL2U H^b7t0E$DnO delta 69 zcmZqL$=I-&k*OhaB9j_3BLm|^L;r~mY)ouQ8=Jh?Cja787J0IFB@pp3Ffb@6Fab#* V_&@m$ryOJI slot.hasDefaultActor)) + { + InitActor(slot.defaultActorName, slot.slotName, slot.defaultActorType); + } } private void InitRefs() diff --git a/Assets/Scripts/SceneManagement/ActorKit/ActorSlot.cs b/Assets/Scripts/SceneManagement/ActorKit/ActorSlot.cs index 57aad43dc..d24a3c37f 100644 --- a/Assets/Scripts/SceneManagement/ActorKit/ActorSlot.cs +++ b/Assets/Scripts/SceneManagement/ActorKit/ActorSlot.cs @@ -10,5 +10,9 @@ namespace AibisDream [HideInInspector] public int sortingOrder; public Vector3 Position => transform.position; + + [Header("设置初始角色")] [SerializeField] public bool hasDefaultActor; + [SerializeField] public ActorType defaultActorType; + [SerializeField] public string defaultActorName; } } \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit.meta b/Assets/Scripts/SceneManagement/EnvironmentKit.meta new file mode 100644 index 000000000..4a19917a3 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 05c60ad3522046feb71377fb4c2dda93 +timeCreated: 1748421539 \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs b/Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs new file mode 100644 index 000000000..4a30ce438 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs @@ -0,0 +1,28 @@ +using UnityEngine; + +namespace AibisDream +{ + public abstract class AbsScenePart : MonoBehaviour + { + protected TimesOfDay curTime; + protected Weather curWeather; + + public abstract void Init(TimesOfDay time, Weather weather); + public abstract void OnTimeChange(TimesOfDay time); + public abstract void OnWeatherChange(Weather weather); + } + + public enum TimesOfDay + { + Day, + Evening, + Night + } + + public enum Weather + { + Sunny, + Rainy, + Snowy + } +} \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs.meta b/Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs.meta new file mode 100644 index 000000000..052b334d3 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/AbsScenePart.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 564063c8ed384a93a8f3fa85e305f4f9 +timeCreated: 1748421829 \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs b/Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs new file mode 100644 index 000000000..d740b6b93 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs @@ -0,0 +1,45 @@ +using System; +using System.Linq; +using UnityEngine; + +namespace AibisDream +{ + public class ActiveScenePart : AbsScenePart + { + [SerializeField] private ActivePartAsset[] activePartAssets; + + public override void Init(TimesOfDay time, Weather weather) + { + curWeather = weather; + OnTimeChange(time); + } + + public override void OnTimeChange(TimesOfDay time) + { + curTime = time; + + var timeArray = activePartAssets.Where(item => item.time == time).ToArray(); + if (timeArray.Length == 0) return; + var res = timeArray.DefaultIfEmpty(timeArray[0]).First(item => item.weather == curWeather); + gameObject.SetActive(res.active); + } + + public override void OnWeatherChange(Weather weather) + { + curWeather = weather; + + var weatherArray = activePartAssets.Where(item => item.weather == weather).ToArray(); + if (weatherArray.Length == 0) return; + var res = weatherArray.DefaultIfEmpty(weatherArray[0]).First(item => item.time == curTime); + gameObject.SetActive(res.active); + } + } + + [Serializable] + public struct ActivePartAsset + { + public TimesOfDay time; + public Weather weather; + public bool active; + } +} \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs.meta b/Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs.meta new file mode 100644 index 000000000..afb99fe02 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/ActiveScenePart.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e5c2ec05c92e467fa6d0c368b76ee7a0 +timeCreated: 1748426931 \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs b/Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs new file mode 100644 index 000000000..04f44cb8c --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs @@ -0,0 +1,46 @@ +using System; +using UnityEngine; + +namespace AibisDream +{ + [RequireComponent(typeof(Animator))] + public class AnimatorScenePart : AbsScenePart + { + private Animator _animator; + + public override void Init(TimesOfDay timesOfDay, Weather weather) + { + _animator = GetComponent(); + + curWeather = weather; + OnTimeChange(timesOfDay); + } + + public override void OnTimeChange(TimesOfDay time) + { + curTime = time; + ResetTriggers(); + _animator.SetTrigger(time.ToString()); + } + + public override void OnWeatherChange(Weather weather) + { + curWeather = weather; + ResetTriggers(); + _animator.SetTrigger(weather.ToString()); + } + + private void ResetTriggers() + { + foreach (var timeStr in Enum.GetNames(typeof(TimesOfDay))) + { + _animator.ResetTrigger(timeStr); + } + + foreach (var weatherStr in Enum.GetNames(typeof(Weather))) + { + _animator.ResetTrigger(weatherStr); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs.meta b/Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs.meta new file mode 100644 index 000000000..4a3556e2a --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/AnimatorScenePart.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bd3df946f8804e1f89c2228e449c0d91 +timeCreated: 1748424891 \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs b/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs new file mode 100644 index 000000000..94596a977 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs @@ -0,0 +1,67 @@ +using System; +using AibisDream.Kit; +using UnityEngine; +using Yarn.Unity; + +namespace AibisDream +{ + public class EnvironmentManager : Singleton + { + public TimesOfDay defaultTime; + public Weather defaultWeather; + + private AbsScenePart[] _absSceneParts; + + public override void OnSingletonInit() + { + _absSceneParts = GetComponentsInChildren(true); + foreach (var part in _absSceneParts) + { + part.Init(defaultTime, defaultWeather); + } + } + + public void SetTimeOfDay(string timeOfDay) + { + if (!Enum.TryParse(timeOfDay, out var time)) + { + Debug.Log($"{timeOfDay}是不存在的时间"); + return; + } + + foreach (var part in _absSceneParts) + { + part.OnTimeChange(time); + } + } + + public void SetWeather(string weatherType) + { + if (!Enum.TryParse(weatherType, out var weather)) + { + Debug.Log($"{weatherType}是不存在的时间"); + return; + } + + foreach (var part in _absSceneParts) + { + part.OnWeatherChange(weather); + } + } + } + + public static class EnvironmentYarnCommand + { + [YarnCommand("set_time_of_day")] + public static void SetTimeOfDay(string timeOfDay) + { + EnvironmentManager.Instance.SetTimeOfDay(timeOfDay); + } + + [YarnCommand("set_weather")] + public static void SetWeather(string weatherType) + { + EnvironmentManager.Instance.SetWeather(weatherType); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs.meta b/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs.meta new file mode 100644 index 000000000..2c9a510c5 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7ce5564f908241b58f1376a5a6eae55e +timeCreated: 1748421608 \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs b/Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs new file mode 100644 index 000000000..b3b44fabe --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs @@ -0,0 +1,49 @@ +using System; +using System.Linq; +using UnityEngine; + +namespace AibisDream +{ + [RequireComponent(typeof(SpriteRenderer))] + public class SpriteScenePart : AbsScenePart + { + [SerializeField] private SpritePartAsset[] spritePartAssets; + private SpriteRenderer _spriteRenderer; + + public override void Init(TimesOfDay time, Weather weather) + { + _spriteRenderer = GetComponent(); + + curWeather = weather; + OnTimeChange(time); + } + + public override void OnTimeChange(TimesOfDay time) + { + curTime = time; + + var timeArray = spritePartAssets.Where(item => item.time == time).ToArray(); + if (timeArray.Length == 0) return; + var res = timeArray.DefaultIfEmpty(timeArray[0]).First(item => item.weather == curWeather); + _spriteRenderer.sprite = res.sprite; + } + + public override void OnWeatherChange(Weather weather) + { + curWeather = weather; + + var weatherArray = spritePartAssets.Where(item => item.weather == weather).ToArray(); + if (weatherArray.Length == 0) return; + var res = weatherArray.DefaultIfEmpty(weatherArray[0]).First(item => item.time == curTime); + _spriteRenderer.sprite = res.sprite; + } + } + + [Serializable] + public struct SpritePartAsset + { + public TimesOfDay time; + public Weather weather; + public Sprite sprite; + } +} \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs.meta b/Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs.meta new file mode 100644 index 000000000..ee776b341 --- /dev/null +++ b/Assets/Scripts/SceneManagement/EnvironmentKit/SpriteScenePart.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fef000300a1b45f0ae3e23d3a3d9b81f +timeCreated: 1748421946 \ No newline at end of file diff --git a/Assets/Scripts/SceneManagement/Old/EnvironmentManager.cs b/Assets/Scripts/SceneManagement/Old/EnvironmentManager.cs index 078286dde..dbaf092f5 100644 --- a/Assets/Scripts/SceneManagement/Old/EnvironmentManager.cs +++ b/Assets/Scripts/SceneManagement/Old/EnvironmentManager.cs @@ -19,7 +19,7 @@ public class EnvironmentManager : MonoBehaviour SetWeather(false); } - [YarnCommand("set_time_of_day")] + // [YarnCommand("set_time_of_day")] public void SetTimeOfDayCommand(string timeOfDay) { timeOfDay = timeOfDay.ToLower(); @@ -68,7 +68,7 @@ public class EnvironmentManager : MonoBehaviour } } - [YarnCommand("set_weather")] + // [YarnCommand("set_weather")] public void SetWeatherCommand(string weatherType) { bool isSnowing = weatherType.ToLower() == "snow";