diff --git a/.DS_Store b/.DS_Store index fc6ec49c..0ebab392 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Assets/.DS_Store b/Assets/.DS_Store index 501c8837..1dc2194e 100644 Binary files a/Assets/.DS_Store and b/Assets/.DS_Store differ diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 00000000..02bc588b --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 392d1d53b7aae498487d4fe9604f15cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/AssetBundleComponent.cs b/Assets/Editor/AssetBundleComponent.cs new file mode 100644 index 00000000..188c4473 --- /dev/null +++ b/Assets/Editor/AssetBundleComponent.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Ichni; +using UnityEditor; +using UnityEngine; + +/// +/// AssetBundle 打包工具 +/// +public class BuildAssetBundle +{ + private static string BuildPrepare() + { + // 打包AB输出路径 + string strABOutPAthDir = string.Empty; + + // 获取“StreamingAssets”文件夹路径(不一定这个文件夹,可自定义) + strABOutPAthDir = Application.streamingAssetsPath + "/ThemeBundles"; + + // 判断文件夹是否存在,不存在则新建 + if (Directory.Exists(strABOutPAthDir) == false) + { + Directory.CreateDirectory(strABOutPAthDir); + } + + return strABOutPAthDir; + } + + private static void GenerateAbstracts(AssetBundleManifest manifest) + { + List themeBundles = manifest.GetAllAssetBundles().ToList(); + foreach (string bundle in themeBundles) + { + string uriAbs = Application.streamingAssetsPath + "/ThemeBundles/" + bundle + ".abs"; + Debug.Log(uriAbs); + if (!ES3.FileExists(uriAbs)) + { + ThemeBundleAbstract abs = new ThemeBundleAbstract(bundle); + ES3.Save("ThemeBundleAbstract", abs, uriAbs); + } + } + } + + [MenuItem("AssetBundleTools/BuildToWindows64")] + public static void BuildToWindows64() + { + string uri = BuildPrepare() + "/Windows64"; + AssetBundleManifest manifestWin64 = BuildPipeline.BuildAssetBundles(uri, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64); + GenerateAbstracts(manifestWin64); + } + + [MenuItem("AssetBundleTools/BuildToOSX")] + public static void BuildToOSX() + { + string uri = BuildPrepare() + "/OSX"; + AssetBundleManifest manifestOSX = BuildPipeline.BuildAssetBundles(uri, BuildAssetBundleOptions.None, BuildTarget.StandaloneOSX); + GenerateAbstracts(manifestOSX); + } +} \ No newline at end of file diff --git a/Assets/Editor/AssetBundleComponent.cs.meta b/Assets/Editor/AssetBundleComponent.cs.meta new file mode 100644 index 00000000..cdca955c --- /dev/null +++ b/Assets/Editor/AssetBundleComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8490cfc5a68124e599aee3e07c8f9cfd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/GameElements.meta b/Assets/Prefabs/GameElements.meta new file mode 100644 index 00000000..8db4087a --- /dev/null +++ b/Assets/Prefabs/GameElements.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17a9645190739456285c104d5a23c342 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/ElementFolder.prefab b/Assets/Prefabs/GameElements/ElementFolder.prefab similarity index 100% rename from Assets/Prefabs/ElementFolder.prefab rename to Assets/Prefabs/GameElements/ElementFolder.prefab diff --git a/Assets/Prefabs/ElementFolder.prefab.meta b/Assets/Prefabs/GameElements/ElementFolder.prefab.meta similarity index 100% rename from Assets/Prefabs/ElementFolder.prefab.meta rename to Assets/Prefabs/GameElements/ElementFolder.prefab.meta diff --git a/Assets/Prefabs/EmptyObject.prefab b/Assets/Prefabs/GameElements/EmptyObject.prefab similarity index 100% rename from Assets/Prefabs/EmptyObject.prefab rename to Assets/Prefabs/GameElements/EmptyObject.prefab diff --git a/Assets/Prefabs/EmptyObject.prefab.meta b/Assets/Prefabs/GameElements/EmptyObject.prefab.meta similarity index 100% rename from Assets/Prefabs/EmptyObject.prefab.meta rename to Assets/Prefabs/GameElements/EmptyObject.prefab.meta diff --git a/Assets/Prefabs/GameElements/GameCamera.prefab b/Assets/Prefabs/GameElements/GameCamera.prefab new file mode 100644 index 00000000..a858469d --- /dev/null +++ b/Assets/Prefabs/GameElements/GameCamera.prefab @@ -0,0 +1,809 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &10333948111691042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5840097170757975722} + - component: {fileID: 7025203609509180022} + m_Layer: 0 + m_Name: GameCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5840097170757975722 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10333948111691042} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 373065448631755357} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7025203609509180022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10333948111691042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 79d811a12f27f43629797719fcbfc6ae, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: elementGuid + Entry: 2 + Data: 702c793776b444d3ad481072561faaec + - Name: timeDurationSubmodule + Entry: 7 + Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: isOverridingDuration + Entry: 5 + Data: false + - Name: startTime + Entry: 4 + Data: 0 + - Name: endTime + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: transformSubmodule + Entry: 7 + Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: originalPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: positionOffset + Entry: 7 + Data: 2|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: eulerAnglesOffset + Entry: 7 + Data: 3|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: scaleOffset + Entry: 7 + Data: 4|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: currentPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: positionDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesDirtyMark + Entry: 5 + Data: false + - Name: scaleDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesOffsetLock + Entry: 5 + Data: false + - Name: OnPositionChanged + Entry: 6 + Data: + - Name: OnEulerAnglesChanged + Entry: 6 + Data: + - Name: OnScaleChanged + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: colorSubmodule + Entry: 6 + Data: + elementName: + serialNumber: 0 + parentElement: {fileID: 0} + childElementList: [] + camera: {fileID: 1378655914364111770} + rotationPoint: {fileID: 373065448631755357} + positionPoint: {fileID: 2202765603615894048} + cameraTransform: {fileID: 4681825519897212372} + cameraViewType: 0 + perspectiveAngle: 60 + orthographicSize: 10 +--- !u!1 &261765279725222738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 373065448631755357} + m_Layer: 0 + m_Name: RotationPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &373065448631755357 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 261765279725222738} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2202765603615894048} + m_Father: {fileID: 5840097170757975722} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &816955147983443379 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2202765603615894048} + m_Layer: 0 + m_Name: PositionPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2202765603615894048 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816955147983443379} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4681825519897212372} + m_Father: {fileID: 373065448631755357} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8526474044217039555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4681825519897212372} + - component: {fileID: 1378655914364111770} + - component: {fileID: 7108567356200093580} + - component: {fileID: 2072332804138453357} + - component: {fileID: 8132557174609694425} + - component: {fileID: 854107432770048664} + - component: {fileID: 5126086572364088879} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4681825519897212372 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + 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: 2202765603615894048} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &1378655914364111770 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &7108567356200093580 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + m_Enabled: 1 +--- !u!114 &2072332804138453357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!114 &8132557174609694425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 347013242dca7c44fb5001793033ea59, type: 3} + m_Name: + m_EditorClassIdentifier: + UpdateMode: 0 + PositionActive: 0 + RotationActive: 0 + ScaleActive: 0 + PositionWiggleProperties: + WigglePermitted: 1 + WiggleType: 1 + UseUnscaledTime: 0 + TimeMultiplier: 1 + StartWigglingAutomatically: 1 + SmoothPingPong: 1 + UseSpeedCurve: 0 + SpeedCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + FrequencyMin: 0 + FrequencyMax: 1 + AmplitudeMin: {x: 0, y: 0, z: 0} + AmplitudeMax: {x: 1, y: 1, z: 1} + RelativeAmplitude: 1 + UniformValues: 0 + ForceVectorLength: 0 + ForcedVectorLength: 1 + Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + RemapCurveZeroMin: {x: 0, y: 0, z: 0} + RemapCurveZeroMax: {x: 0, y: 0, z: 0} + RemapCurveOneMin: {x: 1, y: 1, z: 1} + RemapCurveOneMax: {x: 1, y: 1, z: 1} + RelativeCurveAmplitude: 1 + CurvePingPong: 0 + PauseMin: 0 + PauseMax: 0 + LimitedTime: 0 + LimitedTimeTotal: 0 + LimitedTimeFalloff: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LimitedTimeResetValue: 1 + LimitedTimeLeft: 0 + NoiseFrequencyMin: {x: 0, y: 0, z: 0} + NoiseFrequencyMax: {x: 1, y: 1, z: 1} + NoiseShiftMin: {x: 0, y: 0, z: 0} + NoiseShiftMax: {x: 0, y: 0, z: 0} + RotationWiggleProperties: + WigglePermitted: 1 + WiggleType: 1 + UseUnscaledTime: 0 + TimeMultiplier: 1 + StartWigglingAutomatically: 1 + SmoothPingPong: 1 + UseSpeedCurve: 0 + SpeedCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + FrequencyMin: 0 + FrequencyMax: 1 + AmplitudeMin: {x: 0, y: 0, z: 0} + AmplitudeMax: {x: 1, y: 1, z: 1} + RelativeAmplitude: 1 + UniformValues: 0 + ForceVectorLength: 0 + ForcedVectorLength: 1 + Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + RemapCurveZeroMin: {x: 0, y: 0, z: 0} + RemapCurveZeroMax: {x: 0, y: 0, z: 0} + RemapCurveOneMin: {x: 1, y: 1, z: 1} + RemapCurveOneMax: {x: 1, y: 1, z: 1} + RelativeCurveAmplitude: 1 + CurvePingPong: 0 + PauseMin: 0 + PauseMax: 0 + LimitedTime: 0 + LimitedTimeTotal: 0 + LimitedTimeFalloff: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LimitedTimeResetValue: 1 + LimitedTimeLeft: 0 + NoiseFrequencyMin: {x: 0, y: 0, z: 0} + NoiseFrequencyMax: {x: 1, y: 1, z: 1} + NoiseShiftMin: {x: 0, y: 0, z: 0} + NoiseShiftMax: {x: 0, y: 0, z: 0} + ScaleWiggleProperties: + WigglePermitted: 1 + WiggleType: 1 + UseUnscaledTime: 0 + TimeMultiplier: 1 + StartWigglingAutomatically: 1 + SmoothPingPong: 1 + UseSpeedCurve: 0 + SpeedCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + FrequencyMin: 0 + FrequencyMax: 1 + AmplitudeMin: {x: 0, y: 0, z: 0} + AmplitudeMax: {x: 1, y: 1, z: 1} + RelativeAmplitude: 1 + UniformValues: 0 + ForceVectorLength: 0 + ForcedVectorLength: 1 + Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + RemapCurveZeroMin: {x: 0, y: 0, z: 0} + RemapCurveZeroMax: {x: 0, y: 0, z: 0} + RemapCurveOneMin: {x: 1, y: 1, z: 1} + RemapCurveOneMax: {x: 1, y: 1, z: 1} + RelativeCurveAmplitude: 1 + CurvePingPong: 0 + PauseMin: 0 + PauseMax: 0 + LimitedTime: 0 + LimitedTimeTotal: 0 + LimitedTimeFalloff: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LimitedTimeResetValue: 1 + LimitedTimeLeft: 0 + NoiseFrequencyMin: {x: 0, y: 0, z: 0} + NoiseFrequencyMax: {x: 1, y: 1, z: 1} + NoiseShiftMin: {x: 0, y: 0, z: 0} + NoiseShiftMax: {x: 0, y: 0, z: 0} + DebugWiggleDuration: 2 +--- !u!114 &854107432770048664 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bf8e915527fa424a8b17dc168fe20eb, type: 3} + m_Name: + m_EditorClassIdentifier: + ChannelMode: 0 + Channel: 0 + MMChannelDefinition: {fileID: 0} + CooldownBetweenShakes: 0 +--- !u!114 &5126086572364088879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8526474044217039555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 531894cbc68d4bf49a71825ad87c3305, type: 3} + m_Name: + m_EditorClassIdentifier: + ChannelMode: 0 + Channel: 0 + MMChannelDefinition: {fileID: 0} + CooldownBetweenShakes: 0 diff --git a/Assets/Prefabs/GameElements/GameCamera.prefab.meta b/Assets/Prefabs/GameElements/GameCamera.prefab.meta new file mode 100644 index 00000000..fda2cbd7 --- /dev/null +++ b/Assets/Prefabs/GameElements/GameCamera.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5e49956564dfa491cb6aa8fe57c1b2d6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/PathNode.prefab b/Assets/Prefabs/GameElements/PathNode.prefab similarity index 100% rename from Assets/Prefabs/PathNode.prefab rename to Assets/Prefabs/GameElements/PathNode.prefab diff --git a/Assets/Prefabs/PathNode.prefab.meta b/Assets/Prefabs/GameElements/PathNode.prefab.meta similarity index 100% rename from Assets/Prefabs/PathNode.prefab.meta rename to Assets/Prefabs/GameElements/PathNode.prefab.meta diff --git a/Assets/Prefabs/Track.prefab b/Assets/Prefabs/GameElements/Track.prefab similarity index 100% rename from Assets/Prefabs/Track.prefab rename to Assets/Prefabs/GameElements/Track.prefab diff --git a/Assets/Prefabs/Track.prefab.meta b/Assets/Prefabs/GameElements/Track.prefab.meta similarity index 100% rename from Assets/Prefabs/Track.prefab.meta rename to Assets/Prefabs/GameElements/Track.prefab.meta diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 9f7a7dc2..0684419d 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -122,84 +122,248 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1001 &151772093 -PrefabInstance: +--- !u!1 &293267687 +GameObject: m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 293267688} + - component: {fileID: 293267689} + m_Layer: 0 + m_Name: GameCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &293267688 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293267687} serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 2505559936379693214, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: managedReferences[6334994104641650688].CameraShakeProperties.Amplitude - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 2505559936379693214, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: managedReferences[6334994104641650688].CameraShakeProperties.AmplitudeY - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5030288017655597913, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_Name - value: CameraShake - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6794014747502131782, guid: 46175bea33f87445bbec1389a53da172, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 46175bea33f87445bbec1389a53da172, type: 3} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2048155078} + m_Father: {fileID: 759707325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &293267689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293267687} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 79d811a12f27f43629797719fcbfc6ae, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: elementGuid + Entry: 2 + Data: 9ce023db680c4db6aca5388c7fea2d83 + - Name: timeDurationSubmodule + Entry: 7 + Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: isOverridingDuration + Entry: 5 + Data: false + - Name: startTime + Entry: 4 + Data: 0 + - Name: endTime + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: transformSubmodule + Entry: 7 + Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: originalPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: positionOffset + Entry: 7 + Data: 2|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: eulerAnglesOffset + Entry: 7 + Data: 3|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: scaleOffset + Entry: 7 + Data: 4|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: currentPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: positionDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesDirtyMark + Entry: 5 + Data: false + - Name: scaleDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesOffsetLock + Entry: 5 + Data: false + - Name: OnPositionChanged + Entry: 6 + Data: + - Name: OnEulerAnglesChanged + Entry: 6 + Data: + - Name: OnScaleChanged + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: colorSubmodule + Entry: 6 + Data: + elementName: + serialNumber: 0 + parentElement: {fileID: 0} + childElementList: [] + camera: {fileID: 330585545} + rotationPoint: {fileID: 2048155078} + positionPoint: {fileID: 719302918} + cameraTransform: {fileID: 330585546} + cameraViewType: 0 + perspectiveAngle: 60 + orthographicSize: 10 --- !u!1 &330585543 GameObject: m_ObjectHideFlags: 0 @@ -289,12 +453,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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_Father: {fileID: 719302918} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &330585547 MonoBehaviour: @@ -819,6 +983,273 @@ MonoBehaviour: m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 +--- !u!1 &719302917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 719302918} + m_Layer: 0 + m_Name: PositionPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &719302918 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 719302917} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 330585546} + m_Father: {fileID: 2048155078} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &759707323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 759707325} + - component: {fileID: 759707324} + m_Layer: 0 + m_Name: Folder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &759707324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759707323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0892af0ddd15c449d9b1c65248b5dc64, 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: 7 + Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: isOverridingDuration + Entry: 5 + Data: false + - Name: startTime + Entry: 4 + Data: 0 + - Name: endTime + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: transformSubmodule + Entry: 7 + Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: originalPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: positionOffset + Entry: 7 + Data: 2|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: eulerAnglesOffset + Entry: 7 + Data: 3|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: scaleOffset + Entry: 7 + Data: 4|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: currentPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: positionDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesDirtyMark + Entry: 5 + Data: false + - Name: scaleDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesOffsetLock + Entry: 5 + Data: false + - Name: OnPositionChanged + Entry: 6 + Data: + - Name: OnEulerAnglesChanged + Entry: 6 + Data: + - Name: OnScaleChanged + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: colorSubmodule + Entry: 6 + Data: + elementName: + serialNumber: 0 + parentElement: {fileID: 0} + childElementList: [] +--- !u!4 &759707325 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759707323} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 293267688} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &832575517 GameObject: m_ObjectHideFlags: 0 @@ -1146,6 +1577,8 @@ GameObject: - component: {fileID: 1197505579} - component: {fileID: 1197505578} - component: {fileID: 1197505580} + - component: {fileID: 1197505581} + - component: {fileID: 1197505582} m_Layer: 0 m_Name: EditorManager m_TagString: Untagged @@ -1257,7 +1690,35 @@ MonoBehaviour: - Name: Entry: 8 Data: ---- !u!1 &1754040413 +--- !u!114 &1197505581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197505577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 912c3a32e155f4ca79a4ca1fa1f359e5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1197505582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197505577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d27859adda1341aaa0db8a117d5431c, type: 3} + m_Name: + m_EditorClassIdentifier: + themeBundleAbstractList: [] + selectedThemeBundleList: [] + loadedThemeBundleList: [] + waitingBundleAmount: 0 +--- !u!1 &2048155077 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1265,110 +1726,35 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1754040417} - - component: {fileID: 1754040416} - - component: {fileID: 1754040415} - - component: {fileID: 1754040414} + - component: {fileID: 2048155078} m_Layer: 0 - m_Name: Sphere + m_Name: RotationPoint m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!135 &1754040414 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1754040413} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1754040415 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1754040413} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1754040416 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1754040413} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1754040417 +--- !u!4 &2048155078 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1754040413} + m_GameObject: {fileID: 2048155077} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 5} + 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_Children: + - {fileID: 719302918} + m_Father: {fileID: 293267688} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - - {fileID: 330585546} - {fileID: 410087041} - {fileID: 832575519} - {fileID: 1197505579} - - {fileID: 1754040417} - - {fileID: 151772093} + - {fileID: 759707325} diff --git a/Assets/Scripts/.DS_Store b/Assets/Scripts/.DS_Store index 0ea3e43f..aff4f18f 100644 Binary files a/Assets/Scripts/.DS_Store and b/Assets/Scripts/.DS_Store differ diff --git a/Assets/Scripts/Animations/AnimationBase.cs b/Assets/Scripts/Animations/AnimationBase.cs index 52f896cc..c600d4ed 100644 --- a/Assets/Scripts/Animations/AnimationBase.cs +++ b/Assets/Scripts/Animations/AnimationBase.cs @@ -38,6 +38,11 @@ namespace Ichni.RhythmGame timeDurationSubmodule = new TimeDurationSubmodule(startTimes.Min(), endTimes.Max()); } + public virtual void SetTimeDuration(float startTime, float endTime) + { + timeDurationSubmodule = new TimeDurationSubmodule(startTime, endTime); + } + protected abstract void UpdateAnimation(float songTime); protected virtual void Update() diff --git a/Assets/Scripts/Animations/Color.meta b/Assets/Scripts/Animations/Color.meta new file mode 100644 index 00000000..763c79bd --- /dev/null +++ b/Assets/Scripts/Animations/Color.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3418d0d84b6b476db0e552f2e754c7e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Animations/Color/BaseColorChange.cs b/Assets/Scripts/Animations/Color/BaseColorChange.cs new file mode 100644 index 00000000..e117c156 --- /dev/null +++ b/Assets/Scripts/Animations/Color/BaseColorChange.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using Lean.Pool; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class BaseColorChange : AnimationBase + { + public ColorSubmodule targetColorSubmodule; + public FlexibleFloat colorR, colorG, colorB, colorA; + + public static BaseColorChange GenerateElement(string elementName, BaseElement targetObject, + FlexibleFloat colorR, FlexibleFloat colorG, FlexibleFloat colorB, FlexibleFloat colorA) + { + BaseColorChange baseColorChange = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + + baseColorChange.NewInitialize(elementName, targetObject); + baseColorChange.colorR = colorR; + baseColorChange.colorG = colorG; + baseColorChange.colorB = colorB; + baseColorChange.colorA = colorA; + baseColorChange.animationReturnType = FlexibleReturnType.Before; + + if (targetObject.colorSubmodule != null) + { + baseColorChange.targetColorSubmodule = targetObject.colorSubmodule; + } + else + { + throw new System.Exception("Target object does not have a ColorSubmodule"); + } + + baseColorChange.SetTimeDuration(colorR, colorG, colorB, colorA); + + return baseColorChange; + } + + protected override void UpdateAnimation(float songTime) + { + colorR.UpdateFlexibleFloat(songTime); + colorG.UpdateFlexibleFloat(songTime); + colorB.UpdateFlexibleFloat(songTime); + colorA.UpdateFlexibleFloat(songTime); + + if (colorR.returnType is FlexibleReturnType.MiddleExecuting || + colorG.returnType is FlexibleReturnType.MiddleExecuting || + colorB.returnType is FlexibleReturnType.MiddleExecuting || + colorA.returnType is FlexibleReturnType.MiddleExecuting) + { + animationReturnType = FlexibleReturnType.MiddleExecuting; + Color colorOffset = new Color(colorR.value, colorG.value, colorB.value, colorA.value); + targetColorSubmodule.baseColorOffset.Add(colorOffset); + targetColorSubmodule.baseColorDirtyMark = true; + } + else + { + animationReturnType = FlexibleReturnType.MiddleInterval; + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Animations/Color/BaseColorChange.cs.meta b/Assets/Scripts/Animations/Color/BaseColorChange.cs.meta new file mode 100644 index 00000000..e996d1e4 --- /dev/null +++ b/Assets/Scripts/Animations/Color/BaseColorChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3dada7ead8505418198027da3d9984bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Animations/Color/EmissionColorChange.cs b/Assets/Scripts/Animations/Color/EmissionColorChange.cs new file mode 100644 index 00000000..6cb1991a --- /dev/null +++ b/Assets/Scripts/Animations/Color/EmissionColorChange.cs @@ -0,0 +1,65 @@ +using System.Collections; +using System.Collections.Generic; +using Lean.Pool; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class EmissionColorChange : AnimationBase + { + public ColorSubmodule targetColorSubmodule; + public FlexibleFloat colorR, colorG, colorB, colorI; + + public static EmissionColorChange GenerateElement(string elementName, BaseElement targetObject, + FlexibleFloat colorR, FlexibleFloat colorG, FlexibleFloat colorB, FlexibleFloat colorI) + { + EmissionColorChange baseColorChange = LeanPool.Spawn(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; + + if (targetObject.colorSubmodule != null) + { + baseColorChange.targetColorSubmodule = targetObject.colorSubmodule; + } + else + { + throw new System.Exception("Target object does not have a ColorSubmodule"); + } + + baseColorChange.SetTimeDuration(colorR, colorG, colorB, colorI); + + return baseColorChange; + } + + protected override void UpdateAnimation(float songTime) + { + colorR.UpdateFlexibleFloat(songTime); + colorG.UpdateFlexibleFloat(songTime); + colorB.UpdateFlexibleFloat(songTime); + colorI.UpdateFlexibleFloat(songTime); + + if (colorR.returnType is FlexibleReturnType.MiddleExecuting || + colorG.returnType is FlexibleReturnType.MiddleExecuting || + colorB.returnType is FlexibleReturnType.MiddleExecuting || + colorI.returnType is FlexibleReturnType.MiddleExecuting) + { + animationReturnType = FlexibleReturnType.MiddleExecuting; + Color colorOffset = new Color(colorR.value, colorG.value, colorB.value); + float intensityOffset = colorI.value; + + targetColorSubmodule.emissionColorOffset.Add(colorOffset); + targetColorSubmodule.emissionIntensityOffset.Add(intensityOffset); + targetColorSubmodule.emissionColorDirtyMark = true; + } + else + { + animationReturnType = FlexibleReturnType.MiddleInterval; + } + } + } +} diff --git a/Assets/Scripts/Animations/Color/EmissionColorChange.cs.meta b/Assets/Scripts/Animations/Color/EmissionColorChange.cs.meta new file mode 100644 index 00000000..06ae6193 --- /dev/null +++ b/Assets/Scripts/Animations/Color/EmissionColorChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed8c4bbcff6cc433dae44740d8f01b84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Animations/Track.meta b/Assets/Scripts/Animations/Track.meta new file mode 100644 index 00000000..8eee5ae4 --- /dev/null +++ b/Assets/Scripts/Animations/Track.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17936224adc4a4e3497f05188aeb115f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs new file mode 100644 index 00000000..b5196e01 --- /dev/null +++ b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs @@ -0,0 +1,43 @@ +using System.Collections; +using System.Collections.Generic; +using Lean.Pool; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class TrackTotalTimeChange : AnimationBase + { + public FlexibleFloat totalTime; + public TrackTimeSubmoduleStatic targetTrackTimeSubmoduleStatic; + + public static TrackTotalTimeChange GenerateElement(string elementName, Track targetTrack, FlexibleFloat totalTime) + { + TrackTotalTimeChange trackTotalTimeChange = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + trackTotalTimeChange.NewInitialize(elementName, targetTrack); + + if (targetTrack.trackTimeSubmodule is TrackTimeSubmoduleStatic submoduleStatic) + { + trackTotalTimeChange.targetTrackTimeSubmoduleStatic = submoduleStatic; + } + else + { + throw new System.Exception("Target object does not have a TrackTimeSubmoduleStatic"); + } + + trackTotalTimeChange.totalTime = totalTime; + trackTotalTimeChange.animationReturnType = FlexibleReturnType.Before; + trackTotalTimeChange.SetTimeDuration(totalTime); + return trackTotalTimeChange; + } + + protected override void UpdateAnimation(float songTime) + { + totalTime.UpdateFlexibleFloat(songTime); + + if (totalTime.returnType == FlexibleReturnType.MiddleExecuting) + { + targetTrackTimeSubmoduleStatic.trackTotalTime = totalTime.value; + } + } + } +} diff --git a/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs.meta b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs.meta new file mode 100644 index 00000000..e8201399 --- /dev/null +++ b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2eec4a2a4ac744e0ca183d59c465c4e2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Animations/Transform/Displacement.cs b/Assets/Scripts/Animations/Transform/Displacement.cs index b1b8f903..261f1f25 100644 --- a/Assets/Scripts/Animations/Transform/Displacement.cs +++ b/Assets/Scripts/Animations/Transform/Displacement.cs @@ -41,6 +41,11 @@ namespace Ichni.RhythmGame return displacement; } + private void Start() + { + targetTransformSubmodule = targetObject.transformSubmodule; + } + protected override void UpdateAnimation(float songTime) { positionX.UpdateFlexibleFloat(songTime); @@ -56,6 +61,10 @@ namespace Ichni.RhythmGame targetTransformSubmodule.positionOffset.Add(currentPosition); targetTransformSubmodule.positionDirtyMark = true; } + else + { + animationReturnType = FlexibleReturnType.MiddleInterval; + } //本体使用,用于判断动画是否结束 // else if (positionX.returnType is FlexibleReturnType.After or FlexibleReturnType.None && diff --git a/Assets/Scripts/Animations/Transform/LookAt.cs b/Assets/Scripts/Animations/Transform/LookAt.cs new file mode 100644 index 00000000..fad10cc7 --- /dev/null +++ b/Assets/Scripts/Animations/Transform/LookAt.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Lean.Pool; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Ichni.RhythmGame +{ + /// + /// 将物体的z轴指向目标物体,注意,LookAt的启用期间,物体的旋转将被锁定 + /// + public class LookAt : AnimationBase + { + public TransformSubmodule targetTransformSubmodule; + public BaseElement lookAtObject; + public FlexibleBool enabling; + + public static LookAt GenerateElement(string elementName, BaseElement targetObject, + BaseElement lookAtTarget, FlexibleBool enabling) + { + LookAt swirl = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + + swirl.NewInitialize(elementName, targetObject); + + swirl.lookAtObject = lookAtTarget; + swirl.enabling = enabling; + swirl.animationReturnType = FlexibleReturnType.Before; + + if (targetObject.transformSubmodule != null) + { + swirl.targetTransformSubmodule = targetObject.transformSubmodule; + } + else + { + throw new System.Exception("Target object does not have a TransformSubmodule"); + } + + swirl.SetTimeDuration(-999, 999); //TODO: 换为(-delay, songLength) + + return swirl; + } + + private void Start() + { + targetTransformSubmodule = targetObject.transformSubmodule; + } + + protected override void UpdateAnimation(float songTime) + { + enabling.UpdateFlexibleBool(songTime); + if (enabling.value) + { + animationReturnType = FlexibleReturnType.MiddleExecuting; + Vector3 lookingDirection = + (lookAtObject.transform.position - targetObject.transform.position).normalized; + + Vector3 eulerAnglesOffset = Quaternion.LookRotation(lookingDirection).eulerAngles; + + targetTransformSubmodule.eulerAnglesOffsetLock = true; + + targetTransformSubmodule.currentEulerAngles = eulerAnglesOffset; + } + else + { + animationReturnType = FlexibleReturnType.MiddleInterval; + targetTransformSubmodule.eulerAnglesOffsetLock = false; + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Animations/Transform/LookAt.cs.meta b/Assets/Scripts/Animations/Transform/LookAt.cs.meta new file mode 100644 index 00000000..7891fcee --- /dev/null +++ b/Assets/Scripts/Animations/Transform/LookAt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c02ee9e15cdc048c5909a61377382530 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Animations/Transform/Scale.cs b/Assets/Scripts/Animations/Transform/Scale.cs index 179061cd..42e1e8e2 100644 --- a/Assets/Scripts/Animations/Transform/Scale.cs +++ b/Assets/Scripts/Animations/Transform/Scale.cs @@ -49,6 +49,10 @@ namespace Ichni.RhythmGame Vector3 currentScale = new Vector3(scaleX.value, scaleY.value, scaleZ.value); targetTransformSubmodule.scaleOffset.Add(currentScale); targetTransformSubmodule.scaleDirtyMark = true; + } + else + { + animationReturnType = FlexibleReturnType.MiddleInterval; } } } diff --git a/Assets/Scripts/Animations/Transform/Swirl.cs b/Assets/Scripts/Animations/Transform/Swirl.cs index 5f64796a..906eda37 100644 --- a/Assets/Scripts/Animations/Transform/Swirl.cs +++ b/Assets/Scripts/Animations/Transform/Swirl.cs @@ -51,6 +51,10 @@ namespace Ichni.RhythmGame targetTransformSubmodule.eulerAnglesOffset.Add(currentEulerAngles); targetTransformSubmodule.eulerAnglesDirtyMark = true; } + else + { + animationReturnType = FlexibleReturnType.MiddleInterval; + } } } } \ No newline at end of file diff --git a/Assets/Scripts/Base/.DS_Store b/Assets/Scripts/Base/.DS_Store new file mode 100644 index 00000000..b61292d7 Binary files /dev/null and b/Assets/Scripts/Base/.DS_Store differ diff --git a/Assets/Scripts/Base/BaseElement.cs b/Assets/Scripts/Base/BaseElement.cs index 6400ca02..765c0b91 100644 --- a/Assets/Scripts/Base/BaseElement.cs +++ b/Assets/Scripts/Base/BaseElement.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using Sirenix.OdinInspector; +using UniRx; using UnityEngine; namespace Ichni.RhythmGame @@ -31,6 +32,7 @@ namespace Ichni.RhythmGame //次级模块 public TimeDurationSubmodule timeDurationSubmodule; public TransformSubmodule transformSubmodule; + public ColorSubmodule colorSubmodule; /// /// 首次初始化 @@ -42,6 +44,7 @@ namespace Ichni.RhythmGame this.elementGuid = Guid.NewGuid(); //GameManager.beatMapContainer.beatMapElementList.Add(this); //serialNumber = totalSerialNumber++; + SetTransformObserver(); } /// @@ -77,6 +80,11 @@ namespace Ichni.RhythmGame public abstract partial class BaseElement { + private void Start() + { + SetTransformObserver(); + } + public virtual void SetTimeDuration() { @@ -89,5 +97,60 @@ namespace Ichni.RhythmGame timeDurationSubmodule?.SetDurationFromChildren(childElementList.Select(x=>x.timeDurationSubmodule).ToList()); } + + /// + /// 设置物体Transform的监听,顺序为Scale -> EulerAngles -> Position + /// 如果有一些特殊的物体(例如Camera,ElementFolder),需要自定义监听,可以重写这个方法 + /// + public virtual void SetTransformObserver() + { + Observable.EveryUpdate().Subscribe(_ => + { + if (transformSubmodule == null) + { + return; + } + + if (transformSubmodule.scaleDirtyMark) + { + Vector3 offset = Vector3.zero; + foreach (Vector3 scaleOffset in transformSubmodule.scaleOffset) + { + offset += scaleOffset; + } + transformSubmodule.currentScale = transformSubmodule.originalScale + offset; + transform.localScale = transformSubmodule.currentScale; + transformSubmodule.scaleDirtyMark = false; + } + + if (transformSubmodule.eulerAnglesDirtyMark) + { + Vector3 offset = Vector3.zero; + foreach (Vector3 eulerOffset in transformSubmodule.eulerAnglesOffset) + { + offset += eulerOffset; + } + transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + offset; + transform.localEulerAngles = transformSubmodule.currentEulerAngles; + transformSubmodule.eulerAnglesDirtyMark = false; + } + + if (transformSubmodule.positionDirtyMark) + { + Vector3 offset = Vector3.zero; + foreach (Vector3 posOffset in transformSubmodule.positionOffset) + { + 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); + } } } \ No newline at end of file diff --git a/Assets/Scripts/Base/FlexibleTypes/FlexibleBool.cs b/Assets/Scripts/Base/FlexibleTypes/FlexibleBool.cs new file mode 100644 index 00000000..1e8e3c53 --- /dev/null +++ b/Assets/Scripts/Base/FlexibleTypes/FlexibleBool.cs @@ -0,0 +1,70 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Ichni +{ + [System.Serializable] + public class AnimatedBool + { + public bool value; //bool值 + public float time; //当前时间 + + public AnimatedBool(bool value, float time) + { + this.value = value; + this.time = time; + } + } + + [System.Serializable] + public class FlexibleBool + { + public bool value; + public List animations; + + public FlexibleBool() + { + animations = new List(); + } + + public FlexibleBool(List anim) + { + this.animations = anim; + } + + public void Add(AnimatedBool animatedBool) + { + animations.Add(animatedBool); + } + + /// + /// 在动画脚本的Update中更新Bool Value + /// + /// + public FlexibleReturnType UpdateFlexibleBool(float nowTime) + { + AnimatedBool nowAnimatedBool = GetAnimatedBool(nowTime); //获取当前时间点对应的AnimatedBool + value = nowAnimatedBool.value; //更新value + return FlexibleReturnType.MiddleExecuting; + } + + /// + /// 获取songTime对应的AnimatedBool的时间段 + /// + /// + /// 返回距离当前时间最近的前一个AnimatedBool + AnimatedBool GetAnimatedBool(float nowTime) + { + for (int i = 0; i < animations.Count; i++) + { + if (nowTime >= animations[i].time) + { + return animations[i]; + } + } + + return new AnimatedBool(false, 0); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Base/FlexibleTypes/FlexibleBool.cs.meta b/Assets/Scripts/Base/FlexibleTypes/FlexibleBool.cs.meta new file mode 100644 index 00000000..541019e4 --- /dev/null +++ b/Assets/Scripts/Base/FlexibleTypes/FlexibleBool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43cce55e6aac440e9b664e917adc2f74 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs index 04cf32c9..ce609f4a 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs @@ -22,6 +22,11 @@ namespace Ichni.RhythmGame public bool baseColorDirtyMark; public bool emissionColorDirtyMark; + public ColorSubmodule() + { + + } + public ColorSubmodule(Color originalBaseColor) { this.originalBaseColor = originalBaseColor; diff --git a/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs index bf3d6f24..7b3565d8 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs @@ -26,25 +26,53 @@ namespace Ichni.RhythmGame public bool positionDirtyMark; public bool eulerAnglesDirtyMark; public bool scaleDirtyMark; + + public bool eulerAnglesOffsetLock; public UnityAction OnPositionChanged; public UnityAction OnEulerAnglesChanged; public UnityAction OnScaleChanged; + public TransformSubmodule() + { + this.originalPosition = Vector3.zero; + this.originalEulerAngles = Vector3.zero; + this.originalScale = Vector3.one; + + positionOffset = new List(); + eulerAnglesOffset = new List(); + scaleOffset = new List(); + + currentPosition = Vector3.zero; + currentEulerAngles = Vector3.zero; + currentScale = Vector3.one; + + positionDirtyMark = false; + eulerAnglesDirtyMark = false; + scaleDirtyMark = false; + + eulerAnglesOffsetLock = false; + } + public TransformSubmodule(Vector3 originalPosition, Vector3 originalEulerAngles, Vector3 originalScale) { this.originalPosition = originalPosition; this.originalEulerAngles = originalEulerAngles; this.originalScale = originalScale; + positionOffset = new List(); eulerAnglesOffset = new List(); scaleOffset = new List(); + currentPosition = originalPosition; currentEulerAngles = originalEulerAngles; currentScale = originalScale; + positionDirtyMark = false; eulerAnglesDirtyMark = false; scaleDirtyMark = false; + + eulerAnglesOffsetLock = false; } public void SetObserver(BaseElement target) diff --git a/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs b/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs index a1167e05..64e0fda2 100644 --- a/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs +++ b/Assets/Scripts/Base/Manager/BasePrefabsCollection.cs @@ -9,6 +9,7 @@ public class BasePrefabsCollection : SerializedScriptableObject [Title("基础预制体")] public GameObject emptyObject; public GameObject elementFolder; + public GameObject gameCamera; [Title("Track相关")] public GameObject track; diff --git a/Assets/Scripts/Base/Manager/EditorManager.cs b/Assets/Scripts/Base/Manager/EditorManager.cs index 0897a6b6..31eb362d 100644 --- a/Assets/Scripts/Base/Manager/EditorManager.cs +++ b/Assets/Scripts/Base/Manager/EditorManager.cs @@ -34,6 +34,11 @@ namespace Ichni t0.AfterInitialize(); } + + private void Update() + { + songModule.songTime += Time.deltaTime; + } } public class SongModule diff --git a/Assets/Scripts/Base/Manager/ThemeBundleManager.cs b/Assets/Scripts/Base/Manager/ThemeBundleManager.cs index 05e981f6..5bfa8b13 100644 --- a/Assets/Scripts/Base/Manager/ThemeBundleManager.cs +++ b/Assets/Scripts/Base/Manager/ThemeBundleManager.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.Networking; +using UnityEngine.Serialization; namespace Ichni { @@ -123,20 +124,23 @@ namespace Ichni [System.Serializable] public class ThemeBundleAbstract { - public string themeBundleName; + public string fileName; + public string displayName; + public string description; public List tags; - public string iconPath; public ThemeBundleAbstract() { } - public ThemeBundleAbstract(string themeBundleName, List tags, string iconPath) + public ThemeBundleAbstract(string fileName) { - this.themeBundleName = themeBundleName; - this.tags = tags; - this.iconPath = iconPath; + this.fileName = fileName; + this.displayName = fileName; + this.description = "Default Description"; + this.tags = new List(); + this.iconPath = "Icons/Default.png"; } public Texture2D GetIcon() diff --git a/Assets/Scripts/Console.meta b/Assets/Scripts/Console.meta new file mode 100644 index 00000000..c9544beb --- /dev/null +++ b/Assets/Scripts/Console.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e7fc3c136a914933bc2a6d75b13e7d1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Console/EditorConsole.cs b/Assets/Scripts/Console/EditorConsole.cs new file mode 100644 index 00000000..f2433757 --- /dev/null +++ b/Assets/Scripts/Console/EditorConsole.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using DynamicExpresso; + +namespace Ichni.Editor +{ + public partial class EditorConsole : MonoBehaviour + { + public Interpreter functionInterpreter; + + private void Start() + { + SetUpFunctions(); + + //Test + functionInterpreter.Eval("Log(\"Hello World!\")"); + } + } + + public partial class EditorConsole + { + private void SetUpFunctions() + { + functionInterpreter = new Interpreter(); + + functionInterpreter.SetFunction("Log", (System.Action)Debug.Log); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Console/EditorConsole.cs.meta b/Assets/Scripts/Console/EditorConsole.cs.meta new file mode 100644 index 00000000..57059539 --- /dev/null +++ b/Assets/Scripts/Console/EditorConsole.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 912c3a32e155f4ca79a4ca1fa1f359e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/ElementFolder.cs b/Assets/Scripts/GameElements/ElementFolder.cs index 13dfb49e..7d8c5c30 100644 --- a/Assets/Scripts/GameElements/ElementFolder.cs +++ b/Assets/Scripts/GameElements/ElementFolder.cs @@ -14,10 +14,10 @@ namespace Ichni.RhythmGame elementFolder.NewInitialize(name); elementFolder.SetParent(parentElement); + elementFolder.transformSubmodule = new TransformSubmodule(Vector3.zero, Vector3.zero, Vector3.one); //elementFolder.GenerateTab(parentElement); return elementFolder; } - } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs new file mode 100644 index 00000000..6f8c7107 --- /dev/null +++ b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using Lean.Pool; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class EnvironmentObject : SubstantialObject + { + public bool isStatic; + + public static SubstantialObject GenerateElement(string elementName, string themeBundleName, + string objectName, Vector3 position, Vector3 eulerAngles, Vector3 scale, BaseElement parent, + bool isStatic, bool isFirstGenerated = true) + { + EnvironmentObject themeBundleObject = ThemeBundleManager.instance.GetObject(themeBundleName, objectName); + EnvironmentObject environmentObject = LeanPool.Spawn(themeBundleObject, parent.transform).GetComponent(); + environmentObject.NewInitialize(elementName); + environmentObject.isStatic = isStatic; + return environmentObject; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs.meta b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs.meta new file mode 100644 index 00000000..25235a03 --- /dev/null +++ b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b73aa7982dc9e4261b2ff45db0112d48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/GameCamera.meta b/Assets/Scripts/GameElements/GameCamera.meta new file mode 100644 index 00000000..62bb8dda --- /dev/null +++ b/Assets/Scripts/GameElements/GameCamera.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56a4c0ac4ed204fcfb16a22f625230cd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/GameCamera/GameCamera.cs b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs new file mode 100644 index 00000000..124ba416 --- /dev/null +++ b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Dreamteck.Splines; +using Lean.Pool; +using UniRx; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Ichni.RhythmGame +{ + public partial class GameCamera : BaseElement + { + public Camera camera; + public Transform rotationPoint; + public Transform positionPoint; + public Transform cameraTransform; + + public CameraViewType cameraViewType; + public float perspectiveAngle; + public float orthographicSize; + + public static GameCamera GenerateElement(string elementName, BaseElement parentElement, + CameraViewType cameraViewType, float perspectiveAngle, float orthographicSize, + Vector3 initialPosition, Vector3 initialEulerAngles) + { + GameCamera gameCamera = LeanPool.Spawn(EditorManager.instance.basePrefabs.gameCamera).GetComponent(); + + gameCamera.NewInitialize(elementName); + gameCamera.parentElement = parentElement; + gameCamera.cameraViewType = cameraViewType; + gameCamera.camera.orthographic = cameraViewType == CameraViewType.Orthographic; + gameCamera.perspectiveAngle = perspectiveAngle; + gameCamera.orthographicSize = orthographicSize; + gameCamera.transformSubmodule = new TransformSubmodule(initialPosition, initialEulerAngles, Vector3.one); + gameCamera.cameraTransform = gameCamera.transform; + + gameCamera.SetParent(parentElement); + + return gameCamera; + } + } + + public partial class GameCamera + { + public enum CameraViewType + { + None = -1, + Perspective = 0, + Orthographic = 1 + } + } + + public partial class GameCamera + { + public override void SetTransformObserver() + { + Observable.EveryUpdate().Subscribe(_ => + { + if (transformSubmodule.eulerAnglesOffsetLock) + { + rotationPoint.eulerAngles = transformSubmodule.currentEulerAngles; + } + else if (transformSubmodule.eulerAnglesDirtyMark) + { + Vector3 offset = Vector3.zero; + foreach (Vector3 eulerOffset in transformSubmodule.eulerAnglesOffset) + { + offset += eulerOffset; + } + transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + offset; + rotationPoint.eulerAngles = transformSubmodule.currentEulerAngles; + transformSubmodule.eulerAnglesDirtyMark = false; + } + + if (transformSubmodule.positionDirtyMark) + { + Vector3 offset = Vector3.zero; + foreach (Vector3 posOffset in transformSubmodule.positionOffset) + { + offset += posOffset; + } + transformSubmodule.currentPosition = transformSubmodule.originalPosition + offset; + positionPoint.localPosition = transformSubmodule.currentPosition; + transformSubmodule.positionDirtyMark = false; + } + }).AddTo(gameObject); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/GameCamera/GameCamera.cs.meta b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs.meta new file mode 100644 index 00000000..2ccc18e7 --- /dev/null +++ b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 79d811a12f27f43629797719fcbfc6ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/Notes/NoteBase.cs b/Assets/Scripts/GameElements/Notes/NoteBase.cs index c6440180..a3d7caff 100644 --- a/Assets/Scripts/GameElements/Notes/NoteBase.cs +++ b/Assets/Scripts/GameElements/Notes/NoteBase.cs @@ -17,9 +17,9 @@ namespace Ichni.RhythmGame public Track track; public SplinePositioner trackPositioner; - // [Title("NoteVisual")] - // public GeneralNoteVisual noteVisual; - // + [Title("NoteVisual")] + public NoteVisualBase noteVisual; + [Title("NoteEffect")] [Tooltip("生成Note时的特效")] public EffectSubmodule generateEffects; diff --git a/Assets/Scripts/GameElements/Notes/NoteEffectBase.cs b/Assets/Scripts/GameElements/Notes/NoteEffectBase.cs new file mode 100644 index 00000000..63776280 --- /dev/null +++ b/Assets/Scripts/GameElements/Notes/NoteEffectBase.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Ichni.RhythmGame +{ + public class NoteEffectBase : EffectBase + { + public NoteBase note; + public NoteVisualBase noteVisual; + } +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/NoteEffectBase.cs.meta b/Assets/Scripts/GameElements/Notes/NoteEffectBase.cs.meta new file mode 100644 index 00000000..41604af9 --- /dev/null +++ b/Assets/Scripts/GameElements/Notes/NoteEffectBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5346ecda36b94450cba8f853621bdfdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs b/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs index c49ea072..2e6ccd1c 100644 --- a/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs +++ b/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs @@ -2,17 +2,22 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -public class NoteVisualBase : MonoBehaviour +namespace Ichni.RhythmGame { - // Start is called before the first frame update - void Start() + public class NoteVisualBase : SubstantialObject { + public NoteBase note; - } + public GameObject noteMain; + public GameObject judgeEffect; - // Update is called once per frame - void Update() - { + public List notePartList; + public List effectPartList; + public void NewInitialize(NoteBase note) + { + base.NewInitialize(note.elementName + " Note Visual"); + this.note = note; + } } -} +} \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs b/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs index 83dd7cc5..e7aa6431 100644 --- a/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs +++ b/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; using Dreamteck.Splines; using Lean.Pool; using UniRx; @@ -15,6 +16,8 @@ namespace Ichni.RhythmGame public Track track; public SplinePositioner trackPositioner; public FlexibleFloat trackPercent; + + private bool isBeyond1 = false; public static TrackPercentPoint GenerateElement(string elementName, Track track, FlexibleFloat trackPercent) { @@ -23,6 +26,8 @@ namespace Ichni.RhythmGame point.NewInitialize(elementName, track, trackPercent); point.SetParent(track); + point.isBeyond1 = trackPercent.animations.Any(animation => animation.endValue > 1);//判断是否有超过1的动画,超过1将会循环 + return point; } @@ -42,7 +47,14 @@ namespace Ichni.RhythmGame trackPercent.UpdateFlexibleFloat(EditorManager.instance.songModule.songTime); if (trackPercent.returnType == FlexibleReturnType.MiddleExecuting) { - trackPositioner.SetPercent(trackPercent.value); + float finalValue = trackPercent.value; + + if (isBeyond1) + { + finalValue -= Mathf.Floor(finalValue); + } + + trackPositioner.SetPercent(finalValue); } } } diff --git a/Assets/Settings/URP-Balanced.asset b/Assets/Settings/URP-Balanced.asset index 65bbfc82..aef05b84 100644 --- a/Assets/Settings/URP-Balanced.asset +++ b/Assets/Settings/URP-Balanced.asset @@ -82,33 +82,33 @@ MonoBehaviour: m_Textures: blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} - m_PrefilteringModeMainLightShadows: 1 - m_PrefilteringModeAdditionalLight: 4 - m_PrefilteringModeAdditionalLightShadows: 1 - m_PrefilterXRKeywords: 0 - m_PrefilteringModeForwardPlus: 1 - m_PrefilteringModeDeferredRendering: 1 - m_PrefilteringModeScreenSpaceOcclusion: 1 - m_PrefilterDebugKeywords: 0 - m_PrefilterWriteRenderingLayers: 0 - m_PrefilterHDROutput: 0 - m_PrefilterSSAODepthNormals: 0 + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 2 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterSSAODepthNormals: 1 m_PrefilterSSAOSourceDepthLow: 0 - m_PrefilterSSAOSourceDepthMedium: 0 - m_PrefilterSSAOSourceDepthHigh: 0 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 m_PrefilterSSAOInterleaved: 0 - m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOBlueNoise: 1 m_PrefilterSSAOSampleCountLow: 0 - m_PrefilterSSAOSampleCountMedium: 0 - m_PrefilterSSAOSampleCountHigh: 0 - m_PrefilterDBufferMRT1: 0 - m_PrefilterDBufferMRT2: 0 - m_PrefilterDBufferMRT3: 0 - m_PrefilterSoftShadowsQualityLow: 0 - m_PrefilterSoftShadowsQualityMedium: 0 - m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 m_PrefilterSoftShadows: 0 - m_PrefilterScreenCoord: 0 - m_PrefilterNativeRenderPass: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 diff --git a/Assets/Settings/URP-HighFidelity.asset b/Assets/Settings/URP-HighFidelity.asset index d5265974..627e0eb0 100644 --- a/Assets/Settings/URP-HighFidelity.asset +++ b/Assets/Settings/URP-HighFidelity.asset @@ -82,33 +82,33 @@ MonoBehaviour: m_Textures: blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} - m_PrefilteringModeMainLightShadows: 1 - m_PrefilteringModeAdditionalLight: 4 - m_PrefilteringModeAdditionalLightShadows: 1 - m_PrefilterXRKeywords: 0 - m_PrefilteringModeForwardPlus: 1 - m_PrefilteringModeDeferredRendering: 1 - m_PrefilteringModeScreenSpaceOcclusion: 1 - m_PrefilterDebugKeywords: 0 - m_PrefilterWriteRenderingLayers: 0 - m_PrefilterHDROutput: 0 + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 2 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 m_PrefilterSSAODepthNormals: 0 - m_PrefilterSSAOSourceDepthLow: 0 - m_PrefilterSSAOSourceDepthMedium: 0 - m_PrefilterSSAOSourceDepthHigh: 0 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 m_PrefilterSSAOInterleaved: 0 - m_PrefilterSSAOBlueNoise: 0 - m_PrefilterSSAOSampleCountLow: 0 - m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 m_PrefilterSSAOSampleCountHigh: 0 - m_PrefilterDBufferMRT1: 0 - m_PrefilterDBufferMRT2: 0 - m_PrefilterDBufferMRT3: 0 - m_PrefilterSoftShadowsQualityLow: 0 - m_PrefilterSoftShadowsQualityMedium: 0 - m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 m_PrefilterSoftShadows: 0 - m_PrefilterScreenCoord: 0 - m_PrefilterNativeRenderPass: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 1 diff --git a/Assets/Settings/URP-Performant.asset b/Assets/Settings/URP-Performant.asset index 8650b693..05bb7419 100644 --- a/Assets/Settings/URP-Performant.asset +++ b/Assets/Settings/URP-Performant.asset @@ -82,33 +82,33 @@ MonoBehaviour: m_Textures: blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} - m_PrefilteringModeMainLightShadows: 1 - m_PrefilteringModeAdditionalLight: 4 - m_PrefilteringModeAdditionalLightShadows: 1 - m_PrefilterXRKeywords: 0 - m_PrefilteringModeForwardPlus: 1 - m_PrefilteringModeDeferredRendering: 1 - m_PrefilteringModeScreenSpaceOcclusion: 1 - m_PrefilterDebugKeywords: 0 - m_PrefilterWriteRenderingLayers: 0 - m_PrefilterHDROutput: 0 - m_PrefilterSSAODepthNormals: 0 - m_PrefilterSSAOSourceDepthLow: 0 - m_PrefilterSSAOSourceDepthMedium: 0 - m_PrefilterSSAOSourceDepthHigh: 0 - m_PrefilterSSAOInterleaved: 0 - m_PrefilterSSAOBlueNoise: 0 - m_PrefilterSSAOSampleCountLow: 0 - m_PrefilterSSAOSampleCountMedium: 0 - m_PrefilterSSAOSampleCountHigh: 0 - m_PrefilterDBufferMRT1: 0 - m_PrefilterDBufferMRT2: 0 - m_PrefilterDBufferMRT3: 0 - m_PrefilterSoftShadowsQualityLow: 0 - m_PrefilterSoftShadowsQualityMedium: 0 - m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilteringModeMainLightShadows: 0 + m_PrefilteringModeAdditionalLight: 0 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 m_PrefilterSoftShadows: 0 - m_PrefilterScreenCoord: 0 - m_PrefilterNativeRenderPass: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta new file mode 100644 index 00000000..eb5ad48a --- /dev/null +++ b/Assets/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41d169eab4b5f42bd82f68363fe237b1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/DefaultShaderVariants.shadervariants b/Assets/Shaders/DefaultShaderVariants.shadervariants new file mode 100644 index 00000000..3e60b289 --- /dev/null +++ b/Assets/Shaders/DefaultShaderVariants.shadervariants @@ -0,0 +1,162 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!200 &20000000 +ShaderVariantCollection: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DefaultShaderVariants + m_Shaders: + - first: {fileID: 66, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: _SUNDISK_SIMPLE + passType: 0 + - first: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - keywords: + passType: 8 + - keywords: PROCEDURAL_INSTANCING_ON + passType: 8 + - first: {fileID: 9000, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9001, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9002, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9003, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9004, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9007, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 9103, guid: 0000000000000000f000000000000000, type: 0} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + second: + variants: + - keywords: _OUTPUT_DEPTH + passType: 0 + - first: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} + second: + variants: + - keywords: _BLOOM_HQ _TONEMAP_NEUTRAL + passType: 0 + - first: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + second: + variants: + - keywords: + passType: 0 + - keywords: _INTERLEAVED_GRADIENT _SAMPLE_COUNT_HIGH _SOURCE_DEPTH_NORMALS + passType: 0 + - first: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3} + second: + variants: + - keywords: + passType: 0 + - keywords: _BLOOM_HQ + passType: 0 + - first: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + second: + variants: + - keywords: + passType: 8 + - keywords: + passType: 13 + - keywords: _ADDITIONAL_LIGHTS _ADDITIONAL_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS + _REFLECTION_PROBE_BLENDING _REFLECTION_PROBE_BOX_PROJECTION _SCREEN_SPACE_OCCLUSION + passType: 13 + - keywords: _ADDITIONAL_LIGHTS _ADDITIONAL_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE + _REFLECTION_PROBE_BLENDING _REFLECTION_PROBE_BOX_PROJECTION _SCREEN_SPACE_OCCLUSION + _SHADOWS_SOFT + passType: 13 + - first: {fileID: 4800000, guid: 36e335017ad71d54fbb10842863188ae, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 4df145ea9bd404e449891032fa9179dc, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 99e0f263ae4ed2d4d962a2e995dff6df, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 2ad0a53eacb91bd4fbe0dc668bf25e6f, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 0a8f4dcd626bcd14bbbfa5a5e116b16e, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 603d454d711fe784cba9ce08dd22b881, type: 3} + second: + variants: + - keywords: DUMMY + passType: 0 + - first: {fileID: 4800000, guid: 3230fdc399f8287488325e5941a00527, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: 7cbb3655339ec401ca75ba5fe26884f4, type: 3} + second: + variants: + - keywords: + passType: 0 + - first: {fileID: 4800000, guid: bedd19944f451ba4d83e7ed69be98d5c, type: 3} + second: + variants: + - keywords: + passType: 0 diff --git a/Assets/Shaders/DefaultShaderVariants.shadervariants.meta b/Assets/Shaders/DefaultShaderVariants.shadervariants.meta new file mode 100644 index 00000000..1ac00f59 --- /dev/null +++ b/Assets/Shaders/DefaultShaderVariants.shadervariants.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3dde077192f1340ebbb7a7a3085916cc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 20000000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets.meta b/Assets/StreamingAssets.meta new file mode 100644 index 00000000..175d64df --- /dev/null +++ b/Assets/StreamingAssets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc12867f9fc0d46cabeec9bdb4795a77 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/.DS_Store b/Assets/StreamingAssets/.DS_Store new file mode 100644 index 00000000..a9d8656d Binary files /dev/null and b/Assets/StreamingAssets/.DS_Store differ diff --git a/Assets/StreamingAssets/ThemeBundles.meta b/Assets/StreamingAssets/ThemeBundles.meta new file mode 100644 index 00000000..ff90031c --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a2ffb7e2b665348d8af211996c337be6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/.DS_Store b/Assets/StreamingAssets/ThemeBundles/.DS_Store new file mode 100644 index 00000000..d83e1a53 Binary files /dev/null and b/Assets/StreamingAssets/ThemeBundles/.DS_Store differ diff --git a/Assets/StreamingAssets/ThemeBundles/OSX.meta b/Assets/StreamingAssets/ThemeBundles/OSX.meta new file mode 100644 index 00000000..d934204b --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50379fdcfefa54bd2bc45c900e3db318 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX b/Assets/StreamingAssets/ThemeBundles/OSX/OSX new file mode 100644 index 00000000..89991e71 Binary files /dev/null and b/Assets/StreamingAssets/ThemeBundles/OSX/OSX differ diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest new file mode 100644 index 00000000..383bdfcb --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest @@ -0,0 +1,7 @@ +ManifestFileVersion: 0 +CRC: 3929595412 +AssetBundleManifest: + AssetBundleInfos: + Info_0: + Name: basic + Dependencies: {} diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest.meta b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest.meta new file mode 100644 index 00000000..2443cffe --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c7d02a146f9384a499ca4f8f48a4f2df +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX.meta b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.meta new file mode 100644 index 00000000..ccccab31 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3ad242f2d62504ac7a715c8b78e91261 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic b/Assets/StreamingAssets/ThemeBundles/OSX/basic new file mode 100644 index 00000000..786d5d34 Binary files /dev/null and b/Assets/StreamingAssets/ThemeBundles/OSX/basic differ diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest new file mode 100644 index 00000000..375f7e2b --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest @@ -0,0 +1,44 @@ +ManifestFileVersion: 0 +CRC: 3692374476 +Hashes: + AssetFileHash: + serializedVersion: 2 + Hash: d3fff661e0cc14bfbc3d0521f65d26e7 + TypeTreeHash: + serializedVersion: 2 + Hash: 0b29093cb0b98a6a3edca231f6a05b16 + IncrementalBuildHash: + serializedVersion: 2 + Hash: d3fff661e0cc14bfbc3d0521f65d26e7 +HashAppended: 0 +ClassTypes: +- Class: 1 + Script: {instanceID: 0} +- Class: 4 + Script: {instanceID: 0} +- Class: 21 + Script: {instanceID: 0} +- Class: 23 + Script: {instanceID: 0} +- Class: 28 + Script: {instanceID: 0} +- Class: 33 + Script: {instanceID: 0} +- Class: 43 + Script: {instanceID: 0} +- Class: 48 + Script: {instanceID: 0} +- Class: 114 + Script: {fileID: 11500000, guid: 72caf325f2b59403c94193cd2037b7ba, type: 3} +- Class: 115 + Script: {instanceID: 0} +- Class: 212 + Script: {instanceID: 0} +- Class: 213 + Script: {instanceID: 0} +SerializeReferenceClassIdentifiers: +- AssemblyName: Sirenix.Serialization + ClassName: Sirenix.Serialization.SerializationData +Assets: +- Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab +Dependencies: [] diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest.meta b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest.meta new file mode 100644 index 00000000..cfea5135 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c2010a804ee234d968caaf856b709731 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic.meta b/Assets/StreamingAssets/ThemeBundles/OSX/basic.meta new file mode 100644 index 00000000..3c77f420 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/OSX/basic.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ea334df976a143c9a871c18b3292255 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64.meta b/Assets/StreamingAssets/ThemeBundles/Windows64.meta new file mode 100644 index 00000000..c4bd1969 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab53f1438957c48ca8d3166755f9baba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 new file mode 100644 index 00000000..3f002c28 Binary files /dev/null and b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 differ diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest new file mode 100644 index 00000000..7ca6bcea --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest @@ -0,0 +1,7 @@ +ManifestFileVersion: 0 +CRC: 1773651032 +AssetBundleManifest: + AssetBundleInfos: + Info_0: + Name: basic + Dependencies: {} diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest.meta b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest.meta new file mode 100644 index 00000000..fc4820e0 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 175fd9b664900436ab65aef5b9673b61 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.meta b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.meta new file mode 100644 index 00000000..ac820a35 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a49f2ebd8c1ef4dae82289e5f8ac1387 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/basic b/Assets/StreamingAssets/ThemeBundles/Windows64/basic new file mode 100644 index 00000000..1f19253f Binary files /dev/null and b/Assets/StreamingAssets/ThemeBundles/Windows64/basic differ diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest new file mode 100644 index 00000000..d26a46d2 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest @@ -0,0 +1,44 @@ +ManifestFileVersion: 0 +CRC: 4245054749 +Hashes: + AssetFileHash: + serializedVersion: 2 + Hash: f530ae7325c749054b1c2af2f2a8f842 + TypeTreeHash: + serializedVersion: 2 + Hash: 0b29093cb0b98a6a3edca231f6a05b16 + IncrementalBuildHash: + serializedVersion: 2 + Hash: f530ae7325c749054b1c2af2f2a8f842 +HashAppended: 0 +ClassTypes: +- Class: 1 + Script: {instanceID: 0} +- Class: 4 + Script: {instanceID: 0} +- Class: 21 + Script: {instanceID: 0} +- Class: 23 + Script: {instanceID: 0} +- Class: 28 + Script: {instanceID: 0} +- Class: 33 + Script: {instanceID: 0} +- Class: 43 + Script: {instanceID: 0} +- Class: 48 + Script: {instanceID: 0} +- Class: 114 + Script: {fileID: 11500000, guid: 72caf325f2b59403c94193cd2037b7ba, type: 3} +- Class: 115 + Script: {instanceID: 0} +- Class: 212 + Script: {instanceID: 0} +- Class: 213 + Script: {instanceID: 0} +SerializeReferenceClassIdentifiers: +- AssemblyName: Sirenix.Serialization + ClassName: Sirenix.Serialization.SerializationData +Assets: +- Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab +Dependencies: [] diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest.meta b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest.meta new file mode 100644 index 00000000..3aa0082d --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7cd1c31164500418498415c1203ad157 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.meta b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.meta new file mode 100644 index 00000000..261fa3c7 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1779cd0b4513419889855538d5626fb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/ThemeBundles/basic.abs b/Assets/StreamingAssets/ThemeBundles/basic.abs new file mode 100644 index 00000000..d862bac4 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/basic.abs @@ -0,0 +1,14 @@ +{ + "ThemeBundleAbstract" : { + "__type" : "Ichni.ThemeBundleAbstract,Assembly-CSharp", + "value" : { + "fileName" : "basic", + "displayName" : "basic", + "description" : "Default Description", + "tags" : [ + + ], + "iconPath" : "Icons\/Default.png" + } + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/ThemeBundles/basic.abs.meta b/Assets/StreamingAssets/ThemeBundles/basic.abs.meta new file mode 100644 index 00000000..863139c6 --- /dev/null +++ b/Assets/StreamingAssets/ThemeBundles/basic.abs.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b47fc7bdb99e4aeb8cf9b577319e77d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles.meta b/Assets/ThemeBundles.meta new file mode 100644 index 00000000..ebec06b7 --- /dev/null +++ b/Assets/ThemeBundles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d417bd3ad53ce4c2696c16fa886b42b5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic.meta b/Assets/ThemeBundles/Basic.meta new file mode 100644 index 00000000..cd83dcb1 --- /dev/null +++ b/Assets/ThemeBundles/Basic.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e5fd1ca3c8ac4128b0d82f76308f47c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Prefabs.meta b/Assets/ThemeBundles/Basic/Prefabs.meta new file mode 100644 index 00000000..1364f9ca --- /dev/null +++ b/Assets/ThemeBundles/Basic/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 504c52e6e4379490fad1f642ed5e36bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab new file mode 100644 index 00000000..0ebbbb89 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab @@ -0,0 +1,542 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6759562726529963496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8577101396104971865} + - component: {fileID: 1652441339443578052} + m_Layer: 0 + m_Name: JudgeEffect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8577101396104971865 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6759562726529963496} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 4303129164719886000} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1652441339443578052 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6759562726529963496} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 0ab11be59df835d4099df401d7420c44, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 1 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &7418166426351319151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2236104322558172231} + - component: {fileID: 4662184346438900431} + - component: {fileID: 7556478762474901918} + m_Layer: 0 + m_Name: NoteMain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2236104322558172231 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7418166426351319151} + 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: 4303129164719886000} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4662184346438900431 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7418166426351319151} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7556478762474901918 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7418166426351319151} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &8969796646526822168 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4303129164719886000} + - component: {fileID: 102223384410705138} + m_Layer: 0 + m_Name: BasicNoteTap3D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4303129164719886000 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8969796646526822168} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: 1, z: 5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2236104322558172231} + - {fileID: 8577101396104971865} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &102223384410705138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8969796646526822168} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72caf325f2b59403c94193cd2037b7ba, 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: 7 + Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: isOverridingDuration + Entry: 5 + Data: false + - Name: startTime + Entry: 4 + Data: 0 + - Name: endTime + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: transformSubmodule + Entry: 7 + Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: originalPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: positionOffset + Entry: 7 + Data: 2|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: eulerAnglesOffset + Entry: 7 + Data: 3|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: scaleOffset + Entry: 7 + Data: 4|System.Collections.Generic.List`1[[UnityEngine.Vector3, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: currentPosition + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentEulerAngles + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentScale + Entry: 7 + Data: UnityEngine.Vector3, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 4 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: positionDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesDirtyMark + Entry: 5 + Data: false + - Name: scaleDirtyMark + Entry: 5 + Data: false + - Name: eulerAnglesOffsetLock + Entry: 5 + Data: false + - Name: OnPositionChanged + Entry: 6 + Data: + - Name: OnEulerAnglesChanged + Entry: 6 + Data: + - Name: OnScaleChanged + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: colorSubmodule + Entry: 7 + Data: 5|Ichni.RhythmGame.ColorSubmodule, Assembly-CSharp + - Name: originalBaseColor + Entry: 7 + Data: UnityEngine.Color, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: emissionEnabled + Entry: 5 + Data: false + - Name: originalEmissionColor + Entry: 7 + Data: UnityEngine.Color, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: originalEmissionIntensity + Entry: 4 + Data: 0 + - Name: baseColorOffset + Entry: 7 + Data: 6|System.Collections.Generic.List`1[[UnityEngine.Color, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: emissionColorOffset + Entry: 7 + Data: 7|System.Collections.Generic.List`1[[UnityEngine.Color, UnityEngine.CoreModule]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: emissionIntensityOffset + Entry: 7 + Data: 8|System.Collections.Generic.List`1[[System.Single, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: currentBaseColor + Entry: 7 + Data: UnityEngine.Color, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentEmissionColor + Entry: 7 + Data: UnityEngine.Color, UnityEngine.CoreModule + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 4 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: currentEmissionIntensity + Entry: 4 + Data: 0 + - Name: baseColorDirtyMark + Entry: 5 + Data: false + - Name: emissionColorDirtyMark + Entry: 5 + Data: false + - Name: + Entry: 8 + Data: + elementName: + serialNumber: 0 + parentElement: {fileID: 0} + childElementList: [] + themeBundleName: basic + objectName: BasicNoteTap3D + note: {fileID: 0} + noteMain: {fileID: 7418166426351319151} + judgeEffect: {fileID: 6759562726529963496} + notePartList: + - {fileID: 7418166426351319151} + effectPartList: + - {fileID: 6759562726529963496} diff --git a/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab.meta b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab.meta new file mode 100644 index 00000000..a3dc97ea --- /dev/null +++ b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b342981b077e4611a7f9f3b3e57d554 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: basic + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts.meta b/Assets/ThemeBundles/Basic/Scripts.meta new file mode 100644 index 00000000..6a845747 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a7b47104256c140be808a743992dee93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual.meta new file mode 100644 index 00000000..109c4a60 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f47e8122d7d54cb5a2369df5477daa1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs new file mode 100644 index 00000000..3cddeefd --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class BasicNoteGenerateExpand : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs.meta new file mode 100644 index 00000000..64bde5ee --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d03309d69f59b4d25b6749ada9160c6b +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 new file mode 100644 index 00000000..4de3162a --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.Basic +{ + public class BasicNotePerfectBurst : NoteEffectBase + { + private GameObject effectRing; + + public void Initialize(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.1f).SetEase(Ease.OutBack); + effectRing.GetComponent().DOFade(0, 0.1f).SetEase(Ease.OutBack).OnComplete(() => effectRing.SetActive(false)); + noteVisual.noteMain.SetActive(false); + } + } +} \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs.meta new file mode 100644 index 00000000..2d102df0 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 15a3d3264a53c481c9fc2db8ac8a76e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs new file mode 100644 index 00000000..c7403698 --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.Basic +{ + public class BasicNoteVisual : NoteVisualBase + { + + } +} \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs.meta b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs.meta new file mode 100644 index 00000000..89f1411b --- /dev/null +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 72caf325f2b59403c94193cd2037b7ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json index 8b874f02..129a7039 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,6 +1,7 @@ { "dependencies": { "com.unity.collab-proxy": "2.6.0", + "com.unity.feature.2d": "2.0.1", "com.unity.ide.rider": "3.0.34", "com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.vscode": "1.2.5", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 48e0397d..be1c50a5 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,5 +1,99 @@ { "dependencies": { + "com.unity.2d.animation": { + "version": "9.1.3", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "8.0.4", + "com.unity.2d.sprite": "1.0.0", + "com.unity.collections": "1.1.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.aseprite": { + "version": "1.1.7", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "6.0.6", + "com.unity.2d.sprite": "1.0.0", + "com.unity.mathematics": "1.2.6", + "com.unity.modules.animation": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.common": { + "version": "8.0.4", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.7.3", + "com.unity.2d.sprite": "1.0.0", + "com.unity.mathematics": "1.1.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.pixel-perfect": { + "version": "5.0.3", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.2d.psdimporter": { + "version": "8.0.5", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "8.0.2", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.animation": "9.1.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.sprite": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.2d.spriteshape": { + "version": "9.0.5", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "8.0.4", + "com.unity.mathematics": "1.1.0", + "com.unity.modules.physics2d": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.tilemap": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + } + }, + "com.unity.2d.tilemap.extras": { + "version": "3.1.3", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.burst": { "version": "1.8.18", "depth": 1, @@ -17,6 +111,16 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.collections": { + "version": "1.2.4", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.6.6", + "com.unity.test-framework": "1.1.31" + }, + "url": "https://packages.unity.com" + }, "com.unity.ext.nunit": { "version": "1.0.6", "depth": 1, @@ -24,6 +128,21 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.feature.2d": { + "version": "2.0.1", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.2d.animation": "9.1.3", + "com.unity.2d.pixel-perfect": "5.0.3", + "com.unity.2d.psdimporter": "8.0.5", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.spriteshape": "9.0.5", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.2d.tilemap.extras": "3.1.3", + "com.unity.2d.aseprite": "1.1.7" + } + }, "com.unity.ide.rider": { "version": "3.0.34", "depth": 0, diff --git a/ProjectSettings/BurstAotSettings_StandaloneWindows.json b/ProjectSettings/BurstAotSettings_StandaloneWindows.json index 2144f6dc..36e6a2c0 100644 --- a/ProjectSettings/BurstAotSettings_StandaloneWindows.json +++ b/ProjectSettings/BurstAotSettings_StandaloneWindows.json @@ -1,16 +1,18 @@ { "MonoBehaviour": { - "Version": 3, + "Version": 4, "EnableBurstCompilation": true, "EnableOptimisations": true, "EnableSafetyChecks": false, "EnableDebugInAllBuilds": false, - "UsePlatformSDKLinker": false, + "DebugDataKind": 0, + "EnableArmv9SecurityFeatures": false, "CpuMinTargetX32": 0, "CpuMaxTargetX32": 0, "CpuMinTargetX64": 0, "CpuMaxTargetX64": 0, "CpuTargetsX32": 6, - "CpuTargetsX64": 72 + "CpuTargetsX64": 72, + "OptimizeFor": 0 } } diff --git a/ProjectSettings/CommonBurstAotSettings.json b/ProjectSettings/CommonBurstAotSettings.json index 3dffdba7..0293dafc 100644 --- a/ProjectSettings/CommonBurstAotSettings.json +++ b/ProjectSettings/CommonBurstAotSettings.json @@ -1,6 +1,6 @@ { "MonoBehaviour": { - "Version": 3, + "Version": 4, "DisabledWarnings": "" } }