From efca87e9cdfcd4347f4bed7f1ae275813dc6c4bb Mon Sep 17 00:00:00 2001 From: SoulliesOfficial <77235731+SoulliesOfficial@users.noreply.github.com> Date: Sun, 2 Feb 2025 08:34:54 -0500 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=86=85=E5=AE=B9-7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Trail 完整Note --- Assets/Materials.meta | 8 + Assets/Materials/General.meta | 8 + .../General/DefaultLitTransparent.mat | 137 +++++++++++++ .../General/DefaultLitTransparent.mat.meta | 8 + Assets/Prefabs/BasePrefabsCollection.asset | 3 + .../DefaultTrackMaterial.mat | 0 .../DefaultTrackMaterial.mat.meta | 0 .../GameElements/DefaultTrailMaterial.mat | 171 +++++++++++++++++ .../DefaultTrailMaterial.mat.meta | 8 + Assets/Prefabs/GameElements/Trail.prefab | 180 ++++++++++++++++++ Assets/Prefabs/GameElements/Trail.prefab.meta | 7 + Assets/Scenes/SampleScene.unity | 4 + Assets/Scripts/Animations/AnimationBase.cs | 32 +--- .../Animations/Color/BaseColorChange.cs | 11 +- .../Animations/Color/EmissionColorChange.cs | 28 +-- .../Animations/Track/TrackTotalTimeChange.cs | 12 +- .../Animations/Transform/Displacement.cs | 11 +- Assets/Scripts/Animations/Transform/LookAt.cs | 24 ++- Assets/Scripts/Animations/Transform/Scale.cs | 11 +- Assets/Scripts/Animations/Transform/Swirl.cs | 12 +- Assets/Scripts/Base/BaseElement.cs | 160 ++++++++++++---- .../Scripts/Base/FlexibleTypes/FlexibleInt.cs | 81 ++++++++ .../Base/FlexibleTypes/FlexibleInt.cs.meta | 11 ++ .../TimeDurationSubmodule.cs | 26 +++ .../Base/Manager/BasePrefabsCollection.cs | 7 +- Assets/Scripts/Base/Manager/EditorManager.cs | 42 ++-- Assets/Scripts/Console/EditorConsole.cs | 2 +- Assets/Scripts/GameElements/ElementFolder.cs | 27 --- .../Scripts/GameElements/ElementFolder.meta | 8 + .../ElementFolder/ElementFolder.cs | 64 +++++++ .../{ => ElementFolder}/ElementFolder.cs.meta | 0 .../EnvironmentObjects/EnvironmentObject.cs | 8 +- .../GameElements/GameCamera/GameCamera.cs | 5 +- Assets/Scripts/GameElements/Notes/Flick.cs | 46 ++++- Assets/Scripts/GameElements/Notes/NoteBase.cs | 38 +++- .../Notes/NoteVisual/NoteVisualBase.cs | 6 - Assets/Scripts/GameElements/Notes/Stay.cs | 45 ++++- Assets/Scripts/GameElements/Notes/Tap.cs | 45 ++++- .../Scripts/GameElements/SubstantialObject.cs | 9 +- Assets/Scripts/GameElements/Track/PathNode.cs | 7 +- Assets/Scripts/GameElements/Track/Track.cs | 36 +++- .../Track/TrackPoints/CrossTrackPoint.cs | 59 ++++++ .../Track/TrackPoints/CrossTrackPoint.cs.meta | 11 ++ .../Track/TrackPoints/TrackHeadPoint.cs | 20 +- .../Track/TrackPoints/TrackPercentPoint.cs | 21 +- Assets/Scripts/GameElements/Track/Trail.cs | 32 ++++ .../Scripts/GameElements/Track/Trail.cs.meta | 11 ++ Assets/StreamingAssets/ThemeBundles/OSX/OSX | Bin 1025 -> 1025 bytes .../ThemeBundles/OSX/OSX.manifest | 2 +- Assets/StreamingAssets/ThemeBundles/OSX/basic | Bin 78557 -> 118821 bytes .../ThemeBundles/OSX/basic.manifest | 8 +- .../Basic/Prefabs/BasicNoteTap3D.prefab | 3 +- .../Scripts/NoteVisual/BasicNoteBadExpand.cs | 54 ++++++ .../NoteVisual/BasicNoteBadExpand.cs.meta | 11 ++ .../Scripts/NoteVisual/BasicNoteGoodBurst.cs | 58 ++++++ .../NoteVisual/BasicNoteGoodBurst.cs.meta | 11 ++ .../Scripts/NoteVisual/BasicNoteMissPale.cs | 55 ++++++ .../NoteVisual/BasicNoteMissPale.cs.meta | 11 ++ .../NoteVisual/BasicNotePerfectBurst.cs | 4 +- .../Scripts/NoteVisual/BasicNoteVisual.cs | 12 +- 60 files changed, 1503 insertions(+), 228 deletions(-) create mode 100644 Assets/Materials.meta create mode 100644 Assets/Materials/General.meta create mode 100644 Assets/Materials/General/DefaultLitTransparent.mat create mode 100644 Assets/Materials/General/DefaultLitTransparent.mat.meta rename Assets/Prefabs/{ => GameElements}/DefaultTrackMaterial.mat (100%) rename Assets/Prefabs/{ => GameElements}/DefaultTrackMaterial.mat.meta (100%) create mode 100644 Assets/Prefabs/GameElements/DefaultTrailMaterial.mat create mode 100644 Assets/Prefabs/GameElements/DefaultTrailMaterial.mat.meta create mode 100644 Assets/Prefabs/GameElements/Trail.prefab create mode 100644 Assets/Prefabs/GameElements/Trail.prefab.meta create mode 100644 Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs create mode 100644 Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs.meta delete mode 100644 Assets/Scripts/GameElements/ElementFolder.cs create mode 100644 Assets/Scripts/GameElements/ElementFolder.meta create mode 100644 Assets/Scripts/GameElements/ElementFolder/ElementFolder.cs rename Assets/Scripts/GameElements/{ => ElementFolder}/ElementFolder.cs.meta (100%) create mode 100644 Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs create mode 100644 Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs.meta create mode 100644 Assets/Scripts/GameElements/Track/Trail.cs create mode 100644 Assets/Scripts/GameElements/Track/Trail.cs.meta create mode 100644 Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs create mode 100644 Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs.meta create mode 100644 Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs create mode 100644 Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs.meta create mode 100644 Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs create mode 100644 Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs.meta diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 00000000..80d56471 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b22677b3a59345f0bef02c38b700728 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/General.meta b/Assets/Materials/General.meta new file mode 100644 index 00000000..5edc4816 --- /dev/null +++ b/Assets/Materials/General.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0cc37bae489c47698f8eb9245ced60a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/General/DefaultLitTransparent.mat b/Assets/Materials/General/DefaultLitTransparent.mat new file mode 100644 index 00000000..de15ef7a --- /dev/null +++ b/Assets/Materials/General/DefaultLitTransparent.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DefaultLitTransparent + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &5815930170147133817 +MonoBehaviour: + m_ObjectHideFlags: 11 + 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Materials/General/DefaultLitTransparent.mat.meta b/Assets/Materials/General/DefaultLitTransparent.mat.meta new file mode 100644 index 00000000..af86affd --- /dev/null +++ b/Assets/Materials/General/DefaultLitTransparent.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b39306d2c39754d0aafabe8570b8e640 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/BasePrefabsCollection.asset b/Assets/Prefabs/BasePrefabsCollection.asset index a95477cd..fae4c8d6 100644 --- a/Assets/Prefabs/BasePrefabsCollection.asset +++ b/Assets/Prefabs/BasePrefabsCollection.asset @@ -31,6 +31,9 @@ MonoBehaviour: type: 3} defaultTrackMaterial: {fileID: 2100000, guid: 2424431729f1047c4b42f971c2cdd2b6, type: 2} + trail: {fileID: 4801226466239889825, guid: a21d9cdd0e3454527bec5f2b0e9a9cae, type: 3} + defaultTrailMaterial: {fileID: 2100000, guid: 8af6dd7f0725540388b84a4697118bb9, + type: 2} tapNote: {fileID: 8182686472733940155, guid: 9b2da5f6faa9c4d2abe557fc8f79f806, type: 3} stayNote: {fileID: 0} holdNote: {fileID: 0} diff --git a/Assets/Prefabs/DefaultTrackMaterial.mat b/Assets/Prefabs/GameElements/DefaultTrackMaterial.mat similarity index 100% rename from Assets/Prefabs/DefaultTrackMaterial.mat rename to Assets/Prefabs/GameElements/DefaultTrackMaterial.mat diff --git a/Assets/Prefabs/DefaultTrackMaterial.mat.meta b/Assets/Prefabs/GameElements/DefaultTrackMaterial.mat.meta similarity index 100% rename from Assets/Prefabs/DefaultTrackMaterial.mat.meta rename to Assets/Prefabs/GameElements/DefaultTrackMaterial.mat.meta diff --git a/Assets/Prefabs/GameElements/DefaultTrailMaterial.mat b/Assets/Prefabs/GameElements/DefaultTrailMaterial.mat new file mode 100644 index 00000000..910d7b62 --- /dev/null +++ b/Assets/Prefabs/GameElements/DefaultTrailMaterial.mat @@ -0,0 +1,171 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DefaultTrailMaterial + m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - GRABPASS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 + - _EnvironmentReflections: 1 + - _FlipbookMode: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _LightingEnabled: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &2523386628062252728 +MonoBehaviour: + m_ObjectHideFlags: 11 + 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Prefabs/GameElements/DefaultTrailMaterial.mat.meta b/Assets/Prefabs/GameElements/DefaultTrailMaterial.mat.meta new file mode 100644 index 00000000..b02760b6 --- /dev/null +++ b/Assets/Prefabs/GameElements/DefaultTrailMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8af6dd7f0725540388b84a4697118bb9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/GameElements/Trail.prefab b/Assets/Prefabs/GameElements/Trail.prefab new file mode 100644 index 00000000..a6d3a6e9 --- /dev/null +++ b/Assets/Prefabs/GameElements/Trail.prefab @@ -0,0 +1,180 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4801226466239889825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5989318717494774921} + - component: {fileID: 4874969544181214436} + - component: {fileID: 7085906370378666250} + m_Layer: 0 + m_Name: Trail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5989318717494774921 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4801226466239889825} + 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: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4874969544181214436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4801226466239889825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 48120e902e0734a51a10b8b4c0229afa, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: elementGuid + Entry: 2 + Data: 00000000000000000000000000000000 + - Name: timeDurationSubmodule + Entry: 6 + Data: + - Name: transformSubmodule + Entry: 6 + Data: + - Name: colorSubmodule + Entry: 6 + Data: + elementName: + serialNumber: 0 + tags: [] + parentElement: {fileID: 0} + childElementList: [] + trailRenderer: {fileID: 7085906370378666250} + renderMaterial: {fileID: 0} + visibleTimeLength: 0 +--- !u!96 &7085906370378666250 +TrailRenderer: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4801226466239889825} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8af6dd7f0725540388b84a4697118bb9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 5 + m_PreviewTimeScale: 1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_MaskInteraction: 0 + m_Autodestruct: 0 + m_Emitting: 1 + m_ApplyActiveColorSpace: 1 diff --git a/Assets/Prefabs/GameElements/Trail.prefab.meta b/Assets/Prefabs/GameElements/Trail.prefab.meta new file mode 100644 index 00000000..980104de --- /dev/null +++ b/Assets/Prefabs/GameElements/Trail.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a21d9cdd0e3454527bec5f2b0e9a9cae +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 43896a49..1a787105 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -361,6 +361,7 @@ MonoBehaviour: Data: elementName: serialNumber: 0 + tags: [] parentElement: {fileID: 0} childElementList: [] camera: {fileID: 330585545} @@ -1244,8 +1245,10 @@ MonoBehaviour: Data: elementName: serialNumber: 0 + tags: [] parentElement: {fileID: 0} childElementList: [] + trackList: [] --- !u!4 &759707325 Transform: m_ObjectHideFlags: 0 @@ -1631,6 +1634,7 @@ MonoBehaviour: - Name: Entry: 8 Data: + currentJudgeType: 0 basePrefabs: {fileID: 11400000, guid: 266f4a39c512c46eea7e44336e4fc600, type: 2} elementList: [] --- !u!4 &1197505579 diff --git a/Assets/Scripts/Animations/AnimationBase.cs b/Assets/Scripts/Animations/AnimationBase.cs index 940e534b..41a3d857 100644 --- a/Assets/Scripts/Animations/AnimationBase.cs +++ b/Assets/Scripts/Animations/AnimationBase.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -12,35 +13,10 @@ namespace Ichni.RhythmGame public FlexibleReturnType animationReturnType; //public ICanHaveAnimation target; - public void NewInitialize(string elementName, BaseElement targetObject) + public override void Initialize(string elementName, Guid id, List tags) { - base.Initialize(elementName); - this.targetObject = targetObject; - SetParent(this.targetObject); - } - - public virtual void SetTimeDuration(params FlexibleFloat[] flexibleFloats) - { - List startTimes = new List(); - List endTimes = new List(); - - foreach (FlexibleFloat flexibleFloat in flexibleFloats) - { - flexibleFloat.Sort(); - - if (flexibleFloat.animations.Count > 0) - { - startTimes.Add(flexibleFloat.animations[0].startTime); - endTimes.Add(flexibleFloat.animations[^1].endTime); - } - } - - timeDurationSubmodule = new TimeDurationSubmodule(this, startTimes.Min(), endTimes.Max()); - } - - public virtual void SetTimeDuration(float startTime, float endTime) - { - timeDurationSubmodule = new TimeDurationSubmodule(this, startTime, endTime); + base.Initialize(elementName, id, tags); + timeDurationSubmodule = new TimeDurationSubmodule(this); } protected abstract void UpdateAnimation(float songTime); diff --git a/Assets/Scripts/Animations/Color/BaseColorChange.cs b/Assets/Scripts/Animations/Color/BaseColorChange.cs index 4c950bd7..4e256780 100644 --- a/Assets/Scripts/Animations/Color/BaseColorChange.cs +++ b/Assets/Scripts/Animations/Color/BaseColorChange.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -10,12 +11,15 @@ namespace Ichni.RhythmGame public ColorSubmodule targetColorSubmodule; public FlexibleFloat colorR, colorG, colorB, colorA; - public static BaseColorChange GenerateElement(string elementName, BaseElement targetObject, + public static BaseColorChange GenerateElement(string elementName, Guid id, + List tags, BaseElement targetObject, FlexibleFloat colorR, FlexibleFloat colorG, FlexibleFloat colorB, FlexibleFloat colorA) { BaseColorChange baseColorChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - baseColorChange.NewInitialize(elementName, targetObject); + baseColorChange.Initialize(elementName, id, tags); + baseColorChange.targetObject = targetObject; + baseColorChange.colorR = colorR; baseColorChange.colorG = colorG; baseColorChange.colorB = colorB; @@ -31,7 +35,8 @@ namespace Ichni.RhythmGame throw new System.Exception("Target object does not have a ColorSubmodule"); } - baseColorChange.SetTimeDuration(colorR, colorG, colorB, colorA); + baseColorChange.SetParent(targetObject); + baseColorChange.timeDurationSubmodule.SetDuration(colorR, colorG, colorB, colorA); return baseColorChange; } diff --git a/Assets/Scripts/Animations/Color/EmissionColorChange.cs b/Assets/Scripts/Animations/Color/EmissionColorChange.cs index d1173394..fa104a85 100644 --- a/Assets/Scripts/Animations/Color/EmissionColorChange.cs +++ b/Assets/Scripts/Animations/Color/EmissionColorChange.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -10,30 +11,35 @@ namespace Ichni.RhythmGame public ColorSubmodule targetColorSubmodule; public FlexibleFloat colorR, colorG, colorB, colorI; - public static EmissionColorChange GenerateElement(string elementName, BaseElement targetObject, + public static EmissionColorChange GenerateElement(string elementName, Guid id, + List tags, BaseElement targetObject, FlexibleFloat colorR, FlexibleFloat colorG, FlexibleFloat colorB, FlexibleFloat colorI) { - EmissionColorChange baseColorChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + EmissionColorChange emissionColorChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - baseColorChange.NewInitialize(elementName, targetObject); - baseColorChange.colorR = colorR; - baseColorChange.colorG = colorG; - baseColorChange.colorB = colorB; - baseColorChange.colorI = colorI; - baseColorChange.animationReturnType = FlexibleReturnType.Before; + emissionColorChange.Initialize(elementName, id, tags); + emissionColorChange.targetObject = targetObject; + + emissionColorChange.colorR = colorR; + emissionColorChange.colorG = colorG; + emissionColorChange.colorB = colorB; + emissionColorChange.colorI = colorI; + emissionColorChange.animationReturnType = FlexibleReturnType.Before; if (targetObject.colorSubmodule != null) { - baseColorChange.targetColorSubmodule = targetObject.colorSubmodule; + emissionColorChange.targetColorSubmodule = targetObject.colorSubmodule; } else { throw new System.Exception("Target object does not have a ColorSubmodule"); } - baseColorChange.SetTimeDuration(colorR, colorG, colorB, colorI); + emissionColorChange.SetParent(targetObject); + + emissionColorChange.timeDurationSubmodule.SetDuration(colorR, colorG, colorB, colorI); - return baseColorChange; + return emissionColorChange; } protected override void UpdateAnimation(float songTime) diff --git a/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs index 7803b6eb..87560c34 100644 --- a/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs +++ b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -10,10 +11,13 @@ namespace Ichni.RhythmGame public FlexibleFloat totalTime; public TrackTimeSubmoduleStatic targetTrackTimeSubmoduleStatic; - public static TrackTotalTimeChange GenerateElement(string elementName, Track targetTrack, FlexibleFloat totalTime) + public static TrackTotalTimeChange GenerateElement(string elementName, Guid id, + List tags, Track targetTrack, FlexibleFloat totalTime) { TrackTotalTimeChange trackTotalTimeChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - trackTotalTimeChange.NewInitialize(elementName, targetTrack); + trackTotalTimeChange.Initialize(elementName, id, tags); + + trackTotalTimeChange.targetObject = targetTrack; if (targetTrack.trackTimeSubmodule is TrackTimeSubmoduleStatic submoduleStatic) { @@ -26,7 +30,9 @@ namespace Ichni.RhythmGame trackTotalTimeChange.totalTime = totalTime; trackTotalTimeChange.animationReturnType = FlexibleReturnType.Before; - trackTotalTimeChange.SetTimeDuration(totalTime); + trackTotalTimeChange.timeDurationSubmodule.SetDuration(totalTime); + + trackTotalTimeChange.SetParent(targetTrack); return trackTotalTimeChange; } diff --git a/Assets/Scripts/Animations/Transform/Displacement.cs b/Assets/Scripts/Animations/Transform/Displacement.cs index 59aab96a..d67d0e55 100644 --- a/Assets/Scripts/Animations/Transform/Displacement.cs +++ b/Assets/Scripts/Animations/Transform/Displacement.cs @@ -15,12 +15,15 @@ namespace Ichni.RhythmGame public TransformSubmodule targetTransformSubmodule; public FlexibleFloat positionX, positionY, positionZ; - public static Displacement GenerateElement(string elementName, BaseElement targetObject, + public static Displacement GenerateElement(string elementName, Guid id, + List tags, BaseElement targetObject, FlexibleFloat positionX, FlexibleFloat positionY, FlexibleFloat positionZ) { Displacement displacement = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - displacement.NewInitialize(elementName, targetObject); + displacement.Initialize(elementName, id, tags); + + displacement.targetObject = targetObject; displacement.positionX = positionX; displacement.positionY = positionY; @@ -36,7 +39,9 @@ namespace Ichni.RhythmGame throw new System.Exception("Target object does not have a TransformSubmodule"); } - displacement.SetTimeDuration(positionX, positionY, positionZ); + displacement.SetParent(targetObject); + + displacement.timeDurationSubmodule.SetDuration(positionX, positionY, positionZ); return displacement; } diff --git a/Assets/Scripts/Animations/Transform/LookAt.cs b/Assets/Scripts/Animations/Transform/LookAt.cs index 5ee0075e..6a5150fb 100644 --- a/Assets/Scripts/Animations/Transform/LookAt.cs +++ b/Assets/Scripts/Animations/Transform/LookAt.cs @@ -16,29 +16,33 @@ namespace Ichni.RhythmGame public BaseElement lookAtObject; public FlexibleBool enabling; - public static LookAt GenerateElement(string elementName, BaseElement targetObject, + public static LookAt GenerateElement(string elementName, Guid id, + List tags, BaseElement targetObject, BaseElement lookAtTarget, FlexibleBool enabling) { - LookAt swirl = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + LookAt look = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - swirl.NewInitialize(elementName, targetObject); - - swirl.lookAtObject = lookAtTarget; - swirl.enabling = enabling; - swirl.animationReturnType = FlexibleReturnType.Before; + look.Initialize(elementName, id, tags); + + look.targetObject = targetObject; + look.lookAtObject = lookAtTarget; + look.enabling = enabling; + look.animationReturnType = FlexibleReturnType.Before; if (targetObject.transformSubmodule != null) { - swirl.targetTransformSubmodule = targetObject.transformSubmodule; + look.targetTransformSubmodule = targetObject.transformSubmodule; } else { throw new System.Exception("Target object does not have a TransformSubmodule"); } + + look.SetParent(targetObject); - swirl.SetTimeDuration(-999, 999); //TODO: 换为(-delay, songLength) + look.timeDurationSubmodule.SetDuration(-999f, 999f); //TODO: 换为(-delay, songLength) - return swirl; + return look; } private void Start() diff --git a/Assets/Scripts/Animations/Transform/Scale.cs b/Assets/Scripts/Animations/Transform/Scale.cs index 08be57a2..3ce64f44 100644 --- a/Assets/Scripts/Animations/Transform/Scale.cs +++ b/Assets/Scripts/Animations/Transform/Scale.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -9,12 +10,15 @@ namespace Ichni.RhythmGame public TransformSubmodule targetTransformSubmodule; public FlexibleFloat scaleX, scaleY, scaleZ; - public static Scale GenerateElement(string elementName, BaseElement targetObject, + public static Scale GenerateElement(string elementName, Guid id, + List tags, BaseElement targetObject, FlexibleFloat scaleX, FlexibleFloat scaleY, FlexibleFloat scaleZ) { Scale scale = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - scale.NewInitialize(elementName, targetObject); + scale.Initialize(elementName, id, tags); + + scale.targetObject = targetObject; scale.scaleX = scaleX; scale.scaleY = scaleY; @@ -30,7 +34,8 @@ namespace Ichni.RhythmGame throw new System.Exception("Target object does not have a TransformSubmodule"); } - scale.SetTimeDuration(scaleX, scaleY, scaleZ); + scale.SetParent(targetObject); + scale.timeDurationSubmodule.SetDuration(scaleX, scaleY, scaleZ); return scale; } diff --git a/Assets/Scripts/Animations/Transform/Swirl.cs b/Assets/Scripts/Animations/Transform/Swirl.cs index 3ce086f2..1f3614c0 100644 --- a/Assets/Scripts/Animations/Transform/Swirl.cs +++ b/Assets/Scripts/Animations/Transform/Swirl.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -10,12 +11,15 @@ namespace Ichni.RhythmGame public TransformSubmodule targetTransformSubmodule; public FlexibleFloat eulerAngleX, eulerAngleY, eulerAngleZ; - public static Swirl GenerateElement(string elementName, BaseElement targetObject, + public static Swirl GenerateElement(string elementName, Guid id, + List tags, BaseElement targetObject, FlexibleFloat eulerAngleX, FlexibleFloat eulerAngleY, FlexibleFloat eulerAngleZ) { Swirl swirl = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); - swirl.NewInitialize(elementName, targetObject); + swirl.Initialize(elementName, id, tags); + + swirl.targetObject = targetObject; swirl.eulerAngleX = eulerAngleX; swirl.eulerAngleY = eulerAngleY; @@ -31,7 +35,9 @@ namespace Ichni.RhythmGame throw new System.Exception("Target object does not have a TransformSubmodule"); } - swirl.SetTimeDuration(eulerAngleX, eulerAngleY, eulerAngleZ); + swirl.SetParent(targetObject); + + swirl.timeDurationSubmodule.SetDuration(eulerAngleX, eulerAngleY, eulerAngleZ); return swirl; } diff --git a/Assets/Scripts/Base/BaseElement.cs b/Assets/Scripts/Base/BaseElement.cs index 4fb7bbe6..d57d8f89 100644 --- a/Assets/Scripts/Base/BaseElement.cs +++ b/Assets/Scripts/Base/BaseElement.cs @@ -2,6 +2,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using Ichni.RhythmGame.Beatmap; using Sirenix.OdinInspector; using UniRx; using UnityEngine; @@ -13,9 +14,6 @@ namespace Ichni.RhythmGame { //物体名 public string elementName; - - //序列号 - public int serialNumber; //标识 GUID public Guid elementGuid; @@ -24,14 +22,14 @@ namespace Ichni.RhythmGame public List tags; //存档 - //public BaseElement_BM matchedBM; + public BaseElement_BM matchedBM; //父游戏物体 public BaseElement parentElement; //子物体列表 public List childElementList = new List(); - + //次级模块 public TimeDurationSubmodule timeDurationSubmodule; public TransformSubmodule transformSubmodule; @@ -41,10 +39,11 @@ namespace Ichni.RhythmGame /// 首次初始化 /// /// 物体名 - public virtual void Initialize(string name) + public virtual void Initialize(string name, Guid elementGuid, List tags) { this.elementName = name; - this.elementGuid = Guid.NewGuid(); + this.elementGuid = elementGuid; + this.tags = tags; EditorManager.instance.elementList.Add(this); //GameManager.beatMapContainer.beatMapElementList.Add(this); //serialNumber = totalSerialNumber++; @@ -56,7 +55,7 @@ namespace Ichni.RhythmGame /// public virtual void AfterInitialize() { - + } /// @@ -64,15 +63,7 @@ namespace Ichni.RhythmGame /// public virtual void Refresh() { - - } - /// - /// 当物体被删除时执行的方法 - /// - public virtual void OnDelete() - { - } /// @@ -88,25 +79,8 @@ namespace Ichni.RhythmGame transform.SetParent(parentElement.transform); } } - - public virtual void Delete() - { - if (this.childElementList != null) - { - for (int i = 0; i < childElementList.Count; i++) - { - childElementList[i].Delete(); //删除子GameElement、 - } - } - - OnDelete(); - - EditorManager.instance.elementList.Remove(this); //从保存列表中剔除 - this.parentElement.childElementList.Remove(this); - Destroy(gameObject); //销毁 - } } - + public abstract partial class BaseElement { private void Start() @@ -116,15 +90,14 @@ namespace Ichni.RhythmGame public virtual void SetTimeDuration() { - + } - - [Button("Apply Time Duration From Child")] + public void ApplyTimeDuration() { childElementList.ForEach(x => x.ApplyTimeDuration()); - - timeDurationSubmodule?.SetDurationFromChildren(childElementList.Select(x=>x.timeDurationSubmodule).ToList()); + timeDurationSubmodule?.SetDurationFromChildren(childElementList.Select(x => x.timeDurationSubmodule) + .ToList()); } /// @@ -147,11 +120,12 @@ namespace Ichni.RhythmGame { offset += scaleOffset; } + transformSubmodule.currentScale = transformSubmodule.originalScale + offset; transform.localScale = transformSubmodule.currentScale; transformSubmodule.scaleDirtyMark = false; } - + if (transformSubmodule.eulerAnglesDirtyMark) { Vector3 offset = Vector3.zero; @@ -159,11 +133,12 @@ namespace Ichni.RhythmGame { offset += eulerOffset; } + transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + offset; transform.localEulerAngles = transformSubmodule.currentEulerAngles; transformSubmodule.eulerAnglesDirtyMark = false; } - + if (transformSubmodule.positionDirtyMark) { Vector3 offset = Vector3.zero; @@ -171,15 +146,116 @@ namespace Ichni.RhythmGame { offset += posOffset; } + transformSubmodule.currentPosition = transformSubmodule.originalPosition + offset; transform.localPosition = transformSubmodule.currentPosition; transformSubmodule.positionDirtyMark = false; } - + transformSubmodule.scaleOffset.Clear(); transformSubmodule.eulerAnglesOffset.Clear(); transformSubmodule.positionOffset.Clear(); }).AddTo(gameObject); } } + + public abstract partial class BaseElement //存档,删除,复制,粘贴 + { + /// + /// 用于生成存档 + /// + public abstract void SaveBM(); + + /// + /// 当物体被删除时执行的方法 + /// + public virtual void OnDelete() + { + + } + + + /// + /// 删除物体,包括所有子物体 + /// + [Button("Delete")] + public virtual void Delete() + { + if (this.childElementList != null) + { + for (int i = 0; i < childElementList.Count; i++) + { + childElementList[i].Delete(); //删除子GameElement、 + } + } + + OnDelete(); + +#if UNITY_EDITOR + Debug.Log("Delete " + elementName + "(" + elementGuid + ")"); +#endif + + EditorManager.instance.elementList.Remove(this); //从保存列表中剔除 + this.parentElement.childElementList.Remove(this); + Destroy(gameObject); //销毁 + } + } + + + namespace Beatmap + { + [System.Serializable] + public abstract class BaseElement_BM + { + [System.NonSerialized] public static Dictionary identifier; //存档类的标识符 + + [System.NonSerialized] public BaseElement matchedElement; //存档类对应的游戏物体 + public string elementName; + public List tags; + public Guid elementGuid; + public Guid attachedElementGuid; + + public BaseElement_BM() + { + + } + + public BaseElement_BM(string elementName, Guid elementGuid, List tags, BaseElement_BM attachedElement) + { + this.elementName = elementName; + this.elementGuid = elementGuid; + this.tags = tags; + + this.attachedElementGuid = attachedElement?.elementGuid ?? Guid.Empty; + + identifier.TryAdd(this.elementGuid, this); + } + + public static BaseElement_BM GetElementBM(Guid id) + { + if (identifier.TryGetValue(id, out BaseElement_BM element_BM)) + { + return element_BM; + } + + Debug.LogAssertion("Element not found or do not have id"); + return null; + } + + public static BaseElement GetElement(Guid id) + { + return GetElementBM(id)?.matchedElement; + } + + /// + /// 用于从存档中生成物体 + /// + public abstract void ExecuteBM(); + + /// + /// 用于复制物体 + /// + public abstract BaseElement DuplicateBM(BaseElement parent); + } + } } \ No newline at end of file diff --git a/Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs b/Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs new file mode 100644 index 00000000..6e84e192 --- /dev/null +++ b/Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs @@ -0,0 +1,81 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Ichni +{ + [System.Serializable] + public class AnimatedInt + { + public int value; //值 + public float time; + + public AnimatedInt() + { + } + + public AnimatedInt(int value, float time) + { + this.value = value; + this.time = time; + } + } + + [System.Serializable] + public class FlexibleInt + { + public int value; + public List animations; + + public FlexibleInt() + { + animations = new List(); + } + + public FlexibleInt(List anim) + { + this.animations = anim; + } + + public void Add(AnimatedInt animatedInt) + { + animations.Add(animatedInt); + } + + /// + /// 在动画脚本的Update中更新Int Value + /// + /// + public FlexibleReturnType UpdateFlexibleInt(float nowTime) + { + AnimatedInt nowAnimatedInt = GetAnimatedInt(nowTime); //获取当前时间点对应的AnimatedInt + value = nowAnimatedInt.value; //更新value + return FlexibleReturnType.MiddleExecuting; + } + + /// + /// 获取songTime对应的AnimatedInt的时间段 + /// + /// + /// 返回距离当前时间最近的前一个AnimatedInt + AnimatedInt GetAnimatedInt(float nowTime) + { + for (int i = 0; i < animations.Count; i++) + { + if (nowTime < animations[i].time) + { + if (i == 0) + { + return animations[i]; + } + else + { + return animations[i - 1]; + } + } + } + + return new AnimatedInt(0, 0); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs.meta b/Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs.meta new file mode 100644 index 00000000..0fe4f934 --- /dev/null +++ b/Assets/Scripts/Base/FlexibleTypes/FlexibleInt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 824c05113512f41048fc8189760bd7cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs index 102825b1..7864f3e6 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs @@ -29,6 +29,32 @@ namespace Ichni.RhythmGame { return time >= startTime - offset && time <= endTime + offset; } + + public void SetDuration(float startTime, float endTime) + { + this.startTime = startTime; + this.endTime = endTime; + } + + public void SetDuration(params FlexibleFloat[] flexibleFloats) + { + List startTimes = new List(); + List endTimes = new List(); + + foreach (FlexibleFloat flexibleFloat in flexibleFloats) + { + flexibleFloat.Sort(); + + if (flexibleFloat.animations.Count > 0) + { + startTimes.Add(flexibleFloat.animations[0].startTime); + endTimes.Add(flexibleFloat.animations[^1].endTime); + } + } + + startTime = startTimes.Min(); + endTime = endTimes.Max(); + } public void SetDurationFromChildren(List children) { diff --git a/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs b/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs index 64e0fda2..5bf82be1 100644 --- a/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs +++ b/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs @@ -15,6 +15,10 @@ public class BasePrefabsCollection : SerializedScriptableObject public GameObject track; public GameObject pathNode; public Material defaultTrackMaterial; + + [Title("Trail相关")] + public GameObject trail; + public Material defaultTrailMaterial; [Title("Note 相关")] public GameObject tapNote; @@ -27,8 +31,7 @@ public class BasePrefabsCollection : SerializedScriptableObject public AudioClip holdNoteLoopSound; public AudioClip holdNoteEndSound; public AudioClip flickNoteSound; - - + [Title("Effect相关")] public GameObject bloomShake; } diff --git a/Assets/Scripts/Base/Manager/EditorManager.cs b/Assets/Scripts/Base/Manager/EditorManager.cs index b36938db..44b817bf 100644 --- a/Assets/Scripts/Base/Manager/EditorManager.cs +++ b/Assets/Scripts/Base/Manager/EditorManager.cs @@ -11,10 +11,11 @@ namespace Ichni public class EditorManager : SerializedMonoBehaviour { public static EditorManager instance; - - public SongModule songModule; - public BasePrefabsCollection basePrefabs; + public SongModule songModule; + public NoteBase.NoteJudgeType currentJudgeType; + public BasePrefabsCollection basePrefabs; + public List elementList = new List(); private void Awake() @@ -24,19 +25,28 @@ namespace Ichni private void Start() { - var f0 = ElementFolder.GenerateElement("Folder", null); - var dis0 = Displacement.GenerateElement("Displacement-0", f0, - new FlexibleFloat(), - new FlexibleFloat(new List(){new (0,2,0,2, AnimationCurveType.Linear)}), - new FlexibleFloat()); - var t0 = Track.GenerateElement("Track", f0, Vector3.left * 5f); - t0.trackPathSubmodule = new TrackPathSubmodule(t0, Track.TrackSpaceType.Linear, Track.TrackSamplingType.TimeDistributed, false); - t0.trackTimeSubmodule = new TrackTimeSubmoduleMovable(t0, 0, 2, 1, AnimationCurveType.Linear); - t0.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(t0); - var p0 = PathNode.GenerateElement("PathNode-0", t0, 0, new Vector3(-5,5,10), Vector3.forward, 1, Color.white); - var p1 = PathNode.GenerateElement("PathNode-1", t0, 1, new Vector3(5,-5,10), Vector3.forward, 0, Color.red); - var n0 = Tap.GenerateElement("Note-0", 1f, t0); - var n0v = BasicNoteVisual.GenerateElement("Note-0-V", "basic", "BasicNoteTap3D", Vector3.zero, Vector3.zero, Vector3.one, n0); + //currentJudgeType = NoteBase.NoteJudgeType.Perfect; + + var f0 = ElementFolder.GenerateElement("Folder", Guid.NewGuid(), new List(), null); + // var dis0 = Displacement.GenerateElement("Displacement-0", f0, + // new FlexibleFloat(), + // new FlexibleFloat(new List(){new (0,2,0,2, AnimationCurveType.Linear)}), + // new FlexibleFloat()); + var t0 = Track.GenerateElement("Track", Guid.NewGuid(), new List(), f0, Vector3.left * 5f); + t0.trackPathSubmodule = new TrackPathSubmodule(t0, Track.TrackSpaceType.Linear, + Track.TrackSamplingType.TimeDistributed, false); + t0.trackTimeSubmodule = new TrackTimeSubmoduleMovable(t0, 0, 2, 1, AnimationCurveType.OutQuad); + var pp0 = TrackPercentPoint.GenerateElement("TrackPercentPoint-0", Guid.NewGuid(), new List(), t0, + new FlexibleFloat(new List() { new(0, 2, 0, 1, AnimationCurveType.OutQuad) })); + var tr0 = Trail.GenerateElement("Trail-0", Guid.NewGuid(), new List(), pp0, 5); + // t0.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(t0); + var p0 = PathNode.GenerateElement("PathNode-0", Guid.NewGuid(), new List(), t0, + new Vector3(-5, 5, 10), Vector3.forward, 1, Color.white); + var p1 = PathNode.GenerateElement("PathNode-1", Guid.NewGuid(), new List(), t0, + new Vector3(5, -5, 10), Vector3.forward, 0, Color.red); + var n0 = Tap.GenerateElement("Note-0", Guid.NewGuid(), new List(), 1f, t0); + var n0v = BasicNoteVisual.GenerateElement("Note-0-V", Guid.NewGuid(), new List(), "basic", + "BasicNoteTap3D", Vector3.zero, Vector3.zero, Vector3.one, n0); elementList.ForEach(e => e.AfterInitialize()); } diff --git a/Assets/Scripts/Console/EditorConsole.cs b/Assets/Scripts/Console/EditorConsole.cs index f2433757..9d1f688f 100644 --- a/Assets/Scripts/Console/EditorConsole.cs +++ b/Assets/Scripts/Console/EditorConsole.cs @@ -15,7 +15,7 @@ namespace Ichni.Editor SetUpFunctions(); //Test - functionInterpreter.Eval("Log(\"Hello World!\")"); + //functionInterpreter.Eval("Log(\"Hello World!\")"); } } diff --git a/Assets/Scripts/GameElements/ElementFolder.cs b/Assets/Scripts/GameElements/ElementFolder.cs deleted file mode 100644 index ef7839a2..00000000 --- a/Assets/Scripts/GameElements/ElementFolder.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using Lean.Pool; -using UnityEngine; - -namespace Ichni.RhythmGame -{ - public class ElementFolder : BaseElement - { - public static ElementFolder GenerateElement(string name, BaseElement parentElement) - { - ElementFolder elementFolder = Instantiate(EditorManager.instance.basePrefabs.elementFolder).GetComponent(); - - elementFolder.Initialize(name); - elementFolder.SetParent(parentElement); - - elementFolder.transformSubmodule = new TransformSubmodule(elementFolder); - elementFolder.timeDurationSubmodule = new TimeDurationSubmodule(elementFolder); - //elementFolder.GenerateTab(parentElement); - - elementFolder.SetTransformObserver(); - - return elementFolder; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/ElementFolder.meta b/Assets/Scripts/GameElements/ElementFolder.meta new file mode 100644 index 00000000..62e0b729 --- /dev/null +++ b/Assets/Scripts/GameElements/ElementFolder.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6944ee6ee5d024c15a16862148361df3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/ElementFolder/ElementFolder.cs b/Assets/Scripts/GameElements/ElementFolder/ElementFolder.cs new file mode 100644 index 00000000..e1b40875 --- /dev/null +++ b/Assets/Scripts/GameElements/ElementFolder/ElementFolder.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Lean.Pool; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public partial class ElementFolder : BaseElement + { + public List trackList; + + public static ElementFolder GenerateElement(string name, Guid id, List tags, BaseElement parentElement) + { + ElementFolder elementFolder = Instantiate(EditorManager.instance.basePrefabs.elementFolder).GetComponent(); + + elementFolder.Initialize(name, id, tags); + elementFolder.SetParent(parentElement); + + elementFolder.transformSubmodule = new TransformSubmodule(elementFolder); + elementFolder.timeDurationSubmodule = new TimeDurationSubmodule(elementFolder); + //elementFolder.GenerateTab(parentElement); + + elementFolder.SetTransformObserver(); + + return elementFolder; + } + } + + public partial class ElementFolder + { + public override void SaveBM() + { + matchedBM = new Beatmap.ElementFolder_BM(elementName, elementGuid, tags, parentElement.matchedBM); + } + } + + namespace Beatmap + { + public class ElementFolder_BM : BaseElement_BM + { + public ElementFolder_BM() + { + + } + + public ElementFolder_BM(string elementName, Guid elementGuid, List tags, BaseElement_BM attachedElement) + : base(elementName, elementGuid, tags, attachedElement) + { + + } + + public override void ExecuteBM() + { + matchedElement = ElementFolder.GenerateElement(elementName, elementGuid, tags, GetElement(attachedElementGuid)); + } + + public override BaseElement DuplicateBM(BaseElement parent) + { + return ElementFolder.GenerateElement(elementName, elementGuid, tags, parent); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/ElementFolder.cs.meta b/Assets/Scripts/GameElements/ElementFolder/ElementFolder.cs.meta similarity index 100% rename from Assets/Scripts/GameElements/ElementFolder.cs.meta rename to Assets/Scripts/GameElements/ElementFolder/ElementFolder.cs.meta diff --git a/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs index 53ab5416..873678f8 100644 --- a/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs +++ b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -9,13 +10,14 @@ namespace Ichni.RhythmGame { public bool isStatic; - public static SubstantialObject GenerateElement(string elementName, string themeBundleName, - string objectName, Vector3 position, Vector3 eulerAngles, Vector3 scale, BaseElement parent, + public static SubstantialObject GenerateElement(string elementName, Guid id, List tags, + string themeBundleName, string objectName, BaseElement parent, + Vector3 position, Vector3 eulerAngles, Vector3 scale, bool isStatic, bool isFirstGenerated = true) { EnvironmentObject themeBundleObject = ThemeBundleManager.instance.GetObject(themeBundleName, objectName); EnvironmentObject environmentObject = Instantiate(themeBundleObject, parent.transform).GetComponent(); - environmentObject.Initialize(elementName); + environmentObject.Initialize(elementName, id, tags); environmentObject.isStatic = isStatic; return environmentObject; } diff --git a/Assets/Scripts/GameElements/GameCamera/GameCamera.cs b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs index 7ae7d93e..6ec37fbd 100644 --- a/Assets/Scripts/GameElements/GameCamera/GameCamera.cs +++ b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs @@ -20,13 +20,14 @@ namespace Ichni.RhythmGame public float perspectiveAngle; public float orthographicSize; - public static GameCamera GenerateElement(string elementName, BaseElement parentElement, + public static GameCamera GenerateElement(string elementName, Guid id, + List tags, BaseElement parentElement, CameraViewType cameraViewType, float perspectiveAngle, float orthographicSize, Vector3 initialPosition, Vector3 initialEulerAngles) { GameCamera gameCamera = Instantiate(EditorManager.instance.basePrefabs.gameCamera).GetComponent(); - gameCamera.Initialize(elementName); + gameCamera.Initialize(elementName, id, tags); gameCamera.parentElement = parentElement; gameCamera.cameraViewType = cameraViewType; gameCamera.camera.orthographic = cameraViewType == CameraViewType.Orthographic; diff --git a/Assets/Scripts/GameElements/Notes/Flick.cs b/Assets/Scripts/GameElements/Notes/Flick.cs index 21a3128b..eb3527a5 100644 --- a/Assets/Scripts/GameElements/Notes/Flick.cs +++ b/Assets/Scripts/GameElements/Notes/Flick.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Dreamteck.Splines; @@ -7,13 +8,14 @@ using UnityEngine; namespace Ichni.RhythmGame { - public class Flick : NoteBase + public partial class Flick : NoteBase { public List availableFlickDirections; - public static Flick GenerateElement(string elementName, float exactJudgeTime, BaseElement attach, List directions) + public static Flick GenerateElement(string elementName, Guid id, List tags, + float exactJudgeTime, BaseElement attach, List directions) { Flick flick = Instantiate(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); - flick.Initialize(elementName); + flick.Initialize(elementName, id, tags); flick.exactJudgeTime = exactJudgeTime; flick.availableFlickDirections = directions; flick.transformSubmodule = new TransformSubmodule(flick); @@ -44,4 +46,42 @@ namespace Ichni.RhythmGame return flick; } } + + public partial class Flick + { + public override void SaveBM() + { + matchedBM = new Beatmap.Flick_BM(elementName, elementGuid, tags, parentElement.matchedBM, exactJudgeTime, availableFlickDirections); + } + } + + namespace Beatmap + { + public class Flick_BM : BaseElement_BM + { + public float exactJudgeTime; + public List availableFlickDirections; + public Flick_BM() + { + + } + + public Flick_BM(string elementName, Guid elementGuid, List tags, BaseElement_BM attachedElement, float exactJudgeTime, List directions) + : base(elementName, elementGuid, tags, attachedElement) + { + this.exactJudgeTime = exactJudgeTime; + availableFlickDirections = directions; + } + + public override void ExecuteBM() + { + matchedElement = Flick.GenerateElement(elementName, elementGuid, tags, exactJudgeTime, GetElement(attachedElementGuid), availableFlickDirections); + } + + public override BaseElement DuplicateBM(BaseElement parent) + { + return Flick.GenerateElement(elementName, elementGuid, tags, exactJudgeTime, parent, availableFlickDirections); + } + } + } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/NoteBase.cs b/Assets/Scripts/GameElements/Notes/NoteBase.cs index 0ab99f3a..37e1fd88 100644 --- a/Assets/Scripts/GameElements/Notes/NoteBase.cs +++ b/Assets/Scripts/GameElements/Notes/NoteBase.cs @@ -7,7 +7,7 @@ using UnityEngine; namespace Ichni.RhythmGame { - public abstract class NoteBase : BaseElement + public abstract partial class NoteBase : BaseElement { [Title("Basic Info")] public float exactJudgeTime; @@ -41,9 +41,9 @@ namespace Ichni.RhythmGame public Vector2 noteScreenPosition; public bool isJudged; - public override void Initialize(string name) + public override void Initialize(string name, Guid id, List tags) { - base.Initialize(name); + base.Initialize(name, id, tags); generateEffects = new EffectSubmodule(this); generalJudgeEffects = new EffectSubmodule(this); perfectJudgeEffects = new EffectSubmodule(this); @@ -113,14 +113,23 @@ namespace Ichni.RhythmGame isJudged = true; } } + + generateEffects.effectList.ForEach(e => e.UpdateEffect()); - foreach (var effect in generateEffects.effectList) + switch (EditorManager.instance.currentJudgeType) { - effect.UpdateEffect(); - } - foreach (var effect in perfectJudgeEffects.effectList) - { - effect.UpdateEffect(); + case NoteJudgeType.Perfect: + perfectJudgeEffects.effectList.ForEach(e => e.UpdateEffect()); + break; + case NoteJudgeType.Good: + goodJudgeEffects.effectList.ForEach(e => e.UpdateEffect()); + break; + case NoteJudgeType.Bad: + badJudgeEffects.effectList.ForEach(e => e.UpdateEffect()); + break; + case NoteJudgeType.Miss: + missJudgeEffects.effectList.ForEach(e => e.UpdateEffect()); + break; } } @@ -144,4 +153,15 @@ namespace Ichni.RhythmGame } } } + + public abstract partial class NoteBase + { + public enum NoteJudgeType + { + Perfect, + Good, + Bad, + Miss + } + } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs b/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs index eda11174..80406c70 100644 --- a/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs +++ b/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs @@ -13,11 +13,5 @@ namespace Ichni.RhythmGame public List notePartList; public List effectPartList; - - public void NewInitialize(NoteBase note) - { - base.Initialize(note.elementName + " Note Visual"); - this.note = note; - } } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/Stay.cs b/Assets/Scripts/GameElements/Notes/Stay.cs index 9e0388c0..808cbacb 100644 --- a/Assets/Scripts/GameElements/Notes/Stay.cs +++ b/Assets/Scripts/GameElements/Notes/Stay.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Dreamteck.Splines; @@ -7,12 +8,13 @@ using UnityEngine; namespace Ichni.RhythmGame { - public class Stay : NoteBase + public partial class Stay : NoteBase { - public static Stay GenerateElement(string elementName, float exactJudgeTime, BaseElement attach) + public static Stay GenerateElement(string elementName, Guid id, List tags, + float exactJudgeTime, BaseElement attach) { Stay stay = Instantiate(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); - stay.Initialize(elementName); + stay.Initialize(elementName, id, tags); stay.exactJudgeTime = exactJudgeTime; stay.transformSubmodule = new TransformSubmodule(stay); stay.timeDurationSubmodule = new TimeDurationSubmodule(stay); @@ -42,4 +44,41 @@ namespace Ichni.RhythmGame return stay; } } + + public partial class Stay + { + public override void SaveBM() + { + matchedBM = new Beatmap.Stay_BM(elementName, elementGuid, tags, parentElement.matchedBM, exactJudgeTime); + } + } + + namespace Beatmap + { + public class Stay_BM : BaseElement_BM + { + public float exactJudgeTime; + + public Stay_BM() + { + + } + + public Stay_BM(string elementName, Guid elementGuid, List tags, BaseElement_BM attachedElement, float exactJudgeTime) + : base(elementName, elementGuid, tags, attachedElement) + { + this.exactJudgeTime = exactJudgeTime; + } + + public override void ExecuteBM() + { + matchedElement = Stay.GenerateElement(elementName, elementGuid, tags, exactJudgeTime, GetElement(attachedElementGuid)); + } + + public override BaseElement DuplicateBM(BaseElement parent) + { + return Stay.GenerateElement(elementName, elementGuid, tags, exactJudgeTime, parent); + } + } + } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/Tap.cs b/Assets/Scripts/GameElements/Notes/Tap.cs index c4c6fe83..0a481e95 100644 --- a/Assets/Scripts/GameElements/Notes/Tap.cs +++ b/Assets/Scripts/GameElements/Notes/Tap.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Dreamteck.Splines; @@ -7,12 +8,13 @@ using UnityEngine; namespace Ichni.RhythmGame { - public class Tap : NoteBase + public partial class Tap : NoteBase { - public static Tap GenerateElement(string elementName, float exactJudgeTime, BaseElement attach) + public static Tap GenerateElement(string elementName, Guid id, List tags, + float exactJudgeTime, BaseElement attach) { Tap tap = Instantiate(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); - tap.Initialize(elementName); + tap.Initialize(elementName, id, tags); tap.exactJudgeTime = exactJudgeTime; tap.transformSubmodule = new TransformSubmodule(tap); tap.timeDurationSubmodule = new TimeDurationSubmodule(tap); @@ -42,4 +44,41 @@ namespace Ichni.RhythmGame return tap; } } + + public partial class Tap + { + public override void SaveBM() + { + matchedBM = new Beatmap.Tap_BM(elementName, elementGuid, tags, parentElement.matchedBM, exactJudgeTime); + } + } + + namespace Beatmap + { + public class Tap_BM : BaseElement_BM + { + public float exactJudgeTime; + + public Tap_BM() + { + + } + + public Tap_BM(string elementName, Guid elementGuid, List tags, BaseElement_BM attachedElement, float exactJudgeTime) + : base(elementName, elementGuid, tags, attachedElement) + { + this.exactJudgeTime = exactJudgeTime; + } + + public override void ExecuteBM() + { + matchedElement = Tap.GenerateElement(elementName, elementGuid, tags, exactJudgeTime, GetElement(attachedElementGuid)); + } + + public override BaseElement DuplicateBM(BaseElement parent) + { + return Tap.GenerateElement(elementName, elementGuid, tags, exactJudgeTime, parent); + } + } + } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/SubstantialObject.cs b/Assets/Scripts/GameElements/SubstantialObject.cs index d8051193..a421f115 100644 --- a/Assets/Scripts/GameElements/SubstantialObject.cs +++ b/Assets/Scripts/GameElements/SubstantialObject.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -9,13 +10,13 @@ namespace Ichni.RhythmGame { public string themeBundleName, objectName; - public static SubstantialObject GenerateElement(string elementName, string themeBundleName, - string objectName, Vector3 position, Vector3 eulerAngles, Vector3 scale, BaseElement parent, - bool isFirstGenerated = true) + public static SubstantialObject GenerateElement(string elementName, Guid id, List tags, + string themeBundleName, string objectName, Vector3 position, Vector3 eulerAngles, Vector3 scale, + BaseElement parent, bool isFirstGenerated = true) { GameObject themeBundleObject = ThemeBundleManager.instance.GetObject(themeBundleName, objectName); SubstantialObject substantialObject = Instantiate(themeBundleObject, parent.transform).GetComponent(); - substantialObject.Initialize(elementName); + substantialObject.Initialize(elementName, id, tags); substantialObject.transformSubmodule = new TransformSubmodule(substantialObject, position, eulerAngles, scale); substantialObject.timeDurationSubmodule = new TimeDurationSubmodule(substantialObject); diff --git a/Assets/Scripts/GameElements/Track/PathNode.cs b/Assets/Scripts/GameElements/Track/PathNode.cs index bdfb5124..9fa17b9e 100644 --- a/Assets/Scripts/GameElements/Track/PathNode.cs +++ b/Assets/Scripts/GameElements/Track/PathNode.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Dreamteck.Splines; @@ -18,12 +19,12 @@ namespace Ichni.RhythmGame public SplinePoint node; - public static PathNode GenerateElement(string elementName, Track track, int index, Vector3 nodePosition, - Vector3 nodeNormal, float nodeSize, Color nodeColor) + public static PathNode GenerateElement(string elementName, Guid id, List tags, + Track track, Vector3 nodePosition, Vector3 nodeNormal, float nodeSize, Color nodeColor) { PathNode pathNode = Instantiate(EditorManager.instance.basePrefabs.pathNode, track.transform).GetComponent(); - pathNode.Initialize(elementName); + pathNode.Initialize(elementName, id, tags); pathNode.track = track; //pathNode.index = index; diff --git a/Assets/Scripts/GameElements/Track/Track.cs b/Assets/Scripts/GameElements/Track/Track.cs index 2f71f013..cb8079af 100644 --- a/Assets/Scripts/GameElements/Track/Track.cs +++ b/Assets/Scripts/GameElements/Track/Track.cs @@ -12,11 +12,12 @@ namespace Ichni.RhythmGame public TrackTimeSubmodule trackTimeSubmodule; public TrackRendererSubmodule trackRendererSubmodule; - public static Track GenerateElement(string elementName, BaseElement parent, Vector3 position) + public static Track GenerateElement(string elementName, Guid id, List tags, + BaseElement parent, Vector3 position) { Track track = Instantiate(EditorManager.instance.basePrefabs.track, parent.transform).GetComponent(); - track.Initialize(elementName); + track.Initialize(elementName, id, tags); track.SetParent(parent); track.transformSubmodule = new TransformSubmodule(track, position, Vector3.zero, Vector3.one); @@ -47,9 +48,9 @@ namespace Ichni.RhythmGame public partial class Track { - public override void Refresh() + public override void SaveBM() { - + matchedBM = new Beatmap.Track_BM(elementName, elementGuid, tags, parentElement.matchedBM); } } @@ -68,4 +69,31 @@ namespace Ichni.RhythmGame DistanceDistributed = 1 } } + + namespace Beatmap + { + public class Track_BM : BaseElement_BM + { + public Track_BM() + { + + } + + public Track_BM(string elementName, Guid elementGuid, List tags, BaseElement_BM attachedElement) + : base(elementName, elementGuid, tags, attachedElement) + { + + } + + public override void ExecuteBM() + { + matchedElement = Track.GenerateElement(elementName, elementGuid, tags, GetElement(attachedElementGuid), Vector3.zero); + } + + public override BaseElement DuplicateBM(BaseElement parent) + { + return Track.GenerateElement(elementName, elementGuid, tags, parent, Vector3.zero); + } + } + } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs b/Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs new file mode 100644 index 00000000..885666bd --- /dev/null +++ b/Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Dreamteck.Splines; +using Ichni.RhythmGame; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class CrossTrackPoint : BaseElement + { + public ElementFolder trackListFolder; + public Track nowAttachedTrack; + private int nowAttachedTrackIndex; + public SplinePositioner trackPositioner; + + public FlexibleInt trackSwitch; + public FlexibleFloat trackPercent; + + public static CrossTrackPoint GenerateElement(string elementName, Guid id, List tags, + ElementFolder elementFolder, FlexibleInt trackSwitch, FlexibleFloat trackPercent) + { + CrossTrackPoint point = Instantiate(EditorManager.instance.basePrefabs.emptyObject, elementFolder.transform).AddComponent(); + point.Initialize(elementName, id, tags); + point.trackPositioner = point.gameObject.AddComponent(); + point.nowAttachedTrackIndex = -1; + point.trackListFolder = elementFolder; + point.trackSwitch = trackSwitch; + point.trackPercent = trackPercent; + point.transformSubmodule = new TransformSubmodule(point); + point.timeDurationSubmodule = new TimeDurationSubmodule(point); + point.SetParent(elementFolder); + + return point; + } + + private void Update() + { + if (trackPercent.animations.Count > 0) + { + trackSwitch.UpdateFlexibleInt(EditorManager.instance.songModule.songTime); + trackPercent.UpdateFlexibleFloat(EditorManager.instance.songModule.songTime); + SetPoint(); + } + } + + private void SetPoint() + { + if (nowAttachedTrackIndex != trackSwitch.value && trackSwitch.value >= 0 && trackSwitch.value < trackListFolder.trackList.Count) + { + nowAttachedTrack = trackListFolder.trackList[trackSwitch.value]; + nowAttachedTrackIndex = trackSwitch.value; + trackPositioner.spline = trackListFolder.trackList[trackSwitch.value].trackPathSubmodule.path; + } + + trackPositioner.SetPercent(trackPercent.value); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs.meta b/Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs.meta new file mode 100644 index 00000000..4e49881d --- /dev/null +++ b/Assets/Scripts/GameElements/Track/TrackPoints/CrossTrackPoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7dc68e9f357304d71a938d5e3f9b1125 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs b/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs index 4e934e10..dc99b852 100644 --- a/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs +++ b/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Dreamteck.Splines; @@ -12,24 +13,19 @@ namespace Ichni.RhythmGame public TrackTimeSubmoduleMovable trackTimeSubmoduleMovable; public SplinePositioner trackPositioner; - public static TrackHeadPoint GenerateElement(string elementName, Track track) + public static TrackHeadPoint GenerateElement(string elementName, Guid id, List tags, Track track) { TrackHeadPoint head = Instantiate(EditorManager.instance.basePrefabs.emptyObject, track.transform).AddComponent(); - head.NewInitialize(elementName, track); + head.Initialize(elementName, id, tags); + head.track = track; + head.trackPositioner = head.gameObject.AddComponent(); + head.trackPositioner.spline = track.trackPathSubmodule.path; + head.trackTimeSubmoduleMovable = track.trackTimeSubmodule as TrackTimeSubmoduleMovable; head.SetParent(track); return head; } - - private void NewInitialize(string elementName, Track track) - { - base.Initialize(elementName); - this.track = track; - this.trackPositioner = gameObject.AddComponent(); - this.trackPositioner.spline = track.trackPathSubmodule.path; - this.trackTimeSubmoduleMovable = track.trackTimeSubmodule as TrackTimeSubmoduleMovable; - } - + public void Update() { if (track.timeDurationSubmodule.CheckTimeInDuration(EditorManager.instance.songModule.songTime)) diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs b/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs index d6f17aec..5640e9aa 100644 --- a/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs +++ b/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -19,27 +20,23 @@ namespace Ichni.RhythmGame private bool isBeyond1 = false; - public static TrackPercentPoint GenerateElement(string elementName, Track track, FlexibleFloat trackPercent) + public static TrackPercentPoint GenerateElement(string elementName, Guid id, List tags, + Track track, FlexibleFloat trackPercent) { TrackPercentPoint point = Instantiate(EditorManager.instance.basePrefabs.emptyObject, track.transform).AddComponent(); - point.NewInitialize(elementName, track, trackPercent); + point.Initialize(elementName, id, tags); + point.track = track; + point.trackPositioner = point.gameObject.AddComponent(); + point.trackPositioner.spline = track.trackPathSubmodule.path; + point.trackPercent = trackPercent; point.SetParent(track); point.isBeyond1 = trackPercent.animations.Any(animation => animation.endValue > 1);//判断是否有超过1的动画,超过1将会循环 return point; } - - private void NewInitialize(string elementName, Track track, FlexibleFloat trackPercent) - { - base.Initialize(elementName); - this.track = track; - this.trackPositioner = gameObject.AddComponent(); - this.trackPositioner.spline = track.trackPathSubmodule.path; - this.trackPercent = trackPercent; - } - + public void Update() { if (trackPercent.animations.Count > 0) diff --git a/Assets/Scripts/GameElements/Track/Trail.cs b/Assets/Scripts/GameElements/Track/Trail.cs new file mode 100644 index 00000000..31306407 --- /dev/null +++ b/Assets/Scripts/GameElements/Track/Trail.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class Trail : BaseElement + { + public TrailRenderer trailRenderer; + public Material renderMaterial; + + public float visibleTimeLength; + + public static Trail GenerateElement(string name, Guid id, List tags, + BaseElement parentElement, float visibleTimeLength, Material material = null) + { + Trail trail = Instantiate(EditorManager.instance.basePrefabs.trail).GetComponent(); + trail.trailRenderer = trail.GetComponent(); + + trail.Initialize(name, id, tags); + trail.renderMaterial = material == null ? EditorManager.instance.basePrefabs.defaultTrailMaterial : material; + trail.trailRenderer.material = trail.renderMaterial; + trail.visibleTimeLength = visibleTimeLength; + trail.SetParent(parentElement); + + trail.transformSubmodule = new TransformSubmodule(trail); + + return trail; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Track/Trail.cs.meta b/Assets/Scripts/GameElements/Track/Trail.cs.meta new file mode 100644 index 00000000..2da31acc --- /dev/null +++ b/Assets/Scripts/GameElements/Track/Trail.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 48120e902e0734a51a10b8b4c0229afa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX b/Assets/StreamingAssets/ThemeBundles/OSX/OSX index d2c1c067aa6656b1d1fc4ce07cd2bfdb0ca61fd1..a067fb30e19c352716df82c2b1ca604d96a847d9 100644 GIT binary patch delta 36 ucmV+<0Nek82!RN&R~#JwN}|3DCqpf)cm@ delta 36 ucmV+<0Nek82!RN&(^bRsaA1 znE(I+LjV8(00000000000000U0098`00969xLg1M&xHU%000028~`u`xLgJR_Z34y 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"tt?by->x0v8OW(aXH) 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 literal 78557 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 P5|b4cYai7AqHjaaO$2t~ diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest index 7f175f73..f0fa5298 100644 --- a/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest +++ b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest @@ -1,15 +1,15 @@ ManifestFileVersion: 0 -CRC: 3644372668 +CRC: 3370319538 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 110d4740b29ef7da3aa800ad69f39ffe + Hash: 49bd9bdbb89b1cab8e0110743b991ce3 TypeTreeHash: serializedVersion: 2 - Hash: 0b29093cb0b98a6a3edca231f6a05b16 + Hash: 14b925367e650018329ce40d4f1a1124 IncrementalBuildHash: serializedVersion: 2 - Hash: 110d4740b29ef7da3aa800ad69f39ffe + Hash: 49bd9bdbb89b1cab8e0110743b991ce3 HashAppended: 0 ClassTypes: - Class: 1 diff --git a/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab index 076d6a4e..b3d75dc4 100644 --- a/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab +++ b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab @@ -145,7 +145,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + - {fileID: 2100000, guid: b39306d2c39754d0aafabe8570b8e640, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -538,6 +538,7 @@ MonoBehaviour: Data: elementName: serialNumber: 0 + tags: [] parentElement: {fileID: 0} childElementList: [] themeBundleName: basic diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs new file mode 100644 index 00000000..9512668d --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs @@ -0,0 +1,54 @@ +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.Basic +{ + public class BasicNoteBadExpand : NoteEffectBase + { + Renderer noteMainRenderer; + public BasicNoteBadExpand(NoteBase note) + { + this.note = note; + this.noteVisual = note.noteVisual.GetComponent(); + this.noteMainRenderer = noteVisual.noteMain.GetComponent(); + } + + public override void Recover() + { + noteVisual.noteMain.SetActive(true); + noteVisual.noteMain.transform.localScale = Vector3.one; + noteMainRenderer.material.SetColor("_BaseColor", Color.white); + } + + public override void Adjust() + { + noteMainRenderer.material.DOColor(Color.clear, 0.2f).SetEase(Ease.OutQuad); + noteVisual.noteMain.transform.DOScale(Vector3.one * 1.5f, 0.2f).SetEase(Ease.OutQuad).OnComplete(() => noteVisual.noteMain.SetActive(false)); + } + + public override EffectState CheckEffectState() + { + float songTime = EditorManager.instance.songModule.songTime; + + if (songTime < note.exactJudgeTime ) + { + return EffectState.Before; + } + + if (songTime >= note.exactJudgeTime && + songTime <= note.exactJudgeTime + effectTime) + { + return EffectState.Middle; + } + + if (songTime > note.exactJudgeTime + effectTime) + { + return EffectState.After; + } + + return EffectState.Error; + } + } +} \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs.meta new file mode 100644 index 00000000..2c1f9d10 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteBadExpand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f3670b926c29e45e5b059ab5ae013d6a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs new file mode 100644 index 00000000..6082c9fd --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.Basic +{ + public class BasicNoteGoodBurst : NoteEffectBase + { + private GameObject effectRing; + + public BasicNoteGoodBurst(NoteBase note) + { + this.note = note; + this.noteVisual = note.noteVisual.GetComponent(); + this.effectRing = noteVisual.effectPartList[0]; + } + + public override void Recover() + { + effectRing.SetActive(false); + effectRing.transform.localScale = Vector3.zero; + effectRing.GetComponent().color = Color.white; + noteVisual.noteMain.SetActive(true); + } + + public override void Adjust() + { + effectRing.gameObject.SetActive(true); + effectRing.transform.DOScale(Vector3.one * 0.5f, 0.1f).SetEase(Ease.OutQuad); + effectRing.GetComponent().DOFade(0, 0.1f).SetEase(Ease.OutQuad).OnComplete(() => effectRing.SetActive(false)); + noteVisual.noteMain.SetActive(false); + } + + public override EffectState CheckEffectState() + { + float songTime = EditorManager.instance.songModule.songTime; + + if (songTime < note.exactJudgeTime ) + { + return EffectState.Before; + } + + if (songTime >= note.exactJudgeTime && + songTime <= note.exactJudgeTime + effectTime) + { + return EffectState.Middle; + } + + if (songTime > note.exactJudgeTime + effectTime) + { + return EffectState.After; + } + + return EffectState.Error; + } + } +} \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs.meta new file mode 100644 index 00000000..7ad0007d --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGoodBurst.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 01c52632ad5b643f58504f3b8294d253 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs new file mode 100644 index 00000000..8d4c3ac3 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.Basic +{ + public class BasicNoteMissPale : NoteEffectBase + { + Renderer noteMainRenderer; + + public BasicNoteMissPale(NoteBase note) + { + this.note = note; + this.noteVisual = note.noteVisual.GetComponent(); + this.noteMainRenderer = noteVisual.noteMain.GetComponent(); + } + + public override void Recover() + { + noteVisual.noteMain.SetActive(true); + noteMainRenderer.material.SetColor("_BaseColor", Color.white); + } + + public override void Adjust() + { + noteVisual.noteMain.SetActive(true); + noteMainRenderer.material.SetColor("_BaseColor", Color.white / 2f); + noteMainRenderer.material.DOColor(Color.clear, 0.2f).SetEase(Ease.OutQuad); + } + + public override EffectState CheckEffectState() + { + float songTime = EditorManager.instance.songModule.songTime; + + if (songTime < note.exactJudgeTime ) + { + return EffectState.Before; + } + + if (songTime >= note.exactJudgeTime && + songTime <= note.exactJudgeTime + effectTime) + { + return EffectState.Middle; + } + + if (songTime > note.exactJudgeTime + effectTime) + { + return EffectState.After; + } + + return EffectState.Error; + } + } +} \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs.meta new file mode 100644 index 00000000..92c04ed6 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteMissPale.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 403dbcfe52a994428a72e2d7dbc2bb50 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs index cfa1f1ce..03515432 100644 --- a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs @@ -27,8 +27,8 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic public override void Adjust() { effectRing.gameObject.SetActive(true); - effectRing.transform.DOScale(Vector3.one, 0.1f).SetEase(Ease.OutBack); - effectRing.GetComponent().DOFade(0, 0.1f).SetEase(Ease.OutBack).OnComplete(() => effectRing.SetActive(false)); + effectRing.transform.DOScale(Vector3.one, 0.1f).SetEase(Ease.OutQuad); + effectRing.GetComponent().DOFade(0, 0.1f).SetEase(Ease.OutQuad).OnComplete(() => effectRing.SetActive(false)); noteVisual.noteMain.SetActive(false); } diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs index b5dac991..c8923688 100644 --- a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Lean.Pool; @@ -7,12 +8,12 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic { public class BasicNoteVisual : NoteVisualBase { - public new static BasicNoteVisual GenerateElement(string elementName, string themeBundleName, - string objectName, Vector3 position, Vector3 eulerAngles, Vector3 scale, BaseElement parent, - bool isFirstGenerated = true) + public new static BasicNoteVisual GenerateElement(string elementName, Guid id, List tags, + string themeBundleName, string objectName, + Vector3 position, Vector3 eulerAngles, Vector3 scale, BaseElement parent, bool isFirstGenerated = true) { BasicNoteVisual noteVisual = SubstantialObject - .GenerateElement(elementName, themeBundleName, objectName, position, eulerAngles, scale, parent, isFirstGenerated) + .GenerateElement(elementName, id, tags, themeBundleName, objectName, position, eulerAngles, scale, parent, isFirstGenerated) .GetComponent(); NoteBase note = parent as NoteBase; @@ -24,6 +25,9 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic { note.generateEffects.effectList.Add(new BasicNoteGenerateExpand(noteVisual.note)); note.perfectJudgeEffects.effectList.Add(new BasicNotePerfectBurst(noteVisual.note)); + note.goodJudgeEffects.effectList.Add(new BasicNoteGoodBurst(noteVisual.note)); + note.badJudgeEffects.effectList.Add(new BasicNoteBadExpand(noteVisual.note)); + note.missJudgeEffects.effectList.Add(new BasicNoteMissPale(noteVisual.note)); } return noteVisual;