From 85ac173124c1fdaad642f5963fb5abfdd849df68 Mon Sep 17 00:00:00 2001 From: freezy Date: Sun, 9 Feb 2025 00:02:01 +0100 Subject: [PATCH] packaging: Add sound serialization. --- .../Packaging/PackageReader.cs | 1 + .../Packaging/PackageWriter.cs | 5 +- .../Sound/SoundAssetInspector.cs | 8 +- .../Sound/SoundAssetInspector.uxml | 22 +- .../Sound/SoundComponentInspector.cs | 4 +- .../Packaging/JsonPacker.cs | 4 +- .../Packaging/PackageApi.cs | 1 + .../Packaging/PackagedFiles.cs | 261 +++++++++++++----- .../VisualPinball.Unity/Packaging/README.md | 18 +- .../Sound/CoilSoundComponent.cs | 1 + .../VisualPinball.Unity/Sound/SoundAsset.cs | 68 ++--- .../Sound/SoundComponent.cs | 38 ++- .../Sound/SoundPackable.cs | 80 ++++++ .../Sound/SoundPackable.cs.meta | 3 + .../Sound/SwitchSoundComponent.cs | 1 + .../VPT/Bumper/BumperColliderComponent.cs | 1 + .../VPT/Flipper/FlipperColliderComponent.cs | 17 +- .../VPT/Flipper/FlipperCorrectionAsset.cs | 1 + .../VPT/Flipper/FlipperPackable.cs | 65 +++++ 19 files changed, 455 insertions(+), 144 deletions(-) create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/SoundPackable.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/SoundPackable.cs.meta diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageReader.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageReader.cs index b791cffa0..3d6220de2 100644 --- a/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageReader.cs +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageReader.cs @@ -139,6 +139,7 @@ private async Task ReadAssets() { _packageFiles.UnpackAssets(_assetPath); await _packageFiles.UnpackMeshes(_assetPath); + _packageFiles.UnpackSounds(_assetPath); } /// diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageWriter.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageWriter.cs index 13240de05..01ffc45d6 100644 --- a/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageWriter.cs +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Packaging/PackageWriter.cs @@ -91,7 +91,8 @@ public async Task WritePackage(string path) // write assets & co sw1 = Stopwatch.StartNew(); _files.PackAssets(); - Logger.Info($"Assets written in {sw1.ElapsedMilliseconds}ms."); + _files.PackSoundMetas(); + Logger.Info($"Assets and files written in {sw1.ElapsedMilliseconds}ms."); storage.Close(); sw.Stop(); @@ -180,7 +181,7 @@ private async Task WriteColliderMeshes() Format = GltfFormat.Binary, }; var export = new GameObjectExport(exportSettings, logger: logger); - export.AddScene(meshGos.ToArray(), _table.transform.worldToLocalMatrix, "VPE Table"); + export.AddScene(meshGos.ToArray(), _table.transform.worldToLocalMatrix, "Colliders"); await export.SaveToStreamAndDispose(glbFile.AsStream()); var glbMeta = _metaFolder.AddFile(PackageApi.ColliderMeshesMeta, PackageApi.Packer.FileExtension); diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs index 6d9e219da..c2719719a 100644 --- a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs @@ -17,10 +17,9 @@ using System; using System.Threading; using UnityEditor; -using UnityEngine.UIElements; -using UnityEngine; using UnityEditor.UIElements; -using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UIElements; namespace VisualPinball.Unity.Editor { @@ -70,7 +69,7 @@ private void OnDisable() private void RemoveNullClips() { - var clipsProp = serializedObject.FindProperty("_clips"); + var clipsProp = serializedObject.FindProperty(nameof(SoundAsset.Clips)); for (var i = clipsProp.arraySize -1; i >= 0; i--) { if (clipsProp.GetArrayElementAtIndex(i).objectReferenceValue == null) clipsProp.DeleteArrayElementAtIndex(i); @@ -112,4 +111,3 @@ private void OnStopForrealButtonClicked() } } } - diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.uxml b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.uxml index 4b7569fb3..ab69a35e7 100644 --- a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.uxml +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.uxml @@ -1,15 +1,15 @@