From 58b9d94540847179ad44e9f4143bb2a3a62784e3 Mon Sep 17 00:00:00 2001 From: SoulliesOfficial Date: Sun, 4 May 2025 03:29:23 -0400 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E9=97=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Audio/MusicMixer.mixer | 111 ------------------ Assets/Audio/MusicMixer.mixer.meta | 8 -- Assets/AudioMixer/IchniMixer.mixer | 1 + .../Splines/Components/MeshGenerator.cs.meta | 22 ++-- .../GameElements/GameCamera/GameCamera.cs | 40 ++++++- .../EditorGame/GameElements/Track/Track.cs | 1 + .../TrackSubmodules/TrackPathSubmodule.cs | 2 +- .../TrackSubmodules/TrackRendererSubmodule.cs | 4 + Assets/Scripts/Manager/MusicPlayer.cs | 7 ++ ProjectSettings/QualitySettings.asset | 56 +++++++-- 10 files changed, 109 insertions(+), 143 deletions(-) delete mode 100644 Assets/Audio/MusicMixer.mixer delete mode 100644 Assets/Audio/MusicMixer.mixer.meta diff --git a/Assets/Audio/MusicMixer.mixer b/Assets/Audio/MusicMixer.mixer deleted file mode 100644 index 7b1016bd..00000000 --- a/Assets/Audio/MusicMixer.mixer +++ /dev/null @@ -1,111 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!244 &-8258756909397980172 -AudioMixerEffectController: - m_ObjectHideFlags: 3 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_EffectID: 1ca7941a46eb249438149718ad7604a5 - m_EffectName: Highpass - m_MixLevel: 54f2ce6e3ed36cb4ab393332c50fa80c - m_Parameters: - - m_ParameterName: Cutoff freq - m_GUID: 683a9181a1a9e054789839b6be8b534b - - m_ParameterName: Resonance - m_GUID: 7d658599d6889974c88db329d9d3d773 - m_SendTarget: {fileID: 0} - m_EnableWetMix: 0 - m_Bypass: 0 ---- !u!241 &24100000 -AudioMixerController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: MusicMixer - m_OutputGroup: {fileID: 0} - m_MasterGroup: {fileID: 24300002} - m_Snapshots: - - {fileID: 24500006} - m_StartSnapshot: {fileID: 24500006} - m_SuspendThreshold: -80 - m_EnableSuspend: 1 - m_UpdateMode: 0 - m_ExposedParameters: [] - m_AudioMixerGroupViews: [] - m_CurrentViewIndex: 0 - m_TargetSnapshot: {fileID: 24500006} ---- !u!243 &24300002 -AudioMixerGroupController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Master - m_AudioMixer: {fileID: 24100000} - m_GroupID: 13f0d0ef7db6237478d15858a1955dac - m_Children: [] - m_Volume: 2ae6cdbe00f15c04cb53ae2a3ebda5fe - m_Pitch: d0de7a5c7437a9b4ea91452bcb7e398b - m_Send: 00000000000000000000000000000000 - m_Effects: - - {fileID: 24400004} - - {fileID: 4652425066203320740} - - {fileID: -8258756909397980172} - m_UserColorIndex: 0 - m_Mute: 0 - m_Solo: 0 - m_BypassEffects: 0 ---- !u!244 &24400004 -AudioMixerEffectController: - m_ObjectHideFlags: 3 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_EffectID: 72229d8559d13114a873f4e26f4f9841 - m_EffectName: Attenuation - m_MixLevel: 9a213ccb038287946b417726fa3b2650 - m_Parameters: [] - m_SendTarget: {fileID: 0} - m_EnableWetMix: 0 - m_Bypass: 0 ---- !u!245 &24500006 -AudioMixerSnapshotController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Snapshot - m_AudioMixer: {fileID: 24100000} - m_SnapshotID: b57023271da1cdc45b1290c9010f0fe4 - m_FloatValues: - 683a9181a1a9e054789839b6be8b534b: 10 - 1826e0728fec9c145883eee9671a6991: 0.276 - bfdfef92da0f62241a9ae2dd04c06903: 0 - f2cc60a224542d24e877e79f821dbd8b: 0.29 - 9074a954bb89a4546a7c7f00e755c41c: 1 - 7d658599d6889974c88db329d9d3d773: 1 - d0de7a5c7437a9b4ea91452bcb7e398b: 1 - e9b30c6e2b4295241a3b695981a0b3e7: 22000 - m_TransitionOverrides: {} ---- !u!244 &4652425066203320740 -AudioMixerEffectController: - m_ObjectHideFlags: 3 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_EffectID: 3cae1bc9c78bd924da8a04dcee6c0963 - m_EffectName: Lowpass - m_MixLevel: ea5b0de249a6d1141ad0193885966d82 - m_Parameters: - - m_ParameterName: Cutoff freq - m_GUID: e9b30c6e2b4295241a3b695981a0b3e7 - - m_ParameterName: Resonance - m_GUID: 9074a954bb89a4546a7c7f00e755c41c - m_SendTarget: {fileID: 0} - m_EnableWetMix: 0 - m_Bypass: 0 diff --git a/Assets/Audio/MusicMixer.mixer.meta b/Assets/Audio/MusicMixer.mixer.meta deleted file mode 100644 index 713e7160..00000000 --- a/Assets/Audio/MusicMixer.mixer.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d93847d17534d93468be815f95137594 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 24100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/AudioMixer/IchniMixer.mixer b/Assets/AudioMixer/IchniMixer.mixer index e2ff62fe..098e56b4 100644 --- a/Assets/AudioMixer/IchniMixer.mixer +++ b/Assets/AudioMixer/IchniMixer.mixer @@ -71,6 +71,7 @@ AudioMixerSnapshotController: 5f239d6143d30344e9ee00f571aa2338: 0 401e6191736bb004fb049613f2410d02: 22000 12f354e222a7b414e841f733413a76b7: 4690.056 + d400991453b45b04083055381c91a7e0: 1 92d2c4e6bd46ffc4897edca814ab4396: 1 adf84d6746213f44bb328379608fd3f8: 22000 77f407cc2352248469c3d3b49939efd0: 0 diff --git a/Assets/Dreamteck/Splines/Components/MeshGenerator.cs.meta b/Assets/Dreamteck/Splines/Components/MeshGenerator.cs.meta index fc457038..3c5fb723 100644 --- a/Assets/Dreamteck/Splines/Components/MeshGenerator.cs.meta +++ b/Assets/Dreamteck/Splines/Components/MeshGenerator.cs.meta @@ -1,11 +1,11 @@ -fileFormatVersion: 2 -guid: 49c9228d9868e1747b4763bc4cb1d86f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 9bbaac8eb7021d44b9864113856c00fa, type: 3} - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 49c9228d9868e1747b4763bc4cb1d86f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: -10 + icon: {fileID: 2800000, guid: 9bbaac8eb7021d44b9864113856c00fa, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EditorGame/GameElements/GameCamera/GameCamera.cs b/Assets/Scripts/EditorGame/GameElements/GameCamera/GameCamera.cs index 6de04596..7732403e 100644 --- a/Assets/Scripts/EditorGame/GameElements/GameCamera/GameCamera.cs +++ b/Assets/Scripts/EditorGame/GameElements/GameCamera/GameCamera.cs @@ -62,6 +62,20 @@ namespace Ichni.RhythmGame { transformSubmodule = new TransformSubmodule(this); } + + public override void SetUpInspector() + { + IHaveInspection inspector = EditorManager.instance.uiManager.inspector; + base.SetUpInspector(); + var container = inspector.GenerateContainer("Generate"); + var generateAnimation = container.GenerateSubcontainer(3); + var displacementButton = inspector.GenerateButton(this, generateAnimation, "Displacement", + () => Displacement.GenerateElement("New Displacement", Guid.NewGuid(), new List(), true, this, + new FlexibleFloat(), new FlexibleFloat(), new FlexibleFloat())); + var swirlButton = inspector.GenerateButton(this, generateAnimation, "Swirl", + () => Swirl.GenerateElement("New Swirl", Guid.NewGuid(), new List(), true, this, + new FlexibleFloat(), new FlexibleFloat(), new FlexibleFloat())); + } } public partial class GameCamera @@ -93,11 +107,18 @@ namespace Ichni.RhythmGame } public void SetTransformObserver() { - Observable.EveryUpdate().Subscribe(_ => + Observable.EveryLateUpdate().Subscribe(_ => { + if (transformSubmodule == null) + { + return; + } + + bool willRefresh = false; + if (transformSubmodule.eulerAnglesOffsetLock) { - rotationPoint.localEulerAngles = transformSubmodule.originalEulerAngles; + transform.localEulerAngles = transformSubmodule.originalEulerAngles; } else if (transformSubmodule.eulerAnglesDirtyMark) { @@ -108,8 +129,9 @@ namespace Ichni.RhythmGame } transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + offset; - rotationPoint.localEulerAngles = transformSubmodule.currentEulerAngles; + transform.localEulerAngles = transformSubmodule.currentEulerAngles; transformSubmodule.eulerAnglesDirtyMark = false; + willRefresh = true; } if (transformSubmodule.positionDirtyMark) @@ -121,9 +143,19 @@ namespace Ichni.RhythmGame } transformSubmodule.currentPosition = transformSubmodule.originalPosition + offset; - positionPoint.localPosition = transformSubmodule.currentPosition; + transform.localPosition = transformSubmodule.currentPosition; transformSubmodule.positionDirtyMark = false; + willRefresh = true; } + + if(willRefresh) + { + this.Refresh(); + } + + transformSubmodule.eulerAnglesOffset.Clear(); + transformSubmodule.positionOffset.Clear(); + }).AddTo(gameObject); } } diff --git a/Assets/Scripts/EditorGame/GameElements/Track/Track.cs b/Assets/Scripts/EditorGame/GameElements/Track/Track.cs index 0e4cd935..cf608946 100644 --- a/Assets/Scripts/EditorGame/GameElements/Track/Track.cs +++ b/Assets/Scripts/EditorGame/GameElements/Track/Track.cs @@ -5,6 +5,7 @@ using Ichni.Editor; using Ichni.RhythmGame.Beatmap; using Lean.Pool; using Sirenix.OdinInspector; +using UniRx; using UnityEngine; namespace Ichni.RhythmGame diff --git a/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs b/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs index 6427d5fd..1cf6617b 100644 --- a/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs +++ b/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs @@ -33,7 +33,7 @@ namespace Ichni.RhythmGame this.isClosed = isClosed; this.path.sampleRate = 16; - + this.path.updateMode = SplineComputer.UpdateMode.LateUpdate; SetUpSplineComputer(this.trackSpaceType, this.trackSamplingType); //闭合路径在PathNode生成时执行,在初始化的情况下,PathNode数量为0,不会执行闭合操作 diff --git a/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs b/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs index 5c43ccb3..6888176b 100644 --- a/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs +++ b/Assets/Scripts/EditorGame/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs @@ -150,6 +150,7 @@ namespace Ichni.RhythmGame this.splineRenderer.spline = track.trackPathSubmodule.path; this.splineRenderer.clipFrom = 0; this.splineRenderer.clipTo = 1; + this.splineRenderer.updateMethod = SplineUser.UpdateMethod.LateUpdate; this.meshRenderer.material = renderMaterial; this.splineRenderer.color = Color.white; this.splineRenderer.uvRotation = 90; @@ -226,6 +227,7 @@ namespace Ichni.RhythmGame this.pathGenerator.spline = track.trackPathSubmodule.path; this.pathGenerator.clipFrom = 0; this.pathGenerator.clipTo = 1; + this.pathGenerator.updateMethod = SplineUser.UpdateMethod.LateUpdate; this.meshRenderer.material = renderMaterial; this.pathGenerator.color = Color.white; this.pathGenerator.uvRotation = 90; @@ -306,6 +308,7 @@ namespace Ichni.RhythmGame this.tubeGenerator.spline = track.trackPathSubmodule.path; this.tubeGenerator.clipFrom = 0; this.tubeGenerator.clipTo = 1; + this.tubeGenerator.updateMethod = SplineUser.UpdateMethod.LateUpdate; this.meshRenderer.material = renderMaterial; this.tubeGenerator.color = Color.white; this.tubeGenerator.uvRotation = 90; @@ -399,6 +402,7 @@ namespace Ichni.RhythmGame this.surface.spline = track.trackPathSubmodule.path; this.surface.clipFrom = 0; this.surface.clipTo = 1; + this.surface.updateMethod = SplineUser.UpdateMethod.LateUpdate; this.meshRenderer.material = renderMaterial; this.surface.color = Color.white; this.surface.uvRotation = 90; diff --git a/Assets/Scripts/Manager/MusicPlayer.cs b/Assets/Scripts/Manager/MusicPlayer.cs index 89b683c0..f69dcd47 100644 --- a/Assets/Scripts/Manager/MusicPlayer.cs +++ b/Assets/Scripts/Manager/MusicPlayer.cs @@ -8,11 +8,18 @@ namespace Ichni.Editor { public class MusicPlayer : MonoBehaviour { + public bool isDebugging; public bool isPlaying; public AudioSource audioSource; private void Update() { + if (isDebugging) + { + EditorManager.instance.songInformation.songTime += Time.deltaTime; + return; + } + if (isPlaying) { EditorManager.instance.songInformation.songTime = EditorManager.instance.musicPlayer.audioSource.time; diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset index 6238eb73..64d1efca 100644 --- a/ProjectSettings/QualitySettings.asset +++ b/ProjectSettings/QualitySettings.asset @@ -6,7 +6,7 @@ QualitySettings: serializedVersion: 5 m_CurrentQuality: 2 m_QualitySettings: - - serializedVersion: 2 + - serializedVersion: 3 name: Performant pixelLightCount: 0 shadows: 0 @@ -19,16 +19,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 skinWeights: 2 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 0 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 1 vSyncCount: 0 + realtimeGICPUUsage: 25 lodBias: 0.4 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -42,8 +46,17 @@ QualitySettings: resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 11400000, guid: d0e2fc18fe036412f8223b3b3d9ad574, type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: Balanced pixelLightCount: 1 shadows: 1 @@ -56,16 +69,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 skinWeights: 4 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 1 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 1 vSyncCount: 1 + realtimeGICPUUsage: 25 lodBias: 1 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -79,8 +96,17 @@ QualitySettings: resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 11400000, guid: e1260c1148f6143b28bae5ace5e9c5d1, type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: High Fidelity pixelLightCount: 2 shadows: 2 @@ -93,16 +119,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 skinWeights: 255 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 2 antiAliasing: 4 softParticles: 0 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 - vSyncCount: 1 + useLegacyDetailDistribution: 1 + vSyncCount: 0 + realtimeGICPUUsage: 25 lodBias: 2 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -116,13 +146,23 @@ QualitySettings: resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd, type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] m_PerPlatformDefaultQuality: Android: 1 CloudRendering: 2 - Lumin: 2 GameCoreScarlett: 2 GameCoreXboxOne: 2 + Lumin: 2 Nintendo Switch: 2 PS4: 2 PS5: 2