From ae8d0c65bbff9aedd3142d6c291ec2409703c1d4 Mon Sep 17 00:00:00 2001 From: Maxwell Kang Date: Sat, 13 Aug 2022 13:49:43 -0700 Subject: [PATCH] update new sample for data verification --- .../PackageGenerationTools.cs | 4 +- .../Editor/GoogleSheetTools.cs | 2 +- .../Samples/006 - Data Verification.meta | 8 +++ .../006 - Data Verification/Editor.meta | 8 +++ ...ngSheet.Samples.Verification.Editor.asmdef | 20 ++++++ ...et.Samples.Verification.Editor.asmdef.meta | 7 +++ .../Editor/VerificationTools.cs | 61 +++++++++++++++++++ .../Editor/VerificationTools.cs.meta | 11 ++++ .../006 - Data Verification/Resources.meta | 8 +++ .../Resources/SamplePrefab1.prefab | 32 ++++++++++ .../Resources/SamplePrefab1.prefab.meta | 7 +++ .../Resources/SamplePrefab2.prefab | 32 ++++++++++ .../Resources/SamplePrefab2.prefab.meta | 7 +++ .../Editor/ResourceAssetVerifier.cs | 2 +- 14 files changed, 205 insertions(+), 4 deletions(-) create mode 100644 UnityProject/Assets/Samples/006 - Data Verification.meta create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Editor.meta create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef.meta create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs.meta create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Resources.meta create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab.meta create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab create mode 100644 UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab.meta diff --git a/UnityProject/Assets/PackageGeneration/PackageGenerationTools.cs b/UnityProject/Assets/PackageGeneration/PackageGenerationTools.cs index 40ca1ca..96ce2e9 100644 --- a/UnityProject/Assets/PackageGeneration/PackageGenerationTools.cs +++ b/UnityProject/Assets/PackageGeneration/PackageGenerationTools.cs @@ -12,7 +12,7 @@ public static class PackageGenerationTools const string PackagePath = "Packages/com.cathei.bakingsheet"; const string SamplePath = "Assets/Samples"; - [MenuItem("Tools/Generate Package")] + [MenuItem("BakingSheet/Generate Package")] public static void GeneratePackage() { // GITHUB_REF = refs/heads/v1.X.X @@ -37,7 +37,7 @@ public static void GeneratePackage() Debug.Log($"Generating Unity Package Completed: {savePath} {sampleSavePath}"); } - [MenuItem("Tools/Generate Package (AssetStore)")] + [MenuItem("BakingSheet/Generate Package (AssetStore)")] public static void GeneratePackageCombined() { var info = UnityEditor.PackageManager.PackageInfo.FindForAssetPath(PackagePath); diff --git a/UnityProject/Assets/Samples/003 - Import From Google Sheet/Editor/GoogleSheetTools.cs b/UnityProject/Assets/Samples/003 - Import From Google Sheet/Editor/GoogleSheetTools.cs index 1f5323b..c8cb45a 100644 --- a/UnityProject/Assets/Samples/003 - Import From Google Sheet/Editor/GoogleSheetTools.cs +++ b/UnityProject/Assets/Samples/003 - Import From Google Sheet/Editor/GoogleSheetTools.cs @@ -40,7 +40,7 @@ public override JsonSerializerSettings GetSettings(Microsoft.Extensions.Logging. } } - [MenuItem("Tools/Import From Google")] + [MenuItem("BakingSheet/Sample/Import From Google")] public static async void ConvertFromGoogle() { var jsonPath = Path.Combine(Application.streamingAssetsPath, "Google"); diff --git a/UnityProject/Assets/Samples/006 - Data Verification.meta b/UnityProject/Assets/Samples/006 - Data Verification.meta new file mode 100644 index 0000000..c842719 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0a5840494ea847a88189b90bd73928b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Editor.meta b/UnityProject/Assets/Samples/006 - Data Verification/Editor.meta new file mode 100644 index 0000000..e598809 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 82eefe9d217f24d0d9b2b237a757abab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef b/UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef new file mode 100644 index 0000000..910fd41 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef @@ -0,0 +1,20 @@ +{ + "name": "BakingSheet.Samples.Verification.Editor", + "rootNamespace": "", + "references": [ + "BakingSheet", + "BakingSheet.Samples", + "BakingSheet.Editor" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef.meta b/UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef.meta new file mode 100644 index 0000000..a1c24a4 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Editor/BakingSheet.Samples.Verification.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e2d74aaec009543fd8bfd48c974a9052 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs b/UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs new file mode 100644 index 0000000..174013a --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs @@ -0,0 +1,61 @@ +using System; +using System.IO; +using UnityEditor; +using UnityEngine; +using ILogger = Microsoft.Extensions.Logging.ILogger; + +namespace Cathei.BakingSheet.Examples +{ + public static class VerificationTools + { + class VerificationSheet : Sheet + { + public class Row : SheetRow + { + [Resource] public string ResourcePath { get; set; } + } + } + + class SheetContainer : SheetContainerBase + { + public SheetContainer(ILogger logger) : base(logger) { } + + public VerificationSheet Verification { get; set; } + } + + [MenuItem("BakingSheet/Sample/Verify Sheet")] + public static void VerifySheet() + { + var sheetContainer = new SheetContainer(new UnityLogger()); + + // you can generate sheet with code + sheetContainer.Verification = new VerificationSheet + { + new VerificationSheet.Row + { + Id = "Row1", + ResourcePath = "SamplePrefab1" + }, + new VerificationSheet.Row + { + Id = "Row2", + ResourcePath = "SamplePrefab2" + }, + new VerificationSheet.Row + { + Id = "Row3", + ResourcePath = "SamplePrefab3" + }, + }; + + // SheetContainer.Bake will call PostLoad implicitly + // However you need to call PostLoad manually if you're generating sheet with code + sheetContainer.PostLoad(); + + // call SheetVerifier instances you want to process + sheetContainer.Verify(new ResourceAssetVerifier()); + + Debug.Log("End of sheet verification"); + } + } +} \ No newline at end of file diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs.meta b/UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs.meta new file mode 100644 index 0000000..379ce34 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Editor/VerificationTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fdfecb5704a5452e9c9de4d7c315a73 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Resources.meta b/UnityProject/Assets/Samples/006 - Data Verification/Resources.meta new file mode 100644 index 0000000..eeb58f0 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c730d3b1235e54f00b4998e47529b272 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab new file mode 100644 index 0000000..8d72929 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab @@ -0,0 +1,32 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5741794240766330556 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 746415233758999732} + m_Layer: 0 + m_Name: SamplePrefab1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &746415233758999732 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5741794240766330556} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab.meta b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab.meta new file mode 100644 index 0000000..9bda40d --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 870894f0fef5a4f1598a67be31dfdff1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab new file mode 100644 index 0000000..a41ee40 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab @@ -0,0 +1,32 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5741794240766330556 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 746415233758999732} + m_Layer: 0 + m_Name: SamplePrefab2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &746415233758999732 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5741794240766330556} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab.meta b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab.meta new file mode 100644 index 0000000..4e485d4 --- /dev/null +++ b/UnityProject/Assets/Samples/006 - Data Verification/Resources/SamplePrefab2.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f0aa7a67549f4234b375a8bf408f30b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Packages/com.cathei.bakingsheet/Editor/ResourceAssetVerifier.cs b/UnityProject/Packages/com.cathei.bakingsheet/Editor/ResourceAssetVerifier.cs index 67939b0..ec2e8a3 100644 --- a/UnityProject/Packages/com.cathei.bakingsheet/Editor/ResourceAssetVerifier.cs +++ b/UnityProject/Packages/com.cathei.bakingsheet/Editor/ResourceAssetVerifier.cs @@ -12,7 +12,7 @@ public override string Verify(ResourceAttribute attribute, string path) if (string.IsNullOrEmpty(path)) return null; - path = Path.Combine(attribute.Prefix, path); + path = Path.Combine(attribute.Prefix ?? "", path); var obj = Resources.Load(path); if (obj != null)