Showing preview only (5,983K chars total). Download the full file or copy to clipboard to get everything.
Repository: needle-tools/shadergraph-markdown
Branch: main
Commit: e55d6980c838
Files: 1751
Total size: 5.2 MB
Directory structure:
gitextract_2ejx0txv/
├── .github/
│ └── workflows/
│ └── Release.yml
├── .gitignore
├── README.md
├── package/
│ ├── .npmignore
│ ├── Changelog.md
│ ├── Changelog.md.meta
│ ├── Documentation/
│ │ └── Shader Graph Markdown - Documentation.pdf.meta
│ ├── Documentation.meta
│ ├── Editor/
│ │ ├── Drawers/
│ │ │ ├── GradientDrawer.cs
│ │ │ ├── GradientDrawer.cs.meta
│ │ │ ├── GradientGeneratorDrawer.cs
│ │ │ ├── GradientGeneratorDrawer.cs.meta
│ │ │ ├── InlineTextureDrawer.cs
│ │ │ ├── InlineTextureDrawer.cs.meta
│ │ │ ├── MarkdownMaterialPropertyDrawer.cs
│ │ │ ├── MarkdownMaterialPropertyDrawer.cs.meta
│ │ │ ├── MinMaxDrawer.cs
│ │ │ ├── MinMaxDrawer.cs.meta
│ │ │ ├── MultiPropertyDrawer.cs
│ │ │ ├── MultiPropertyDrawer.cs.meta
│ │ │ ├── VectorSliderDrawer.cs
│ │ │ └── VectorSliderDrawer.cs.meta
│ │ ├── Drawers.meta
│ │ ├── Extensions/
│ │ │ ├── LogicExpressionParser.cs
│ │ │ ├── LogicExpressionParser.cs.meta
│ │ │ ├── ShaderRefactoringWindow.cs
│ │ │ └── ShaderRefactoringWindow.cs.meta
│ │ ├── Extensions.meta
│ │ ├── Internal/
│ │ │ ├── Common/
│ │ │ │ ├── CommonInternalExtensions.cs
│ │ │ │ ├── CommonInternalExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdownCommonInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdownCommonInternal.asmref.meta
│ │ │ ├── Common.meta
│ │ │ ├── CommonExtensions.cs
│ │ │ ├── CommonExtensions.cs.meta
│ │ │ ├── HDRP/
│ │ │ │ ├── MarkdownHDExtensions.cs
│ │ │ │ ├── MarkdownHDExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdown.HDInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdown.HDInternal.asmref.meta
│ │ │ ├── HDRP.meta
│ │ │ ├── Needle.ShaderGraphMarkdown.Internal.asmdef
│ │ │ ├── Needle.ShaderGraphMarkdown.Internal.asmdef.meta
│ │ │ ├── ShaderGraph/
│ │ │ │ ├── Experimental/
│ │ │ │ │ ├── MarkdownBlackboardProperties.cs
│ │ │ │ │ ├── MarkdownBlackboardProperties.cs.meta
│ │ │ │ │ ├── PropertyManipulation.cs
│ │ │ │ │ └── PropertyManipulation.cs.meta
│ │ │ │ ├── Experimental.meta
│ │ │ │ ├── MarkdownSGExtensions.cs
│ │ │ │ ├── MarkdownSGExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdown.SGInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdown.SGInternal.asmref.meta
│ │ │ ├── ShaderGraph.meta
│ │ │ ├── URP/
│ │ │ │ ├── MarkdownURPExtensions.cs
│ │ │ │ ├── MarkdownURPExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdown.URPInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdown.URPInternal.asmref.meta
│ │ │ └── URP.meta
│ │ ├── Internal.meta
│ │ ├── MarkdownShaderGUI.cs
│ │ ├── MarkdownShaderGUI.cs.meta
│ │ ├── Needle/
│ │ │ ├── MarkdownNeedleIcons.cs
│ │ │ ├── MarkdownNeedleIcons.cs.meta
│ │ │ ├── logo-button.png.meta
│ │ │ ├── needlelogo.png.meta
│ │ │ └── needlelogo_white.png.meta
│ │ ├── Needle.ShaderGraphMarkdown.asmdef
│ │ ├── Needle.ShaderGraphMarkdown.asmdef.meta
│ │ ├── Needle.meta
│ │ ├── Resources/
│ │ │ ├── Styles/
│ │ │ │ ├── ShaderGraphMarkdown.uss
│ │ │ │ └── ShaderGraphMarkdown.uss.meta
│ │ │ └── Styles.meta
│ │ ├── Resources.meta
│ │ ├── Settings/
│ │ │ ├── ShaderGraphMarkdownSettings.cs
│ │ │ └── ShaderGraphMarkdownSettings.cs.meta
│ │ ├── Settings.meta
│ │ ├── ShaderGraphPropertyUI.cs
│ │ ├── ShaderGraphPropertyUI.cs.meta
│ │ ├── Shims/
│ │ │ ├── CoreEditorUtilsShims.cs
│ │ │ └── CoreEditorUtilsShims.cs.meta
│ │ └── Shims.meta
│ ├── Editor.meta
│ ├── Readme.md
│ ├── Readme.md.meta
│ ├── Samples~/
│ │ ├── Amplify/
│ │ │ ├── Markdown Amplify Shader.mat
│ │ │ ├── Markdown Amplify Shader.mat.meta
│ │ │ ├── Markdown Amplify Shader.shader
│ │ │ └── Markdown Amplify Shader.shader.meta
│ │ ├── Amplify.meta
│ │ ├── Built-In/
│ │ │ ├── Gradient Textures/
│ │ │ │ ├── SampleSurfaceShader_MyGradientTexture_1_Gradient.png.meta
│ │ │ │ └── SampleSurfaceShader_MyGradientTexture_2_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── SampleSurfaceShader.mat
│ │ │ ├── SampleSurfaceShader.mat.meta
│ │ │ ├── SampleSurfaceShader.shader
│ │ │ └── SampleSurfaceShader.shader.meta
│ │ ├── Built-In.meta
│ │ ├── HDRP 7+ (Unity 2019.4+)/
│ │ │ ├── SampleShader-HDRP7.shadergraph
│ │ │ ├── SampleShader-HDRP7.shadergraph.meta
│ │ │ ├── Shader Graphs_SampleShader-HDRP7.mat
│ │ │ └── Shader Graphs_SampleShader-HDRP7.mat.meta
│ │ ├── HDRP 7+ (Unity 2019.4+).meta
│ │ ├── URP 7+ (Unity 2019.4+)/
│ │ │ ├── Gradient Textures/
│ │ │ │ └── Shader Graphs_SampleShader-URP7_RampTexture_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── SampleShader-URP7.shadergraph
│ │ │ ├── SampleShader-URP7.shadergraph.meta
│ │ │ ├── Shader Graphs_SampleShader-URP7.mat
│ │ │ └── Shader Graphs_SampleShader-URP7.mat.meta
│ │ ├── URP 7+ (Unity 2019.4+).meta
│ │ ├── URP and HDRP 10+ (Unity 2020.2+)/
│ │ │ ├── Gradient Textures/
│ │ │ │ ├── Shader Graphs_SampleShader-SRP10_MyGradientTexture_1_Gradient.png.meta
│ │ │ │ └── Shader Graphs_SampleShader-SRP10_MyGradientTexture_2_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── SampleShader-SRP10.shadergraph
│ │ │ ├── SampleShader-SRP10.shadergraph.meta
│ │ │ ├── SampleShader-Unnamed Properties.shadergraph
│ │ │ ├── SampleShader-Unnamed Properties.shadergraph.meta
│ │ │ ├── Shader Graphs_SampleShader-SRP10.mat
│ │ │ ├── Shader Graphs_SampleShader-SRP10.mat.meta
│ │ │ ├── Shader Graphs_Unnamed Properties.mat
│ │ │ └── Shader Graphs_Unnamed Properties.mat.meta
│ │ ├── URP and HDRP 10+ (Unity 2020.2+).meta
│ │ ├── Uber Shader (Unity 2020.2+)/
│ │ │ ├── Cloth.mat
│ │ │ ├── Cloth.mat.meta
│ │ │ ├── FloatingSpheres.mat
│ │ │ ├── FloatingSpheres.mat.meta
│ │ │ ├── Floor.mat
│ │ │ ├── Floor.mat.meta
│ │ │ ├── FloorBorder.mat
│ │ │ ├── FloorBorder.mat.meta
│ │ │ ├── FloorSpheres.mat
│ │ │ ├── FloorSpheres.mat.meta
│ │ │ ├── Gradient Textures/
│ │ │ │ ├── Cloth_RampTexture_Gradient.png.meta
│ │ │ │ ├── Greybox_RampTexture_Gradient.png.meta
│ │ │ │ ├── Mat 1_RampTexture_Gradient.png.meta
│ │ │ │ ├── Mat 2_RampTexture_Gradient.png.meta
│ │ │ │ ├── Mat 3_RampTexture_Gradient.png.meta
│ │ │ │ ├── Rings_RampTexture_Gradient.png.meta
│ │ │ │ └── Spheres_RampTexture_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── Models/
│ │ │ │ ├── MarkdownSampleObjects-1.fbx
│ │ │ │ ├── MarkdownSampleObjects-1.fbx.meta
│ │ │ │ ├── MarkdownSampleObjects-2.fbx
│ │ │ │ └── MarkdownSampleObjects-2.fbx.meta
│ │ │ ├── Models.meta
│ │ │ ├── Ring.mat
│ │ │ ├── Ring.mat.meta
│ │ │ ├── Sample Scene/
│ │ │ │ ├── LightingData.asset
│ │ │ │ ├── LightingData.asset.meta
│ │ │ │ ├── Markdown-SkyboxBlurred.mat
│ │ │ │ ├── Markdown-SkyboxBlurred.mat.meta
│ │ │ │ ├── Markdown-blurred_background.jpg.meta
│ │ │ │ ├── ReflectionProbe-0.exr
│ │ │ │ ├── ReflectionProbe-0.exr.meta
│ │ │ │ ├── ReflectionProbe-1.exr
│ │ │ │ ├── ReflectionProbe-1.exr.meta
│ │ │ │ ├── ReflectionProbe-2.exr
│ │ │ │ ├── ReflectionProbe-2.exr.meta
│ │ │ │ ├── ReflectionProbe-3.exr
│ │ │ │ ├── ReflectionProbe-3.exr.meta
│ │ │ │ ├── ReflectionProbe-4.exr
│ │ │ │ ├── ReflectionProbe-4.exr.meta
│ │ │ │ ├── Sample Scene Lighting.lighting
│ │ │ │ ├── Sample Scene Lighting.lighting.meta
│ │ │ │ ├── Volume Profile.asset
│ │ │ │ └── Volume Profile.asset.meta
│ │ │ ├── Sample Scene.meta
│ │ │ ├── Sample Scene.unity
│ │ │ ├── Sample Scene.unity.meta
│ │ │ ├── SampleUberShader.shadergraph
│ │ │ ├── SampleUberShader.shadergraph.meta
│ │ │ ├── SmallRings.mat
│ │ │ ├── SmallRings.mat.meta
│ │ │ ├── Torus.mat
│ │ │ └── Torus.mat.meta
│ │ └── Uber Shader (Unity 2020.2+).meta
│ ├── package.json
│ └── package.json.meta
└── projects/
├── ShadergraphMarkdown 2019.4/
│ ├── .vscode/
│ │ └── settings.json
│ ├── Needle.ShaderGraphMarkdown.Internal.csproj
│ ├── Needle.ShaderGraphMarkdown.csproj
│ ├── Packages/
│ │ ├── com.unity.asset-store-tools/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CHANGELOG.md.meta
│ │ │ ├── Editor/
│ │ │ │ ├── Api/
│ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ ├── AuthenticationBase.cs
│ │ │ │ │ │ ├── AuthenticationBase.cs.meta
│ │ │ │ │ │ ├── IAssetStoreApi.cs
│ │ │ │ │ │ ├── IAssetStoreApi.cs.meta
│ │ │ │ │ │ ├── IAssetStoreClient.cs
│ │ │ │ │ │ ├── IAssetStoreClient.cs.meta
│ │ │ │ │ │ ├── IAuthenticationType.cs
│ │ │ │ │ │ ├── IAuthenticationType.cs.meta
│ │ │ │ │ │ ├── IPackageUploader.cs
│ │ │ │ │ │ ├── IPackageUploader.cs.meta
│ │ │ │ │ │ ├── PackageUploaderBase.cs
│ │ │ │ │ │ └── PackageUploaderBase.cs.meta
│ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ ├── ApiUtility.cs
│ │ │ │ │ ├── ApiUtility.cs.meta
│ │ │ │ │ ├── AssetStoreApi.cs
│ │ │ │ │ ├── AssetStoreApi.cs.meta
│ │ │ │ │ ├── AssetStoreClient.cs
│ │ │ │ │ ├── AssetStoreClient.cs.meta
│ │ │ │ │ ├── CloudTokenAuthentication.cs
│ │ │ │ │ ├── CloudTokenAuthentication.cs.meta
│ │ │ │ │ ├── CredentialsAuthentication.cs
│ │ │ │ │ ├── CredentialsAuthentication.cs.meta
│ │ │ │ │ ├── Models/
│ │ │ │ │ │ ├── Category.cs
│ │ │ │ │ │ ├── Category.cs.meta
│ │ │ │ │ │ ├── Package.cs
│ │ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ │ ├── PackageAdditionalData.cs
│ │ │ │ │ │ ├── PackageAdditionalData.cs.meta
│ │ │ │ │ │ ├── User.cs
│ │ │ │ │ │ └── User.cs.meta
│ │ │ │ │ ├── Models.meta
│ │ │ │ │ ├── Responses/
│ │ │ │ │ │ ├── AssetStoreResponse.cs
│ │ │ │ │ │ ├── AssetStoreResponse.cs.meta
│ │ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs
│ │ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs.meta
│ │ │ │ │ │ ├── AuthenticationResponse.cs
│ │ │ │ │ │ ├── AuthenticationResponse.cs.meta
│ │ │ │ │ │ ├── CategoryDataResponse.cs
│ │ │ │ │ │ ├── CategoryDataResponse.cs.meta
│ │ │ │ │ │ ├── PackageThumbnailResponse.cs
│ │ │ │ │ │ ├── PackageThumbnailResponse.cs.meta
│ │ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs
│ │ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs.meta
│ │ │ │ │ │ ├── PackagesAdditionalDataResponse.cs
│ │ │ │ │ │ ├── PackagesAdditionalDataResponse.cs.meta
│ │ │ │ │ │ ├── PackagesDataResponse.cs
│ │ │ │ │ │ ├── PackagesDataResponse.cs.meta
│ │ │ │ │ │ ├── RefreshedPackageDataResponse.cs
│ │ │ │ │ │ ├── RefreshedPackageDataResponse.cs.meta
│ │ │ │ │ │ ├── UploadResponse.cs
│ │ │ │ │ │ └── UploadResponse.cs.meta
│ │ │ │ │ ├── Responses.meta
│ │ │ │ │ ├── SessionAuthentication.cs
│ │ │ │ │ ├── SessionAuthentication.cs.meta
│ │ │ │ │ ├── UnityPackageUploader.cs
│ │ │ │ │ ├── UnityPackageUploader.cs.meta
│ │ │ │ │ ├── UploadStatus.cs
│ │ │ │ │ └── UploadStatus.cs.meta
│ │ │ │ ├── Api.meta
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ ├── AssetStoreTools.cs
│ │ │ │ ├── AssetStoreTools.cs.meta
│ │ │ │ ├── AssetStoreToolsWindow.cs
│ │ │ │ ├── AssetStoreToolsWindow.cs.meta
│ │ │ │ ├── Constants.cs
│ │ │ │ ├── Constants.cs.meta
│ │ │ │ ├── Exporter/
│ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ ├── IPackageExporter.cs
│ │ │ │ │ │ ├── IPackageExporter.cs.meta
│ │ │ │ │ │ ├── IPreviewInjector.cs
│ │ │ │ │ │ ├── IPreviewInjector.cs.meta
│ │ │ │ │ │ ├── PackageExporterBase.cs
│ │ │ │ │ │ ├── PackageExporterBase.cs.meta
│ │ │ │ │ │ ├── PackageExporterSettings.cs
│ │ │ │ │ │ └── PackageExporterSettings.cs.meta
│ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ ├── DefaultExporterSettings.cs
│ │ │ │ │ ├── DefaultExporterSettings.cs.meta
│ │ │ │ │ ├── DefaultPackageExporter.cs
│ │ │ │ │ ├── DefaultPackageExporter.cs.meta
│ │ │ │ │ ├── LegacyExporterSettings.cs
│ │ │ │ │ ├── LegacyExporterSettings.cs.meta
│ │ │ │ │ ├── LegacyPackageExporter.cs
│ │ │ │ │ ├── LegacyPackageExporter.cs.meta
│ │ │ │ │ ├── PackageExporterResult.cs
│ │ │ │ │ ├── PackageExporterResult.cs.meta
│ │ │ │ │ ├── PreviewInjector.cs
│ │ │ │ │ └── PreviewInjector.cs.meta
│ │ │ │ ├── Exporter.meta
│ │ │ │ ├── Previews/
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs
│ │ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs.meta
│ │ │ │ │ │ │ ├── FileNameFormat.cs
│ │ │ │ │ │ │ ├── FileNameFormat.cs.meta
│ │ │ │ │ │ │ ├── GenerationType.cs
│ │ │ │ │ │ │ ├── GenerationType.cs.meta
│ │ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs
│ │ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs.meta
│ │ │ │ │ │ │ ├── PreviewDatabase.cs
│ │ │ │ │ │ │ ├── PreviewDatabase.cs.meta
│ │ │ │ │ │ │ ├── PreviewFormat.cs
│ │ │ │ │ │ │ ├── PreviewFormat.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerationResult.cs
│ │ │ │ │ │ │ ├── PreviewGenerationResult.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerationSettings.cs
│ │ │ │ │ │ │ ├── PreviewGenerationSettings.cs.meta
│ │ │ │ │ │ │ ├── PreviewMetadata.cs
│ │ │ │ │ │ │ └── PreviewMetadata.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Generators/
│ │ │ │ │ │ │ ├── Custom/
│ │ │ │ │ │ │ │ ├── AudioChannel.cs
│ │ │ │ │ │ │ │ ├── AudioChannel.cs.meta
│ │ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs
│ │ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs.meta
│ │ │ │ │ │ │ │ ├── Screenshotters/
│ │ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs
│ │ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs.meta
│ │ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs
│ │ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs.meta
│ │ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs
│ │ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs.meta
│ │ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs
│ │ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs.meta
│ │ │ │ │ │ │ │ │ ├── SceneScreenshotterSettings.cs
│ │ │ │ │ │ │ │ │ └── SceneScreenshotterSettings.cs.meta
│ │ │ │ │ │ │ │ ├── Screenshotters.meta
│ │ │ │ │ │ │ │ ├── TypeGenerators/
│ │ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromSceneSettings.cs
│ │ │ │ │ │ │ │ │ └── TypePreviewGeneratorFromSceneSettings.cs.meta
│ │ │ │ │ │ │ │ └── TypeGenerators.meta
│ │ │ │ │ │ │ ├── Custom.meta
│ │ │ │ │ │ │ ├── CustomPreviewGenerator.cs
│ │ │ │ │ │ │ ├── CustomPreviewGenerator.cs.meta
│ │ │ │ │ │ │ ├── IPreviewGenerator.cs
│ │ │ │ │ │ │ ├── IPreviewGenerator.cs.meta
│ │ │ │ │ │ │ ├── NativePreviewGenerator.cs
│ │ │ │ │ │ │ ├── NativePreviewGenerator.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorBase.cs
│ │ │ │ │ │ │ └── PreviewGeneratorBase.cs.meta
│ │ │ │ │ │ ├── Generators.meta
│ │ │ │ │ │ ├── Services/
│ │ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ │ ├── IPreviewService.cs
│ │ │ │ │ │ │ ├── IPreviewService.cs.meta
│ │ │ │ │ │ │ ├── PreviewServiceProvider.cs
│ │ │ │ │ │ │ └── PreviewServiceProvider.cs.meta
│ │ │ │ │ │ ├── Services.meta
│ │ │ │ │ │ ├── UI/
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── AssetPreview.cs
│ │ │ │ │ │ │ │ ├── AssetPreview.cs.meta
│ │ │ │ │ │ │ │ ├── AssetPreviewCollection.cs
│ │ │ │ │ │ │ │ ├── AssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetPreview.cs
│ │ │ │ │ │ │ │ ├── IAssetPreview.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs
│ │ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGeneratorSettings.cs
│ │ │ │ │ │ │ │ └── PreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ │ ├── AssetPreviewElement.cs
│ │ │ │ │ │ │ │ ├── AssetPreviewElement.cs.meta
│ │ │ │ │ │ │ │ ├── GridListElement.cs
│ │ │ │ │ │ │ │ ├── GridListElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewCollectionElement.cs
│ │ │ │ │ │ │ │ ├── PreviewCollectionElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewWindowDescriptionElement.cs
│ │ │ │ │ │ │ │ └── PreviewWindowDescriptionElement.cs.meta
│ │ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorWindow.cs
│ │ │ │ │ │ │ ├── PreviewGeneratorWindow.cs.meta
│ │ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ │ ├── PreviewListView.cs
│ │ │ │ │ │ │ │ └── PreviewListView.cs.meta
│ │ │ │ │ │ │ └── Views.meta
│ │ │ │ │ │ ├── UI.meta
│ │ │ │ │ │ ├── Utility/
│ │ │ │ │ │ │ ├── GraphicsUtility.cs
│ │ │ │ │ │ │ ├── GraphicsUtility.cs.meta
│ │ │ │ │ │ │ ├── PreviewConvertUtility.cs
│ │ │ │ │ │ │ ├── PreviewConvertUtility.cs.meta
│ │ │ │ │ │ │ ├── PreviewSceneUtility.cs
│ │ │ │ │ │ │ ├── PreviewSceneUtility.cs.meta
│ │ │ │ │ │ │ ├── RenderPipeline.cs
│ │ │ │ │ │ │ ├── RenderPipeline.cs.meta
│ │ │ │ │ │ │ ├── RenderPipelineUtility.cs
│ │ │ │ │ │ │ └── RenderPipelineUtility.cs.meta
│ │ │ │ │ │ └── Utility.meta
│ │ │ │ │ ├── Scripts.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ └── Styles.meta
│ │ │ │ ├── Previews.meta
│ │ │ │ ├── Unity.AssetStoreTools.Editor.asmdef
│ │ │ │ ├── Unity.AssetStoreTools.Editor.asmdef.meta
│ │ │ │ ├── Uploader/
│ │ │ │ │ ├── Icons/
│ │ │ │ │ │ ├── account-dark.png.meta
│ │ │ │ │ │ ├── account-light.png.meta
│ │ │ │ │ │ ├── open-in-browser.png.meta
│ │ │ │ │ │ ├── publisher-portal-dark.png.meta
│ │ │ │ │ │ └── publisher-portal-light.png.meta
│ │ │ │ │ ├── Icons.meta
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── IPackage.cs
│ │ │ │ │ │ │ │ ├── IPackage.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageContent.cs
│ │ │ │ │ │ │ │ ├── IPackageContent.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageGroup.cs
│ │ │ │ │ │ │ │ ├── IPackageGroup.cs.meta
│ │ │ │ │ │ │ │ ├── IWorkflow.cs
│ │ │ │ │ │ │ │ ├── IWorkflow.cs.meta
│ │ │ │ │ │ │ │ ├── IWorkflowServices.cs
│ │ │ │ │ │ │ │ ├── IWorkflowServices.cs.meta
│ │ │ │ │ │ │ │ ├── WorkflowBase.cs
│ │ │ │ │ │ │ │ └── WorkflowBase.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── AssetsWorkflow.cs
│ │ │ │ │ │ │ ├── AssetsWorkflow.cs.meta
│ │ │ │ │ │ │ ├── HybridPackageWorkflow.cs
│ │ │ │ │ │ │ ├── HybridPackageWorkflow.cs.meta
│ │ │ │ │ │ │ ├── Package.cs
│ │ │ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ │ │ ├── PackageContent.cs
│ │ │ │ │ │ │ ├── PackageContent.cs.meta
│ │ │ │ │ │ │ ├── PackageGroup.cs
│ │ │ │ │ │ │ ├── PackageGroup.cs.meta
│ │ │ │ │ │ │ ├── PackageSorting.cs
│ │ │ │ │ │ │ ├── PackageSorting.cs.meta
│ │ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ │ ├── AssetPath.cs
│ │ │ │ │ │ │ │ ├── AssetPath.cs.meta
│ │ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs
│ │ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs.meta
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs.meta
│ │ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs
│ │ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs.meta
│ │ │ │ │ │ │ │ ├── WorkflowStateData.cs
│ │ │ │ │ │ │ │ └── WorkflowStateData.cs.meta
│ │ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ │ ├── UnityPackageWorkflow.cs
│ │ │ │ │ │ │ ├── UnityPackageWorkflow.cs.meta
│ │ │ │ │ │ │ ├── WorkflowServices.cs
│ │ │ │ │ │ │ └── WorkflowServices.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Services/
│ │ │ │ │ │ │ ├── Analytics/
│ │ │ │ │ │ │ │ ├── AnalyticsService.cs
│ │ │ │ │ │ │ │ ├── AnalyticsService.cs.meta
│ │ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── BaseAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── BaseAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs.meta
│ │ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidationResultsSerializer.cs
│ │ │ │ │ │ │ │ │ └── ValidationResultsSerializer.cs.meta
│ │ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ │ ├── IAnalyticsService.cs
│ │ │ │ │ │ │ │ └── IAnalyticsService.cs.meta
│ │ │ │ │ │ │ ├── Analytics.meta
│ │ │ │ │ │ │ ├── Api/
│ │ │ │ │ │ │ │ ├── AuthenticationService.cs
│ │ │ │ │ │ │ │ ├── AuthenticationService.cs.meta
│ │ │ │ │ │ │ │ ├── IAuthenticationService.cs
│ │ │ │ │ │ │ │ ├── IAuthenticationService.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageDownloadingService.cs
│ │ │ │ │ │ │ │ ├── IPackageDownloadingService.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageUploadingService.cs
│ │ │ │ │ │ │ │ ├── IPackageUploadingService.cs.meta
│ │ │ │ │ │ │ │ ├── PackageDownloadingService.cs
│ │ │ │ │ │ │ │ ├── PackageDownloadingService.cs.meta
│ │ │ │ │ │ │ │ ├── PackageUploadingService.cs
│ │ │ │ │ │ │ │ └── PackageUploadingService.cs.meta
│ │ │ │ │ │ │ ├── Api.meta
│ │ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ │ ├── IUploaderService.cs
│ │ │ │ │ │ │ ├── IUploaderService.cs.meta
│ │ │ │ │ │ │ ├── PackageFactory/
│ │ │ │ │ │ │ │ ├── IPackageFactoryService.cs
│ │ │ │ │ │ │ │ ├── IPackageFactoryService.cs.meta
│ │ │ │ │ │ │ │ ├── PackageFactoryService.cs
│ │ │ │ │ │ │ │ └── PackageFactoryService.cs.meta
│ │ │ │ │ │ │ ├── PackageFactory.meta
│ │ │ │ │ │ │ ├── UploaderServiceProvider.cs
│ │ │ │ │ │ │ └── UploaderServiceProvider.cs.meta
│ │ │ │ │ │ ├── Services.meta
│ │ │ │ │ │ ├── UI/
│ │ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ │ ├── ValidationElementBase.cs
│ │ │ │ │ │ │ │ │ ├── ValidationElementBase.cs.meta
│ │ │ │ │ │ │ │ │ ├── WorkflowElementBase.cs
│ │ │ │ │ │ │ │ │ └── WorkflowElementBase.cs.meta
│ │ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ │ ├── AccountToolbar.cs
│ │ │ │ │ │ │ │ ├── AccountToolbar.cs.meta
│ │ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs
│ │ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs.meta
│ │ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs
│ │ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs.meta
│ │ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs
│ │ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs.meta
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs.meta
│ │ │ │ │ │ │ │ ├── LoadingSpinner.cs
│ │ │ │ │ │ │ │ ├── LoadingSpinner.cs.meta
│ │ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs
│ │ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageContentElement.cs
│ │ │ │ │ │ │ │ ├── PackageContentElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageElement.cs
│ │ │ │ │ │ │ │ ├── PackageElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageGroupElement.cs
│ │ │ │ │ │ │ │ ├── PackageGroupElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageListToolbar.cs
│ │ │ │ │ │ │ │ ├── PackageListToolbar.cs.meta
│ │ │ │ │ │ │ │ ├── PackageUploadElement.cs
│ │ │ │ │ │ │ │ ├── PackageUploadElement.cs.meta
│ │ │ │ │ │ │ │ ├── PathSelectionElement.cs
│ │ │ │ │ │ │ │ ├── PathSelectionElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGenerationElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGenerationElement.cs.meta
│ │ │ │ │ │ │ │ ├── UnityPackageWorkflowElement.cs
│ │ │ │ │ │ │ │ └── UnityPackageWorkflowElement.cs.meta
│ │ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ │ ├── LoginView.cs
│ │ │ │ │ │ │ │ ├── LoginView.cs.meta
│ │ │ │ │ │ │ │ ├── PackageListView.cs
│ │ │ │ │ │ │ │ └── PackageListView.cs.meta
│ │ │ │ │ │ │ └── Views.meta
│ │ │ │ │ │ └── UI.meta
│ │ │ │ │ ├── Scripts.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── LoginView/
│ │ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ │ ├── LoginView.meta
│ │ │ │ │ │ ├── PackageListView/
│ │ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ │ ├── PackageListView.meta
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── Styles.meta
│ │ │ │ │ ├── UploaderWindow.cs
│ │ │ │ │ └── UploaderWindow.cs.meta
│ │ │ │ ├── Uploader.meta
│ │ │ │ ├── Utility/
│ │ │ │ │ ├── ASDebug.cs
│ │ │ │ │ ├── ASDebug.cs.meta
│ │ │ │ │ ├── ASToolsPreferences.cs
│ │ │ │ │ ├── ASToolsPreferences.cs.meta
│ │ │ │ │ ├── ASToolsUpdater.cs
│ │ │ │ │ ├── ASToolsUpdater.cs.meta
│ │ │ │ │ ├── CacheUtil.cs
│ │ │ │ │ ├── CacheUtil.cs.meta
│ │ │ │ │ ├── FileUtility.cs
│ │ │ │ │ ├── FileUtility.cs.meta
│ │ │ │ │ ├── LegacyToolsRemover.cs
│ │ │ │ │ ├── LegacyToolsRemover.cs.meta
│ │ │ │ │ ├── PackageUtility.cs
│ │ │ │ │ ├── PackageUtility.cs.meta
│ │ │ │ │ ├── ServiceProvider.cs
│ │ │ │ │ ├── ServiceProvider.cs.meta
│ │ │ │ │ ├── StyleSelector.cs
│ │ │ │ │ ├── StyleSelector.cs.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── Updater/
│ │ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ │ └── Updater.meta
│ │ │ │ │ ├── Styles.meta
│ │ │ │ │ ├── SymlinkUtil.cs
│ │ │ │ │ └── SymlinkUtil.cs.meta
│ │ │ │ ├── Utility.meta
│ │ │ │ ├── Validator/
│ │ │ │ │ ├── Icons/
│ │ │ │ │ │ ├── error.png.meta
│ │ │ │ │ │ ├── error_d.png.meta
│ │ │ │ │ │ ├── success.png.meta
│ │ │ │ │ │ ├── success_d.png.meta
│ │ │ │ │ │ ├── undefined.png.meta
│ │ │ │ │ │ ├── undefined_d.png.meta
│ │ │ │ │ │ ├── warning.png.meta
│ │ │ │ │ │ └── warning_d.png.meta
│ │ │ │ │ ├── Icons.meta
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── Categories/
│ │ │ │ │ │ │ ├── CategoryEvaluator.cs
│ │ │ │ │ │ │ ├── CategoryEvaluator.cs.meta
│ │ │ │ │ │ │ ├── ValidatorCategory.cs
│ │ │ │ │ │ │ └── ValidatorCategory.cs.meta
│ │ │ │ │ │ ├── Categories.meta
│ │ │ │ │ │ ├── CurrentProjectValidator.cs
│ │ │ │ │ │ ├── CurrentProjectValidator.cs.meta
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs
│ │ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs.meta
│ │ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs
│ │ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs.meta
│ │ │ │ │ │ │ ├── MessageActions/
│ │ │ │ │ │ │ │ ├── HighlightObjectAction.cs
│ │ │ │ │ │ │ │ ├── HighlightObjectAction.cs.meta
│ │ │ │ │ │ │ │ ├── IMessageAction.cs
│ │ │ │ │ │ │ │ ├── IMessageAction.cs.meta
│ │ │ │ │ │ │ │ ├── OpenAssetAction.cs
│ │ │ │ │ │ │ │ └── OpenAssetAction.cs.meta
│ │ │ │ │ │ │ ├── MessageActions.meta
│ │ │ │ │ │ │ ├── TestResult.cs
│ │ │ │ │ │ │ ├── TestResult.cs.meta
│ │ │ │ │ │ │ ├── TestResultMessage.cs
│ │ │ │ │ │ │ ├── TestResultMessage.cs.meta
│ │ │ │ │ │ │ ├── TestResultObject.cs
│ │ │ │ │ │ │ ├── TestResultObject.cs.meta
│ │ │ │ │ │ │ ├── TestResultStatus.cs
│ │ │ │ │ │ │ ├── TestResultStatus.cs.meta
│ │ │ │ │ │ │ ├── ValidationResult.cs
│ │ │ │ │ │ │ ├── ValidationResult.cs.meta
│ │ │ │ │ │ │ ├── ValidationSettings.cs
│ │ │ │ │ │ │ ├── ValidationSettings.cs.meta
│ │ │ │ │ │ │ ├── ValidationStatus.cs
│ │ │ │ │ │ │ ├── ValidationStatus.cs.meta
│ │ │ │ │ │ │ ├── ValidationType.cs
│ │ │ │ │ │ │ └── ValidationType.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── ExternalProjectValidator.cs
│ │ │ │ │ │ ├── ExternalProjectValidator.cs.meta
│ │ │ │ │ │ ├── IValidator.cs
│ │ │ │ │ │ ├── IValidator.cs.meta
│ │ │ │ │ │ ├── Services/
│ │ │ │ │ │ │ ├── CachingService/
│ │ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ │ ├── ICachingService.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewDatabaseContractResolver.cs
│ │ │ │ │ │ │ │ └── PreviewDatabaseContractResolver.cs.meta
│ │ │ │ │ │ │ ├── CachingService.meta
│ │ │ │ │ │ │ ├── IValidatorService.cs
│ │ │ │ │ │ │ ├── IValidatorService.cs.meta
│ │ │ │ │ │ │ ├── Validation/
│ │ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IModelUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IModelUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IScriptUtilityService.cs
│ │ │ │ │ │ │ │ │ └── IScriptUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ │ ├── AssetUtilityService.cs
│ │ │ │ │ │ │ │ ├── AssetUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ │ ├── ArchiveType.cs
│ │ │ │ │ │ │ │ │ ├── ArchiveType.cs.meta
│ │ │ │ │ │ │ │ │ ├── AssetEnumerator.cs
│ │ │ │ │ │ │ │ │ ├── AssetEnumerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── AssetType.cs
│ │ │ │ │ │ │ │ │ ├── AssetType.cs.meta
│ │ │ │ │ │ │ │ │ ├── LogEntry.cs
│ │ │ │ │ │ │ │ │ └── LogEntry.cs.meta
│ │ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs
│ │ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── MeshUtilityService.cs
│ │ │ │ │ │ │ │ ├── MeshUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── ModelUtilityService.cs
│ │ │ │ │ │ │ │ ├── ModelUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── SceneUtilityService.cs
│ │ │ │ │ │ │ │ ├── SceneUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── ScriptUtilityService.cs
│ │ │ │ │ │ │ │ └── ScriptUtilityService.cs.meta
│ │ │ │ │ │ │ ├── Validation.meta
│ │ │ │ │ │ │ ├── ValidatorServiceProvider.cs
│ │ │ │ │ │ │ └── ValidatorServiceProvider.cs.meta
│ │ │ │ │ │ ├── Services.meta
│ │ │ │ │ │ ├── Test Definitions/
│ │ │ │ │ │ │ ├── AutomatedTest.cs
│ │ │ │ │ │ │ ├── AutomatedTest.cs.meta
│ │ │ │ │ │ │ ├── GenericTestConfig.cs
│ │ │ │ │ │ │ ├── GenericTestConfig.cs.meta
│ │ │ │ │ │ │ ├── ITestConfig.cs
│ │ │ │ │ │ │ ├── ITestConfig.cs.meta
│ │ │ │ │ │ │ ├── ITestScript.cs
│ │ │ │ │ │ │ ├── ITestScript.cs.meta
│ │ │ │ │ │ │ ├── Scriptable Objects/
│ │ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs
│ │ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs.meta
│ │ │ │ │ │ │ │ ├── Editor/
│ │ │ │ │ │ │ │ │ ├── ValidationTestScriptableObjectInspector.cs
│ │ │ │ │ │ │ │ │ └── ValidationTestScriptableObjectInspector.cs.meta
│ │ │ │ │ │ │ │ ├── Editor.meta
│ │ │ │ │ │ │ │ ├── ValidationTestScriptableObject.cs
│ │ │ │ │ │ │ │ └── ValidationTestScriptableObject.cs.meta
│ │ │ │ │ │ │ ├── Scriptable Objects.meta
│ │ │ │ │ │ │ ├── ValidationTest.cs
│ │ │ │ │ │ │ └── ValidationTest.cs.meta
│ │ │ │ │ │ ├── Test Definitions.meta
│ │ │ │ │ │ ├── Test Methods/
│ │ │ │ │ │ │ ├── Generic/
│ │ │ │ │ │ │ │ ├── CheckAnimationClips.cs
│ │ │ │ │ │ │ │ ├── CheckAnimationClips.cs.meta
│ │ │ │ │ │ │ │ ├── CheckAudioClipping.cs
│ │ │ │ │ │ │ │ ├── CheckAudioClipping.cs.meta
│ │ │ │ │ │ │ │ ├── CheckColliders.cs
│ │ │ │ │ │ │ │ ├── CheckColliders.cs.meta
│ │ │ │ │ │ │ │ ├── CheckCompressedFiles.cs
│ │ │ │ │ │ │ │ ├── CheckCompressedFiles.cs.meta
│ │ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs
│ │ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckFileMenuNames.cs
│ │ │ │ │ │ │ │ ├── CheckFileMenuNames.cs.meta
│ │ │ │ │ │ │ │ ├── CheckLODs.cs
│ │ │ │ │ │ │ │ ├── CheckLODs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckLineEndings.cs
│ │ │ │ │ │ │ │ ├── CheckLineEndings.cs.meta
│ │ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs
│ │ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs.meta
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs.meta
│ │ │ │ │ │ │ │ ├── CheckModelImportLogs.cs
│ │ │ │ │ │ │ │ ├── CheckModelImportLogs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckModelOrientation.cs
│ │ │ │ │ │ │ │ ├── CheckModelOrientation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckModelTypes.cs
│ │ │ │ │ │ │ │ ├── CheckModelTypes.cs.meta
│ │ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs
│ │ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPackageNaming.cs
│ │ │ │ │ │ │ │ ├── CheckPackageNaming.cs.meta
│ │ │ │ │ │ │ │ ├── CheckParticleSystems.cs
│ │ │ │ │ │ │ │ ├── CheckParticleSystems.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPathLengths.cs
│ │ │ │ │ │ │ │ ├── CheckPathLengths.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs
│ │ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs.meta
│ │ │ │ │ │ │ │ ├── CheckScriptCompilation.cs
│ │ │ │ │ │ │ │ ├── CheckScriptCompilation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckShaderCompilation.cs
│ │ │ │ │ │ │ │ ├── CheckShaderCompilation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckTextureDimensions.cs
│ │ │ │ │ │ │ │ ├── CheckTextureDimensions.cs.meta
│ │ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs
│ │ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveJPGFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveJPGFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveVideoFiles.cs
│ │ │ │ │ │ │ │ └── RemoveVideoFiles.cs.meta
│ │ │ │ │ │ │ ├── Generic.meta
│ │ │ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ │ │ ├── CheckDemoScenes.cs
│ │ │ │ │ │ │ │ ├── CheckDemoScenes.cs.meta
│ │ │ │ │ │ │ │ ├── CheckDocumentation.cs
│ │ │ │ │ │ │ │ ├── CheckDocumentation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPackageSize.cs
│ │ │ │ │ │ │ │ ├── CheckPackageSize.cs.meta
│ │ │ │ │ │ │ │ ├── CheckProjectTemplateAssets.cs
│ │ │ │ │ │ │ │ └── CheckProjectTemplateAssets.cs.meta
│ │ │ │ │ │ │ └── UnityPackage.meta
│ │ │ │ │ │ ├── Test Methods.meta
│ │ │ │ │ │ ├── UI/
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ │ ├── IValidatorResults.cs
│ │ │ │ │ │ │ │ │ ├── IValidatorResults.cs.meta
│ │ │ │ │ │ │ │ │ ├── IValidatorSettings.cs
│ │ │ │ │ │ │ │ │ ├── IValidatorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── IValidatorTest.cs
│ │ │ │ │ │ │ │ │ ├── IValidatorTest.cs.meta
│ │ │ │ │ │ │ │ │ ├── IValidatorTestGroup.cs
│ │ │ │ │ │ │ │ │ └── IValidatorTestGroup.cs.meta
│ │ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ │ │ ├── ValidatorStateData.cs
│ │ │ │ │ │ │ │ │ ├── ValidatorStateData.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs
│ │ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs
│ │ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidatorStateSettings.cs
│ │ │ │ │ │ │ │ │ └── ValidatorStateSettings.cs.meta
│ │ │ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ │ │ ├── ValidatorResults.cs
│ │ │ │ │ │ │ │ ├── ValidatorResults.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorSettings.cs
│ │ │ │ │ │ │ │ ├── ValidatorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTest.cs
│ │ │ │ │ │ │ │ ├── ValidatorTest.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTestGroup.cs
│ │ │ │ │ │ │ │ └── ValidatorTestGroup.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ │ ├── ValidatorButtonElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorButtonElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorPathsElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorPathsElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorResultsElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorResultsElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTestElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorTestElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTestGroupElement.cs
│ │ │ │ │ │ │ │ └── ValidatorTestGroupElement.cs.meta
│ │ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ │ ├── ValidatorWindow.cs
│ │ │ │ │ │ │ ├── ValidatorWindow.cs.meta
│ │ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ │ ├── ValidatorTestsView.cs
│ │ │ │ │ │ │ │ └── ValidatorTestsView.cs.meta
│ │ │ │ │ │ │ └── Views.meta
│ │ │ │ │ │ ├── UI.meta
│ │ │ │ │ │ ├── Utility/
│ │ │ │ │ │ │ ├── ValidatorUtility.cs
│ │ │ │ │ │ │ └── ValidatorUtility.cs.meta
│ │ │ │ │ │ ├── Utility.meta
│ │ │ │ │ │ ├── ValidatorBase.cs
│ │ │ │ │ │ └── ValidatorBase.cs.meta
│ │ │ │ │ ├── Scripts.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── Styles.meta
│ │ │ │ │ ├── Tests/
│ │ │ │ │ │ ├── Generic/
│ │ │ │ │ │ │ ├── Check Animation Clips.asset
│ │ │ │ │ │ │ ├── Check Animation Clips.asset.meta
│ │ │ │ │ │ │ ├── Check Audio Clipping.asset
│ │ │ │ │ │ │ ├── Check Audio Clipping.asset.meta
│ │ │ │ │ │ │ ├── Check Colliders.asset
│ │ │ │ │ │ │ ├── Check Colliders.asset.meta
│ │ │ │ │ │ │ ├── Check Compressed Files.asset
│ │ │ │ │ │ │ ├── Check Compressed Files.asset.meta
│ │ │ │ │ │ │ ├── Check Empty Prefabs.asset
│ │ │ │ │ │ │ ├── Check Empty Prefabs.asset.meta
│ │ │ │ │ │ │ ├── Check File Menu Names.asset
│ │ │ │ │ │ │ ├── Check File Menu Names.asset.meta
│ │ │ │ │ │ │ ├── Check LODs.asset
│ │ │ │ │ │ │ ├── Check LODs.asset.meta
│ │ │ │ │ │ │ ├── Check Line Endings.asset
│ │ │ │ │ │ │ ├── Check Line Endings.asset.meta
│ │ │ │ │ │ │ ├── Check Mesh Prefabs.asset
│ │ │ │ │ │ │ ├── Check Mesh Prefabs.asset.meta
│ │ │ │ │ │ │ ├── Check Missing Components in Assets.asset
│ │ │ │ │ │ │ ├── Check Missing Components in Assets.asset.meta
│ │ │ │ │ │ │ ├── Check Missing Components in Scenes.asset
│ │ │ │ │ │ │ ├── Check Missing Components in Scenes.asset.meta
│ │ │ │ │ │ │ ├── Check Model Import Logs.asset
│ │ │ │ │ │ │ ├── Check Model Import Logs.asset.meta
│ │ │ │ │ │ │ ├── Check Model Orientation.asset
│ │ │ │ │ │ │ ├── Check Model Orientation.asset.meta
│ │ │ │ │ │ │ ├── Check Model Types.asset
│ │ │ │ │ │ │ ├── Check Model Types.asset.meta
│ │ │ │ │ │ │ ├── Check Normal Map Textures.asset
│ │ │ │ │ │ │ ├── Check Normal Map Textures.asset.meta
│ │ │ │ │ │ │ ├── Check Package Naming.asset
│ │ │ │ │ │ │ ├── Check Package Naming.asset.meta
│ │ │ │ │ │ │ ├── Check Particle Systems.asset
│ │ │ │ │ │ │ ├── Check Particle Systems.asset.meta
│ │ │ │ │ │ │ ├── Check Path Lengths.asset
│ │ │ │ │ │ │ ├── Check Path Lengths.asset.meta
│ │ │ │ │ │ │ ├── Check Prefab Transforms.asset
│ │ │ │ │ │ │ ├── Check Prefab Transforms.asset.meta
│ │ │ │ │ │ │ ├── Check Script Compilation.asset
│ │ │ │ │ │ │ ├── Check Script Compilation.asset.meta
│ │ │ │ │ │ │ ├── Check Shader Compilation.asset
│ │ │ │ │ │ │ ├── Check Shader Compilation.asset.meta
│ │ │ │ │ │ │ ├── Check Texture Dimensions.asset
│ │ │ │ │ │ │ ├── Check Texture Dimensions.asset.meta
│ │ │ │ │ │ │ ├── Check Type Namespaces.asset
│ │ │ │ │ │ │ ├── Check Type Namespaces.asset.meta
│ │ │ │ │ │ │ ├── Remove Executable Files.asset
│ │ │ │ │ │ │ ├── Remove Executable Files.asset.meta
│ │ │ │ │ │ │ ├── Remove JPG Files.asset
│ │ │ │ │ │ │ ├── Remove JPG Files.asset.meta
│ │ │ │ │ │ │ ├── Remove JavaScript Files.asset
│ │ │ │ │ │ │ ├── Remove JavaScript Files.asset.meta
│ │ │ │ │ │ │ ├── Remove Lossy Audio Files.asset
│ │ │ │ │ │ │ ├── Remove Lossy Audio Files.asset.meta
│ │ │ │ │ │ │ ├── Remove Mixamo Files.asset
│ │ │ │ │ │ │ ├── Remove Mixamo Files.asset.meta
│ │ │ │ │ │ │ ├── Remove SpeedTree Files.asset
│ │ │ │ │ │ │ ├── Remove SpeedTree Files.asset.meta
│ │ │ │ │ │ │ ├── Remove Video Files.asset
│ │ │ │ │ │ │ └── Remove Video Files.asset.meta
│ │ │ │ │ │ ├── Generic.meta
│ │ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ │ ├── Check Demo Scenes.asset
│ │ │ │ │ │ │ ├── Check Demo Scenes.asset.meta
│ │ │ │ │ │ │ ├── Check Documentation.asset
│ │ │ │ │ │ │ ├── Check Documentation.asset.meta
│ │ │ │ │ │ │ ├── Check Package Size.asset
│ │ │ │ │ │ │ ├── Check Package Size.asset.meta
│ │ │ │ │ │ │ ├── Check Project Template Assets.asset
│ │ │ │ │ │ │ └── Check Project Template Assets.asset.meta
│ │ │ │ │ │ └── UnityPackage.meta
│ │ │ │ │ └── Tests.meta
│ │ │ │ └── Validator.meta
│ │ │ ├── Editor.meta
│ │ │ ├── LICENSE.md
│ │ │ ├── LICENSE.md.meta
│ │ │ ├── package.json
│ │ │ └── package.json.meta
│ │ ├── manifest.json
│ │ └── packages-lock.json
│ ├── ProjectSettings/
│ │ ├── AudioManager.asset
│ │ ├── ClusterInputManager.asset
│ │ ├── DynamicsManager.asset
│ │ ├── EditorBuildSettings.asset
│ │ ├── EditorSettings.asset
│ │ ├── GraphicsSettings.asset
│ │ ├── InputManager.asset
│ │ ├── NavMeshAreas.asset
│ │ ├── PackageManagerSettings.asset
│ │ ├── Physics2DSettings.asset
│ │ ├── PresetManager.asset
│ │ ├── ProjectSettings.asset
│ │ ├── ProjectVersion.txt
│ │ ├── QualitySettings.asset
│ │ ├── TagManager.asset
│ │ ├── TimeManager.asset
│ │ ├── UnityConnectSettings.asset
│ │ ├── VFXManager.asset
│ │ └── XRSettings.asset
│ ├── ShadergraphMarkdown 2019.4.sln
│ ├── Unity.CollabProxy.Editor.csproj
│ ├── Unity.PlasticSCM.Editor.csproj
│ ├── Unity.Rider.Editor.csproj
│ ├── Unity.TextMeshPro.Editor.csproj
│ ├── Unity.TextMeshPro.csproj
│ ├── Unity.Timeline.Editor.csproj
│ ├── Unity.Timeline.csproj
│ ├── Unity.VSCode.Editor.csproj
│ ├── Unity.VisualStudio.Editor.csproj
│ ├── UnityEditor.TestRunner.csproj
│ ├── UnityEditor.UI.csproj
│ ├── UnityEngine.TestRunner.csproj
│ ├── UnityEngine.UI.csproj
│ └── asset-store-tools-editor.csproj
└── ShadergraphMarkdown 6000.2/
├── .vscode/
│ └── settings.json
├── Assembly-CSharp-Editor.csproj
├── Assembly-CSharp.csproj
├── DocCodeExamples.csproj
├── Needle.ShaderGraphMarkdown.Internal.csproj
├── Needle.ShaderGraphMarkdown.csproj
├── Packages/
│ ├── com.unity.asset-store-tools/
│ │ ├── CHANGELOG.md
│ │ ├── CHANGELOG.md.meta
│ │ ├── Editor/
│ │ │ ├── Api/
│ │ │ │ ├── Abstractions/
│ │ │ │ │ ├── AuthenticationBase.cs
│ │ │ │ │ ├── AuthenticationBase.cs.meta
│ │ │ │ │ ├── IAssetStoreApi.cs
│ │ │ │ │ ├── IAssetStoreApi.cs.meta
│ │ │ │ │ ├── IAssetStoreClient.cs
│ │ │ │ │ ├── IAssetStoreClient.cs.meta
│ │ │ │ │ ├── IAuthenticationType.cs
│ │ │ │ │ ├── IAuthenticationType.cs.meta
│ │ │ │ │ ├── IPackageUploader.cs
│ │ │ │ │ ├── IPackageUploader.cs.meta
│ │ │ │ │ ├── PackageUploaderBase.cs
│ │ │ │ │ └── PackageUploaderBase.cs.meta
│ │ │ │ ├── Abstractions.meta
│ │ │ │ ├── ApiUtility.cs
│ │ │ │ ├── ApiUtility.cs.meta
│ │ │ │ ├── AssetStoreApi.cs
│ │ │ │ ├── AssetStoreApi.cs.meta
│ │ │ │ ├── AssetStoreClient.cs
│ │ │ │ ├── AssetStoreClient.cs.meta
│ │ │ │ ├── CloudTokenAuthentication.cs
│ │ │ │ ├── CloudTokenAuthentication.cs.meta
│ │ │ │ ├── CredentialsAuthentication.cs
│ │ │ │ ├── CredentialsAuthentication.cs.meta
│ │ │ │ ├── Models/
│ │ │ │ │ ├── Category.cs
│ │ │ │ │ ├── Category.cs.meta
│ │ │ │ │ ├── Package.cs
│ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ ├── PackageAdditionalData.cs
│ │ │ │ │ ├── PackageAdditionalData.cs.meta
│ │ │ │ │ ├── User.cs
│ │ │ │ │ └── User.cs.meta
│ │ │ │ ├── Models.meta
│ │ │ │ ├── Responses/
│ │ │ │ │ ├── AssetStoreResponse.cs
│ │ │ │ │ ├── AssetStoreResponse.cs.meta
│ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs
│ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs.meta
│ │ │ │ │ ├── AuthenticationResponse.cs
│ │ │ │ │ ├── AuthenticationResponse.cs.meta
│ │ │ │ │ ├── CategoryDataResponse.cs
│ │ │ │ │ ├── CategoryDataResponse.cs.meta
│ │ │ │ │ ├── PackageThumbnailResponse.cs
│ │ │ │ │ ├── PackageThumbnailResponse.cs.meta
│ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs
│ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs.meta
│ │ │ │ │ ├── PackagesAdditionalDataResponse.cs
│ │ │ │ │ ├── PackagesAdditionalDataResponse.cs.meta
│ │ │ │ │ ├── PackagesDataResponse.cs
│ │ │ │ │ ├── PackagesDataResponse.cs.meta
│ │ │ │ │ ├── RefreshedPackageDataResponse.cs
│ │ │ │ │ ├── RefreshedPackageDataResponse.cs.meta
│ │ │ │ │ ├── UploadResponse.cs
│ │ │ │ │ └── UploadResponse.cs.meta
│ │ │ │ ├── Responses.meta
│ │ │ │ ├── SessionAuthentication.cs
│ │ │ │ ├── SessionAuthentication.cs.meta
│ │ │ │ ├── UnityPackageUploader.cs
│ │ │ │ ├── UnityPackageUploader.cs.meta
│ │ │ │ ├── UploadStatus.cs
│ │ │ │ └── UploadStatus.cs.meta
│ │ │ ├── Api.meta
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── AssemblyInfo.cs.meta
│ │ │ ├── AssetStoreTools.cs
│ │ │ ├── AssetStoreTools.cs.meta
│ │ │ ├── AssetStoreToolsWindow.cs
│ │ │ ├── AssetStoreToolsWindow.cs.meta
│ │ │ ├── Constants.cs
│ │ │ ├── Constants.cs.meta
│ │ │ ├── Exporter/
│ │ │ │ ├── Abstractions/
│ │ │ │ │ ├── IPackageExporter.cs
│ │ │ │ │ ├── IPackageExporter.cs.meta
│ │ │ │ │ ├── IPreviewInjector.cs
│ │ │ │ │ ├── IPreviewInjector.cs.meta
│ │ │ │ │ ├── PackageExporterBase.cs
│ │ │ │ │ ├── PackageExporterBase.cs.meta
│ │ │ │ │ ├── PackageExporterSettings.cs
│ │ │ │ │ └── PackageExporterSettings.cs.meta
│ │ │ │ ├── Abstractions.meta
│ │ │ │ ├── DefaultExporterSettings.cs
│ │ │ │ ├── DefaultExporterSettings.cs.meta
│ │ │ │ ├── DefaultPackageExporter.cs
│ │ │ │ ├── DefaultPackageExporter.cs.meta
│ │ │ │ ├── LegacyExporterSettings.cs
│ │ │ │ ├── LegacyExporterSettings.cs.meta
│ │ │ │ ├── LegacyPackageExporter.cs
│ │ │ │ ├── LegacyPackageExporter.cs.meta
│ │ │ │ ├── PackageExporterResult.cs
│ │ │ │ ├── PackageExporterResult.cs.meta
│ │ │ │ ├── PreviewInjector.cs
│ │ │ │ └── PreviewInjector.cs.meta
│ │ │ ├── Exporter.meta
│ │ │ ├── Previews/
│ │ │ │ ├── Scripts/
│ │ │ │ │ ├── Data/
│ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs
│ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs.meta
│ │ │ │ │ │ ├── FileNameFormat.cs
│ │ │ │ │ │ ├── FileNameFormat.cs.meta
│ │ │ │ │ │ ├── GenerationType.cs
│ │ │ │ │ │ ├── GenerationType.cs.meta
│ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs
│ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs.meta
│ │ │ │ │ │ ├── PreviewDatabase.cs
│ │ │ │ │ │ ├── PreviewDatabase.cs.meta
│ │ │ │ │ │ ├── PreviewFormat.cs
│ │ │ │ │ │ ├── PreviewFormat.cs.meta
│ │ │ │ │ │ ├── PreviewGenerationResult.cs
│ │ │ │ │ │ ├── PreviewGenerationResult.cs.meta
│ │ │ │ │ │ ├── PreviewGenerationSettings.cs
│ │ │ │ │ │ ├── PreviewGenerationSettings.cs.meta
│ │ │ │ │ │ ├── PreviewMetadata.cs
│ │ │ │ │ │ └── PreviewMetadata.cs.meta
│ │ │ │ │ ├── Data.meta
│ │ │ │ │ ├── Generators/
│ │ │ │ │ │ ├── Custom/
│ │ │ │ │ │ │ ├── AudioChannel.cs
│ │ │ │ │ │ │ ├── AudioChannel.cs.meta
│ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs
│ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs.meta
│ │ │ │ │ │ │ ├── Screenshotters/
│ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs
│ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs.meta
│ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs
│ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs.meta
│ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs
│ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs.meta
│ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs
│ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs.meta
│ │ │ │ │ │ │ │ ├── SceneScreenshotterSettings.cs
│ │ │ │ │ │ │ │ └── SceneScreenshotterSettings.cs.meta
│ │ │ │ │ │ │ ├── Screenshotters.meta
│ │ │ │ │ │ │ ├── TypeGenerators/
│ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs.meta
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs.meta
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromSceneSettings.cs
│ │ │ │ │ │ │ │ └── TypePreviewGeneratorFromSceneSettings.cs.meta
│ │ │ │ │ │ │ └── TypeGenerators.meta
│ │ │ │ │ │ ├── Custom.meta
│ │ │ │ │ │ ├── CustomPreviewGenerator.cs
│ │ │ │ │ │ ├── CustomPreviewGenerator.cs.meta
│ │ │ │ │ │ ├── IPreviewGenerator.cs
│ │ │ │ │ │ ├── IPreviewGenerator.cs.meta
│ │ │ │ │ │ ├── NativePreviewGenerator.cs
│ │ │ │ │ │ ├── NativePreviewGenerator.cs.meta
│ │ │ │ │ │ ├── PreviewGeneratorBase.cs
│ │ │ │ │ │ └── PreviewGeneratorBase.cs.meta
│ │ │ │ │ ├── Generators.meta
│ │ │ │ │ ├── Services/
│ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ ├── IPreviewService.cs
│ │ │ │ │ │ ├── IPreviewService.cs.meta
│ │ │ │ │ │ ├── PreviewServiceProvider.cs
│ │ │ │ │ │ └── PreviewServiceProvider.cs.meta
│ │ │ │ │ ├── Services.meta
│ │ │ │ │ ├── UI/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── AssetPreview.cs
│ │ │ │ │ │ │ ├── AssetPreview.cs.meta
│ │ │ │ │ │ │ ├── AssetPreviewCollection.cs
│ │ │ │ │ │ │ ├── AssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ ├── IAssetPreview.cs
│ │ │ │ │ │ │ ├── IAssetPreview.cs.meta
│ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs
│ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs
│ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorSettings.cs
│ │ │ │ │ │ │ └── PreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ ├── AssetPreviewElement.cs
│ │ │ │ │ │ │ ├── AssetPreviewElement.cs.meta
│ │ │ │ │ │ │ ├── GridListElement.cs
│ │ │ │ │ │ │ ├── GridListElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewCollectionElement.cs
│ │ │ │ │ │ │ ├── PreviewCollectionElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs
│ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs
│ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs
│ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewWindowDescriptionElement.cs
│ │ │ │ │ │ │ └── PreviewWindowDescriptionElement.cs.meta
│ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ ├── PreviewGeneratorWindow.cs
│ │ │ │ │ │ ├── PreviewGeneratorWindow.cs.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── PreviewListView.cs
│ │ │ │ │ │ │ └── PreviewListView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── UI.meta
│ │ │ │ │ ├── Utility/
│ │ │ │ │ │ ├── GraphicsUtility.cs
│ │ │ │ │ │ ├── GraphicsUtility.cs.meta
│ │ │ │ │ │ ├── PreviewConvertUtility.cs
│ │ │ │ │ │ ├── PreviewConvertUtility.cs.meta
│ │ │ │ │ │ ├── PreviewSceneUtility.cs
│ │ │ │ │ │ ├── PreviewSceneUtility.cs.meta
│ │ │ │ │ │ ├── RenderPipeline.cs
│ │ │ │ │ │ ├── RenderPipeline.cs.meta
│ │ │ │ │ │ ├── RenderPipelineUtility.cs
│ │ │ │ │ │ └── RenderPipelineUtility.cs.meta
│ │ │ │ │ └── Utility.meta
│ │ │ │ ├── Scripts.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── Style.uss
│ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ └── Styles.meta
│ │ │ ├── Previews.meta
│ │ │ ├── Unity.AssetStoreTools.Editor.asmdef
│ │ │ ├── Unity.AssetStoreTools.Editor.asmdef.meta
│ │ │ ├── Uploader/
│ │ │ │ ├── Icons/
│ │ │ │ │ ├── account-dark.png.meta
│ │ │ │ │ ├── account-light.png.meta
│ │ │ │ │ ├── open-in-browser.png.meta
│ │ │ │ │ ├── publisher-portal-dark.png.meta
│ │ │ │ │ └── publisher-portal-light.png.meta
│ │ │ │ ├── Icons.meta
│ │ │ │ ├── Scripts/
│ │ │ │ │ ├── Data/
│ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ ├── IPackage.cs
│ │ │ │ │ │ │ ├── IPackage.cs.meta
│ │ │ │ │ │ │ ├── IPackageContent.cs
│ │ │ │ │ │ │ ├── IPackageContent.cs.meta
│ │ │ │ │ │ │ ├── IPackageGroup.cs
│ │ │ │ │ │ │ ├── IPackageGroup.cs.meta
│ │ │ │ │ │ │ ├── IWorkflow.cs
│ │ │ │ │ │ │ ├── IWorkflow.cs.meta
│ │ │ │ │ │ │ ├── IWorkflowServices.cs
│ │ │ │ │ │ │ ├── IWorkflowServices.cs.meta
│ │ │ │ │ │ │ ├── WorkflowBase.cs
│ │ │ │ │ │ │ └── WorkflowBase.cs.meta
│ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ ├── AssetsWorkflow.cs
│ │ │ │ │ │ ├── AssetsWorkflow.cs.meta
│ │ │ │ │ │ ├── HybridPackageWorkflow.cs
│ │ │ │ │ │ ├── HybridPackageWorkflow.cs.meta
│ │ │ │ │ │ ├── Package.cs
│ │ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ │ ├── PackageContent.cs
│ │ │ │ │ │ ├── PackageContent.cs.meta
│ │ │ │ │ │ ├── PackageGroup.cs
│ │ │ │ │ │ ├── PackageGroup.cs.meta
│ │ │ │ │ │ ├── PackageSorting.cs
│ │ │ │ │ │ ├── PackageSorting.cs.meta
│ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ ├── AssetPath.cs
│ │ │ │ │ │ │ ├── AssetPath.cs.meta
│ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs
│ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs.meta
│ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs
│ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs.meta
│ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs
│ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs.meta
│ │ │ │ │ │ │ ├── WorkflowStateData.cs
│ │ │ │ │ │ │ └── WorkflowStateData.cs.meta
│ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ ├── UnityPackageWorkflow.cs
│ │ │ │ │ │ ├── UnityPackageWorkflow.cs.meta
│ │ │ │ │ │ ├── WorkflowServices.cs
│ │ │ │ │ │ └── WorkflowServices.cs.meta
│ │ │ │ │ ├── Data.meta
│ │ │ │ │ ├── Services/
│ │ │ │ │ │ ├── Analytics/
│ │ │ │ │ │ │ ├── AnalyticsService.cs
│ │ │ │ │ │ │ ├── AnalyticsService.cs.meta
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs
│ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── BaseAnalytic.cs
│ │ │ │ │ │ │ │ ├── BaseAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs.meta
│ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs
│ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── ValidationResultsSerializer.cs
│ │ │ │ │ │ │ │ └── ValidationResultsSerializer.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── IAnalyticsService.cs
│ │ │ │ │ │ │ └── IAnalyticsService.cs.meta
│ │ │ │ │ │ ├── Analytics.meta
│ │ │ │ │ │ ├── Api/
│ │ │ │ │ │ │ ├── AuthenticationService.cs
│ │ │ │ │ │ │ ├── AuthenticationService.cs.meta
│ │ │ │ │ │ │ ├── IAuthenticationService.cs
│ │ │ │ │ │ │ ├── IAuthenticationService.cs.meta
│ │ │ │ │ │ │ ├── IPackageDownloadingService.cs
│ │ │ │ │ │ │ ├── IPackageDownloadingService.cs.meta
│ │ │ │ │ │ │ ├── IPackageUploadingService.cs
│ │ │ │ │ │ │ ├── IPackageUploadingService.cs.meta
│ │ │ │ │ │ │ ├── PackageDownloadingService.cs
│ │ │ │ │ │ │ ├── PackageDownloadingService.cs.meta
│ │ │ │ │ │ │ ├── PackageUploadingService.cs
│ │ │ │ │ │ │ └── PackageUploadingService.cs.meta
│ │ │ │ │ │ ├── Api.meta
│ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ ├── IUploaderService.cs
│ │ │ │ │ │ ├── IUploaderService.cs.meta
│ │ │ │ │ │ ├── PackageFactory/
│ │ │ │ │ │ │ ├── IPackageFactoryService.cs
│ │ │ │ │ │ │ ├── IPackageFactoryService.cs.meta
│ │ │ │ │ │ │ ├── PackageFactoryService.cs
│ │ │ │ │ │ │ └── PackageFactoryService.cs.meta
│ │ │ │ │ │ ├── PackageFactory.meta
│ │ │ │ │ │ ├── UploaderServiceProvider.cs
│ │ │ │ │ │ └── UploaderServiceProvider.cs.meta
│ │ │ │ │ ├── Services.meta
│ │ │ │ │ ├── UI/
│ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── ValidationElementBase.cs
│ │ │ │ │ │ │ │ ├── ValidationElementBase.cs.meta
│ │ │ │ │ │ │ │ ├── WorkflowElementBase.cs
│ │ │ │ │ │ │ │ └── WorkflowElementBase.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── AccountToolbar.cs
│ │ │ │ │ │ │ ├── AccountToolbar.cs.meta
│ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs
│ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs.meta
│ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs
│ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs.meta
│ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs
│ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs.meta
│ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs
│ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs.meta
│ │ │ │ │ │ │ ├── LoadingSpinner.cs
│ │ │ │ │ │ │ ├── LoadingSpinner.cs.meta
│ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs
│ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs.meta
│ │ │ │ │ │ │ ├── PackageContentElement.cs
│ │ │ │ │ │ │ ├── PackageContentElement.cs.meta
│ │ │ │ │ │ │ ├── PackageElement.cs
│ │ │ │ │ │ │ ├── PackageElement.cs.meta
│ │ │ │ │ │ │ ├── PackageGroupElement.cs
│ │ │ │ │ │ │ ├── PackageGroupElement.cs.meta
│ │ │ │ │ │ │ ├── PackageListToolbar.cs
│ │ │ │ │ │ │ ├── PackageListToolbar.cs.meta
│ │ │ │ │ │ │ ├── PackageUploadElement.cs
│ │ │ │ │ │ │ ├── PackageUploadElement.cs.meta
│ │ │ │ │ │ │ ├── PathSelectionElement.cs
│ │ │ │ │ │ │ ├── PathSelectionElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerationElement.cs
│ │ │ │ │ │ │ ├── PreviewGenerationElement.cs.meta
│ │ │ │ │ │ │ ├── UnityPackageWorkflowElement.cs
│ │ │ │ │ │ │ └── UnityPackageWorkflowElement.cs.meta
│ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── LoginView.cs
│ │ │ │ │ │ │ ├── LoginView.cs.meta
│ │ │ │ │ │ │ ├── PackageListView.cs
│ │ │ │ │ │ │ └── PackageListView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ └── UI.meta
│ │ │ │ ├── Scripts.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── LoginView/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── LoginView.meta
│ │ │ │ │ ├── PackageListView/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── PackageListView.meta
│ │ │ │ │ ├── Style.uss
│ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ ├── Styles.meta
│ │ │ │ ├── UploaderWindow.cs
│ │ │ │ └── UploaderWindow.cs.meta
│ │ │ ├── Uploader.meta
│ │ │ ├── Utility/
│ │ │ │ ├── ASDebug.cs
│ │ │ │ ├── ASDebug.cs.meta
│ │ │ │ ├── ASToolsPreferences.cs
│ │ │ │ ├── ASToolsPreferences.cs.meta
│ │ │ │ ├── ASToolsUpdater.cs
│ │ │ │ ├── ASToolsUpdater.cs.meta
│ │ │ │ ├── CacheUtil.cs
│ │ │ │ ├── CacheUtil.cs.meta
│ │ │ │ ├── FileUtility.cs
│ │ │ │ ├── FileUtility.cs.meta
│ │ │ │ ├── LegacyToolsRemover.cs
│ │ │ │ ├── LegacyToolsRemover.cs.meta
│ │ │ │ ├── PackageUtility.cs
│ │ │ │ ├── PackageUtility.cs.meta
│ │ │ │ ├── ServiceProvider.cs
│ │ │ │ ├── ServiceProvider.cs.meta
│ │ │ │ ├── StyleSelector.cs
│ │ │ │ ├── StyleSelector.cs.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── Updater/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ └── Updater.meta
│ │ │ │ ├── Styles.meta
│ │ │ │ ├── SymlinkUtil.cs
│ │ │ │ └── SymlinkUtil.cs.meta
│ │ │ ├── Utility.meta
│ │ │ ├── Validator/
│ │ │ │ ├── Icons/
│ │ │ │ │ ├── error.png.meta
│ │ │ │ │ ├── error_d.png.meta
│ │ │ │ │ ├── success.png.meta
│ │ │ │ │ ├── success_d.png.meta
│ │ │ │ │ ├── undefined.png.meta
│ │ │ │ │ ├── undefined_d.png.meta
│ │ │ │ │ ├── warning.png.meta
│ │ │ │ │ └── warning_d.png.meta
│ │ │ │ ├── Icons.meta
│ │ │ │ ├── Scripts/
│ │ │ │ │ ├── Categories/
│ │ │ │ │ │ ├── CategoryEvaluator.cs
│ │ │ │ │ │ ├── CategoryEvaluator.cs.meta
│ │ │ │ │ │ ├── ValidatorCategory.cs
│ │ │ │ │ │ └── ValidatorCategory.cs.meta
│ │ │ │ │ ├── Categories.meta
│ │ │ │ │ ├── CurrentProjectValidator.cs
│ │ │ │ │ ├── CurrentProjectValidator.cs.meta
│ │ │ │ │ ├── Data/
│ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs
│ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs.meta
│ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs
│ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs.meta
│ │ │ │ │ │ ├── MessageActions/
│ │ │ │ │ │ │ ├── HighlightObjectAction.cs
│ │ │ │ │ │ │ ├── HighlightObjectAction.cs.meta
│ │ │ │ │ │ │ ├── IMessageAction.cs
│ │ │ │ │ │ │ ├── IMessageAction.cs.meta
│ │ │ │ │ │ │ ├── OpenAssetAction.cs
│ │ │ │ │ │ │ └── OpenAssetAction.cs.meta
│ │ │ │ │ │ ├── MessageActions.meta
│ │ │ │ │ │ ├── TestResult.cs
│ │ │ │ │ │ ├── TestResult.cs.meta
│ │ │ │ │ │ ├── TestResultMessage.cs
│ │ │ │ │ │ ├── TestResultMessage.cs.meta
│ │ │ │ │ │ ├── TestResultObject.cs
│ │ │ │ │ │ ├── TestResultObject.cs.meta
│ │ │ │ │ │ ├── TestResultStatus.cs
│ │ │ │ │ │ ├── TestResultStatus.cs.meta
│ │ │ │ │ │ ├── ValidationResult.cs
│ │ │ │ │ │ ├── ValidationResult.cs.meta
│ │ │ │ │ │ ├── ValidationSettings.cs
│ │ │ │ │ │ ├── ValidationSettings.cs.meta
│ │ │ │ │ │ ├── ValidationStatus.cs
│ │ │ │ │ │ ├── ValidationStatus.cs.meta
│ │ │ │ │ │ ├── ValidationType.cs
│ │ │ │ │ │ └── ValidationType.cs.meta
│ │ │ │ │ ├── Data.meta
│ │ │ │ │ ├── ExternalProjectValidator.cs
│ │ │ │ │ ├── ExternalProjectValidator.cs.meta
│ │ │ │ │ ├── IValidator.cs
│ │ │ │ │ ├── IValidator.cs.meta
│ │ │ │ │ ├── Services/
│ │ │ │ │ │ ├── CachingService/
│ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ ├── ICachingService.cs.meta
│ │ │ │ │ │ │ ├── PreviewDatabaseContractResolver.cs
│ │ │ │ │ │ │ └── PreviewDatabaseContractResolver.cs.meta
│ │ │ │ │ │ ├── CachingService.meta
│ │ │ │ │ │ ├── IValidatorService.cs
│ │ │ │ │ │ ├── IValidatorService.cs.meta
│ │ │ │ │ │ ├── Validation/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs
│ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs
│ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs
│ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IModelUtilityService.cs
│ │ │ │ │ │ │ │ ├── IModelUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs
│ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IScriptUtilityService.cs
│ │ │ │ │ │ │ │ └── IScriptUtilityService.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── AssetUtilityService.cs
│ │ │ │ │ │ │ ├── AssetUtilityService.cs.meta
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── ArchiveType.cs
│ │ │ │ │ │ │ │ ├── ArchiveType.cs.meta
│ │ │ │ │ │ │ │ ├── AssetEnumerator.cs
│ │ │ │ │ │ │ │ ├── AssetEnumerator.cs.meta
│ │ │ │ │ │ │ │ ├── AssetType.cs
│ │ │ │ │ │ │ │ ├── AssetType.cs.meta
│ │ │ │ │ │ │ │ ├── LogEntry.cs
│ │ │ │ │ │ │ │ └── LogEntry.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs
│ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ ├── MeshUtilityService.cs
│ │ │ │ │ │ │ ├── MeshUtilityService.cs.meta
│ │ │ │ │ │ │ ├── ModelUtilityService.cs
│ │ │ │ │ │ │ ├── ModelUtilityService.cs.meta
│ │ │ │ │ │ │ ├── SceneUtilityService.cs
│ │ │ │ │ │ │ ├── SceneUtilityService.cs.meta
│ │ │ │ │ │ │ ├── ScriptUtilityService.cs
│ │ │ │ │ │ │ └── ScriptUtilityService.cs.meta
│ │ │ │ │ │ ├── Validation.meta
│ │ │ │ │ │ ├── ValidatorServiceProvider.cs
│ │ │ │ │ │ └── ValidatorServiceProvider.cs.meta
│ │ │ │ │ ├── Services.meta
│ │ │ │ │ ├── Test Definitions/
│ │ │ │ │ │ ├── AutomatedTest.cs
│ │ │ │ │ │ ├── AutomatedTest.cs.meta
│ │ │ │ │ │ ├── GenericTestConfig.cs
│ │ │ │ │ │ ├── GenericTestConfig.cs.meta
│ │ │ │ │ │ ├── ITestConfig.cs
│ │ │ │ │ │ ├── ITestConfig.cs.meta
│ │ │ │ │ │ ├── ITestScript.cs
│ │ │ │ │ │ ├── ITestScript.cs.meta
│ │ │ │ │ │ ├── Scriptable Objects/
│ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs
│ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs.meta
│ │ │ │ │ │ │ ├── Editor/
│ │ │ │ │ │ │ │ ├── ValidationTestScriptableObjectInspector.cs
│ │ │ │ │ │ │ │ └── ValidationTestScriptableObjectInspector.cs.meta
│ │ │ │ │ │ │ ├── Editor.meta
│ │ │ │ │ │ │ ├── ValidationTestScriptableObject.cs
│ │ │ │ │ │ │ └── ValidationTestScriptableObject.cs.meta
│ │ │ │ │ │ ├── Scriptable Objects.meta
│ │ │ │ │ │ ├── ValidationTest.cs
│ │ │ │ │ │ └── ValidationTest.cs.meta
│ │ │ │ │ ├── Test Definitions.meta
│ │ │ │ │ ├── Test Methods/
│ │ │ │ │ │ ├── Generic/
│ │ │ │ │ │ │ ├── CheckAnimationClips.cs
│ │ │ │ │ │ │ ├── CheckAnimationClips.cs.meta
│ │ │ │ │ │ │ ├── CheckAudioClipping.cs
│ │ │ │ │ │ │ ├── CheckAudioClipping.cs.meta
│ │ │ │ │ │ │ ├── CheckColliders.cs
│ │ │ │ │ │ │ ├── CheckColliders.cs.meta
│ │ │ │ │ │ │ ├── CheckCompressedFiles.cs
│ │ │ │ │ │ │ ├── CheckCompressedFiles.cs.meta
│ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs
│ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs.meta
│ │ │ │ │ │ │ ├── CheckFileMenuNames.cs
│ │ │ │ │ │ │ ├── CheckFileMenuNames.cs.meta
│ │ │ │ │ │ │ ├── CheckLODs.cs
│ │ │ │ │ │ │ ├── CheckLODs.cs.meta
│ │ │ │ │ │ │ ├── CheckLineEndings.cs
│ │ │ │ │ │ │ ├── CheckLineEndings.cs.meta
│ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs
│ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs.meta
│ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs
│ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs.meta
│ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs
│ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs.meta
│ │ │ │ │ │ │ ├── CheckModelImportLogs.cs
│ │ │ │ │ │ │ ├── CheckModelImportLogs.cs.meta
│ │ │ │ │ │ │ ├── CheckModelOrientation.cs
│ │ │ │ │ │ │ ├── CheckModelOrientation.cs.meta
│ │ │ │ │ │ │ ├── CheckModelTypes.cs
│ │ │ │ │ │ │ ├── CheckModelTypes.cs.meta
│ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs
│ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs.meta
│ │ │ │ │ │ │ ├── CheckPackageNaming.cs
│ │ │ │ │ │ │ ├── CheckPackageNaming.cs.meta
│ │ │ │ │ │ │ ├── CheckParticleSystems.cs
│ │ │ │ │ │ │ ├── CheckParticleSystems.cs.meta
│ │ │ │ │ │ │ ├── CheckPathLengths.cs
│ │ │ │ │ │ │ ├── CheckPathLengths.cs.meta
│ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs
│ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs.meta
│ │ │ │ │ │ │ ├── CheckScriptCompilation.cs
│ │ │ │ │ │ │ ├── CheckScriptCompilation.cs.meta
│ │ │ │ │ │ │ ├── CheckShaderCompilation.cs
│ │ │ │ │ │ │ ├── CheckShaderCompilation.cs.meta
│ │ │ │ │ │ │ ├── CheckTextureDimensions.cs
│ │ │ │ │ │ │ ├── CheckTextureDimensions.cs.meta
│ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs
│ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs.meta
│ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs
│ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveJPGFiles.cs
│ │ │ │ │ │ │ ├── RemoveJPGFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs
│ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs
│ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs
│ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs
│ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveVideoFiles.cs
│ │ │ │ │ │ │ └── RemoveVideoFiles.cs.meta
│ │ │ │ │ │ ├── Generic.meta
│ │ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ │ ├── CheckDemoScenes.cs
│ │ │ │ │ │ │ ├── CheckDemoScenes.cs.meta
│ │ │ │ │ │ │ ├── CheckDocumentation.cs
│ │ │ │ │ │ │ ├── CheckDocumentation.cs.meta
│ │ │ │ │ │ │ ├── CheckPackageSize.cs
│ │ │ │ │ │ │ ├── CheckPackageSize.cs.meta
│ │ │ │ │ │ │ ├── CheckProjectTemplateAssets.cs
│ │ │ │ │ │ │ └── CheckProjectTemplateAssets.cs.meta
│ │ │ │ │ │ └── UnityPackage.meta
│ │ │ │ │ ├── Test Methods.meta
│ │ │ │ │ ├── UI/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── IValidatorResults.cs
│ │ │ │ │ │ │ │ ├── IValidatorResults.cs.meta
│ │ │ │ │ │ │ │ ├── IValidatorSettings.cs
│ │ │ │ │ │ │ │ ├── IValidatorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── IValidatorTest.cs
│ │ │ │ │ │ │ │ ├── IValidatorTest.cs.meta
│ │ │ │ │ │ │ │ ├── IValidatorTestGroup.cs
│ │ │ │ │ │ │ │ └── IValidatorTestGroup.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ │ ├── ValidatorStateData.cs
│ │ │ │ │ │ │ │ ├── ValidatorStateData.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs
│ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs
│ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorStateSettings.cs
│ │ │ │ │ │ │ │ └── ValidatorStateSettings.cs.meta
│ │ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ │ ├── ValidatorResults.cs
│ │ │ │ │ │ │ ├── ValidatorResults.cs.meta
│ │ │ │ │ │ │ ├── ValidatorSettings.cs
│ │ │ │ │ │ │ ├── ValidatorSettings.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTest.cs
│ │ │ │ │ │ │ ├── ValidatorTest.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTestGroup.cs
│ │ │ │ │ │ │ └── ValidatorTestGroup.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ ├── ValidatorButtonElement.cs
│ │ │ │ │ │ │ ├── ValidatorButtonElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs
│ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorPathsElement.cs
│ │ │ │ │ │ │ ├── ValidatorPathsElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorResultsElement.cs
│ │ │ │ │ │ │ ├── ValidatorResultsElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs
│ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTestElement.cs
│ │ │ │ │ │ │ ├── ValidatorTestElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTestGroupElement.cs
│ │ │ │ │ │ │ └── ValidatorTestGroupElement.cs.meta
│ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ ├── ValidatorWindow.cs
│ │ │ │ │ │ ├── ValidatorWindow.cs.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── ValidatorTestsView.cs
│ │ │ │ │ │ │ └── ValidatorTestsView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── UI.meta
│ │ │ │ │ ├── Utility/
│ │ │ │ │ │ ├── ValidatorUtility.cs
│ │ │ │ │ │ └── ValidatorUtility.cs.meta
│ │ │ │ │ ├── Utility.meta
│ │ │ │ │ ├── ValidatorBase.cs
│ │ │ │ │ └── ValidatorBase.cs.meta
│ │ │ │ ├── Scripts.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── Style.uss
│ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ ├── Styles.meta
│ │ │ │ ├── Tests/
│ │ │ │ │ ├── Generic/
│ │ │ │ │ │ ├── Check Animation Clips.asset
│ │ │ │ │ │ ├── Check Animation Clips.asset.meta
│ │ │ │ │ │ ├── Check Audio Clipping.asset
│ │ │ │ │ │ ├── Check Audio Clipping.asset.meta
│ │ │ │ │ │ ├── Check Colliders.asset
│ │ │ │ │ │ ├── Check Colliders.asset.meta
│ │ │ │ │ │ ├── Check Compressed Files.asset
│ │ │ │ │ │ ├── Check Compressed Files.asset.meta
│ │ │ │ │ │ ├── Check Empty Prefabs.asset
│ │ │ │ │ │ ├── Check Empty Prefabs.asset.meta
│ │ │ │ │ │ ├── Check File Menu Names.asset
│ │ │ │ │ │ ├── Check File Menu Names.asset.meta
│ │ │ │ │ │ ├── Check LODs.asset
│ │ │ │ │ │ ├── Check LODs.asset.meta
│ │ │ │ │ │ ├── Check Line Endings.asset
│ │ │ │ │ │ ├── Check Line Endings.asset.meta
│ │ │ │ │ │ ├── Check Mesh Prefabs.asset
│ │ │ │ │ │ ├── Check Mesh Prefabs.asset.meta
│ │ │ │ │ │ ├── Check Missing Components in Assets.asset
│ │ │ │ │ │ ├── Check Missing Components in Assets.asset.meta
│ │ │ │ │ │ ├── Check Missing Components in Scenes.asset
│ │ │ │ │ │ ├── Check Missing Components in Scenes.asset.meta
│ │ │ │ │ │ ├── Check Model Import Logs.asset
│ │ │ │ │ │ ├── Check Model Import Logs.asset.meta
│ │ │ │ │ │ ├── Check Model Orientation.asset
│ │ │ │ │ │ ├── Check Model Orientation.asset.meta
│ │ │ │ │ │ ├── Check Model Types.asset
│ │ │ │ │ │ ├── Check Model Types.asset.meta
│ │ │ │ │ │ ├── Check Normal Map Textures.asset
│ │ │ │ │ │ ├── Check Normal Map Textures.asset.meta
│ │ │ │ │ │ ├── Check Package Naming.asset
│ │ │ │ │ │ ├── Check Package Naming.asset.meta
│ │ │ │ │ │ ├── Check Particle Systems.asset
│ │ │ │ │ │ ├── Check Particle Systems.asset.meta
│ │ │ │ │ │ ├── Check Path Lengths.asset
│ │ │ │ │ │ ├── Check Path Lengths.asset.meta
│ │ │ │ │ │ ├── Check Prefab Transforms.asset
│ │ │ │ │ │ ├── Check Prefab Transforms.asset.meta
│ │ │ │ │ │ ├── Check Script Compilation.asset
│ │ │ │ │ │ ├── Check Script Compilation.asset.meta
│ │ │ │ │ │ ├── Check Shader Compilation.asset
│ │ │ │ │ │ ├── Check Shader Compilation.asset.meta
│ │ │ │ │ │ ├── Check Texture Dimensions.asset
│ │ │ │ │ │ ├── Check Texture Dimensions.asset.meta
│ │ │ │ │ │ ├── Check Type Namespaces.asset
│ │ │ │ │ │ ├── Check Type Namespaces.asset.meta
│ │ │ │ │ │ ├── Remove Executable Files.asset
│ │ │ │ │ │ ├── Remove Executable Files.asset.meta
│ │ │ │ │ │ ├── Remove JPG Files.asset
│ │ │ │ │ │ ├── Remove JPG Files.asset.meta
│ │ │ │ │ │ ├── Remove JavaScript Files.asset
│ │ │ │ │ │ ├── Remove JavaScript Files.asset.meta
│ │ │ │ │ │ ├── Remove Lossy Audio Files.asset
│ │ │ │ │ │ ├── Remove Lossy Audio Files.asset.meta
│ │ │ │ │ │ ├── Remove Mixamo Files.asset
│ │ │ │ │ │ ├── Remove Mixamo Files.asset.meta
│ │ │ │ │ │ ├── Remove SpeedTree Files.asset
│ │ │ │ │ │ ├── Remove SpeedTree Files.asset.meta
│ │ │ │ │ │ ├── Remove Video Files.asset
│ │ │ │ │ │ └── Remove Video Files.asset.meta
│ │ │ │ │ ├── Generic.meta
│ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ ├── Check Demo Scenes.asset
│ │ │ │ │ │ ├── Check Demo Scenes.asset.meta
│ │ │ │ │ │ ├── Check Documentation.asset
│ │ │ │ │ │ ├── Check Documentation.asset.meta
│ │ │ │ │ │ ├── Check Package Size.asset
│ │ │ │ │ │ ├── Check Package Size.asset.meta
│ │ │ │ │ │ ├── Check Project Template Assets.asset
│ │ │ │ │ │ └── Check Project Template Assets.asset.meta
│ │ │ │ │ └── UnityPackage.meta
│ │ │ │ └── Tests.meta
│ │ │ └── Validator.meta
│ │ ├── Editor.meta
│ │ ├── LICENSE.md
│ │ ├── LICENSE.md.meta
│ │ ├── package.json
│ │ └── package.json.meta
│ ├── manifest.json
│ └── packages-lock.json
├── ProjectSettings/
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── MemorySettings.asset
│ ├── MultiplayerManager.asset
│ ├── NavMeshAreas.asset
│ ├── PackageManagerSettings.asset
│ ├── Physics2DSettings.asset
│ ├── PresetManager.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── ShaderGraphMarkdownSettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ ├── UnityConnectSettings.asset
│ ├── VFXManager.asset
│ ├── VersionControlSettings.asset
│ └── XRSettings.asset
├── ShadergraphMarkdown 2019.4.sln
├── ShadergraphMarkdown 6000.2.sln
├── Unity.AI.Navigation.Editor.ConversionSystem.csproj
├── Unity.AI.Navigation.Editor.Tests.csproj
├── Unity.AI.Navigation.Editor.csproj
├── Unity.AI.Navigation.LegacyOffMeshLink.Tests.csproj
├── Unity.AI.Navigation.Tests.EditorInPlaymode.csproj
├── Unity.AI.Navigation.Tests.csproj
├── Unity.AI.Navigation.Updater.csproj
├── Unity.AI.Navigation.csproj
├── Unity.CollabProxy.Editor.csproj
├── Unity.PlasticSCM.Editor.csproj
├── Unity.Rider.Editor.csproj
├── Unity.TextMeshPro.Editor.csproj
├── Unity.TextMeshPro.csproj
├── Unity.Timeline.Editor.csproj
├── Unity.Timeline.csproj
├── Unity.VSCode.Editor.csproj
├── Unity.VisualStudio.Editor.csproj
├── UnityEditor.TestRunner.csproj
├── UnityEditor.UI.csproj
├── UnityEngine.TestRunner.csproj
├── UnityEngine.UI.csproj
├── UserSettings/
│ ├── EditorUserSettings.asset
│ ├── Layouts/
│ │ └── default-6000.dwlt
│ └── Search.settings
└── asset-store-tools-editor.csproj
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/Release.yml
================================================
name: Release Workflow
on:
push:
branches:
- 'release/package'
jobs:
run-release-script:
runs-on: ubuntu-latest
timeout-minutes: 5
defaults:
run:
working-directory: package
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Publish to npm
id: publish
run: npx --yes needle-publish-helper@next publish "." --webhook "${{ secrets.WEBHOOK_URL }}" --registry https://packages.needle.tools --access-token "${{ secrets.NPM_TOKEN }}" --create-tag release/ --llm-api-key "${{ secrets.LLM_API_KEY }}"
================================================
FILE: .gitignore
================================================
# for more stuff, see https://github.com/github/gitignore/blob/master/Unity.gitignore
# Jetbrain Rider Cache
.idea/
*/Plugins/Editor/JetBrains*
# Project specific
# add all your development/MyUnityProject folders here!
# Unity specific
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Mm]emoryCaptures/
.vs/
.gradle/
*.pidb.meta
*.pdb.meta
*.mdb.meta
sysinfo.txt
crashlytics-build.properties
ProBuilderSettings.json
# vvvv specific
# Dynamic Plugins
bin/Dynamic/
*._dynamic_.*
*~.xml
# OS junk files
[Dd]esktop.ini
[Dd]esktop.ini.meta
[Tt]humbs.db
[Tt]humbs.db.meta
ehthumbs.db
*.BridgeSort
.DS_Store*
.Spotlight-V100
.Trashes
# Visual Studio files
ExportedObj/
.consulo/
*.unityproj
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.opensdf
ipch/
[Bb]in
[Rr]elease*/
[Dd]ynamic*/
Ankh.NoLoad
#Subversion files
.svn
# Office Temp Files
~$*
================================================
FILE: README.md
================================================
# Shader Graph Markdown

## License
Shader Graph Markdown is [available on the Asset Store](http://u3d.as/2was) for commercial use.
Other versions (git, OpenUPM) are only allowed to be used **non-commercially** and **only if you're entitled to use Unity Personal** (the same restrictions apply).
For all other uses, **please buy a commercial license** to ensure continued support! Thank you.
## What's this?
**Shader Graph Markdown** supercharges your creativity by allowing you to create great-looking, easy-to-use custom shader editors right from Unity's Shader Graph.
It uses "dummy properties" to draw a nice inspector for your materials, and decorates the Blackboard (where you edit properties) so that the markdown is readable and looks good.
The property naming syntax is inspired by the simplicity of markdown.

This doesn't affect your shader's functionality - it just makes it much nicer to work with it!
(if someone doesn't have the package, then you just have some extra "dummy" properties)

You can make properties display conditionally, that is, only if a specific keyword option is set:

The Shader Graph UI and blackboard are modified to render all "markdown dummy properties" differently, to increase legibility.

## Install
[Get on the Asset Store](http://u3d.as/2was)
## How To Use 💡
Please open the <a href="package/Readme.md">Package Readme</a> for more information.
## Contact
<b>[needle — tools for unity](https://needle.tools)</b> •
[Discord Community](https://discord.gg/UHwvwjs9Vp) •
[@NeedleTools](https://twitter.com/NeedleTools) •
[@marcel_wiessler](https://twitter.com/marcel_wiessler) •
[@hybridherbst](https://twitter.com/hybridherbst)
================================================
FILE: package/.npmignore
================================================
.github
================================================
FILE: package/Changelog.md
================================================
# Changelog
All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [1.5.2] 2025-08-28
- fixed: Unity 6000.2+ API changes
## [1.5.1] 2022-06-24
- fixed weird crash when text displayed in DialogueWindowComplex was too long
- added: refactor multiple properties in one go to the PropertyRefactor window
- added: copy list of properties to be refactored from/to clipboard as plain text format
- added ability to refactor property names in scripts as well
## [1.5.0] 2022-05-12
- fixed indenting issue with `VectorSlider` drawer
- fixed property name warnings showing in SubGraphs
- fixed `MinMax` drawer showing property swizzles by default, can now be turned on for debugging with "Show Reference Names"
- fixed reflection access error due to internal API change
- fixed incorrect display properties that are both inlined and conditional in the blackboard
- added Markdown Tools option to "Show Reference Names" of all properties, useful for scripting and animation
- added shortcut to quickly show reference names, use <kbd>SHIFT</kbd> while having the material inspector focussed
- added an optional parameter to specify a display name for MinMax drawers
- added local and global keyword state toggles to quickly see what's on
- added support for `LocalKeyword` and `GlobalKeyword` in 2021.2+ to get the new info available there
- added support for global keywords in conditional properties
- added support for global keywords in `!REF`
- added `!DRAWER` documentation to the Readme, added more info to the attribute reference
- changed Markdown Tools inspector order to better reflect common workflows
## [1.4.0] 2022-04-19
- added new markup: `!TOOLTIP` or short `!TIP` will add a tooltip to the next property
## [1.3.2] 2022-03-28
- fixed generated gradient textures being compressed, now uncompressed (better quality)
## [1.3.1] 2021-12-13
- fixed issue with Surface Options not showing in some package combinations
- verified basic compatiblity with Unity 2022
## [1.3.0] 2021-11-26
- added Global Illumination mode dropdown when shader uses `_EmissionColor` and `_EmissionMap` and/or declares the `_EMISSION` keyword
- add Shader Property Refactoring and Global Illumination to the Readme
- updated known Unity bugs in the Readme to include version where issues are known to be resolved
## [1.3.0-pre.2] 2021-11-09
- fixed an issue with shaders on 2021.2+ that don't have blackboard categories (e.g. Amplify shaders used in URP)
## [1.3.0-pre] 2021-11-01
- fixed properties in an old default reference format not displayed in red
- fixed categories not being displayed correctly in some Editor versions
- fixed foldout header state for categories with duplicate names
- fixed compilation errors on 2019.4 and 2021.1
- fixed material validation not always being called in 2021.2+
- changed "Debug" category to be called "Markdown Tools"
- added Shader Property Refactor window (experimental)
- added toggle for development options into the Markdown Tools category
- added help link for Markdown Tools in foldout header
- added context menu for shader property refactoring
## [1.2.0] - 2021-10-02
- bumped version to stable for AssetStore release after testing in production
## [1.2.0-pre.2] - 2021-09-15
- fixed usage with Amplify on Built-In only (no SRPs in project)
- changed Amplify sample shader to use Built-In, not URP
## [1.2.0-pre] - 2021-09-15
- added support for blackboard categories in 2021.2+
- added support for keywords in subgraphs (first-level only, same as ShaderGraph itself supports)
- added settings option to show/hide Markdown in the blackboard
- improved performance for parsing some ShaderGraph data blocks
- fixed potential errors with HDRP being in the project but not used for shaders
- fixed a number of warnings
- fixed various SRP compatibility and versioning issues
## [1.1.4] - 2021-06-28
- added explicitly specified inlined properties (`Base Map && _BaseColor`) to allow e.g. virtual texture slots to use inlined properties
- added callback `MarkdownSGExtensions.RegisterCustomBaseShaderGUI` to specify a base shader GUI
- for HDRP ShaderGraph shaders the base shader GUI was already automatically added
- for Amplify, you can now use the above callback to register one per shader (e.g. `UnityEditor.Rendering.HighDefinition.LitShaderGraphGUI`)
- the base shader GUI is called with all properties that haven't been processed by `MarkdownShaderGUI`
## [1.1.3] - 2021-06-15
- fixed some issues with conditions parsing and exceptions
- fixed log message when editing gradients
- fixed applying gradients didn't work in some cases due to UI overlaps
- updated samples
## [1.1.2] - 2021-06-05
- fixed regression where gradient always saved texture on change (press Apply to see changes)
- fixed gradient texture picker sometimes showing texture preview instead
- added Uber shader sample with complex conditions
- added GradientDrawer script (same as GradientGeneratorDrawer) and removed legacy GradientDrawer ScriptableObjects
## [1.1.0] - 2021-06-05
- fixed some inline drawing issues
- fixed GradientGenerator drawer sometimes losing gradient reference
- added: experimental support for Shader Graph 12.x, needs to be updated once 2021.2 beta comes out.
- added: complex conditions (e.g. `[_Value > 0]`, `[_OPTION_A || _OPTION_B]`)
- added: generate gradients from arbitrary textures to GradientGenerator drawer
- added: quickly switch to other gradients based on generated textures
- added: conditions can now be used for entire foldout groups as well
## [1.0.3] - 2021-05-18
- fixed rare NullReference exception when changing shaders on a closed material that uses MarkdownShaderGUI
- fixed samples in AssetStore version
## [1.0.2] - 2021-05-03
- fixed short-named drawers going amiss after leaving Play mode with domain reload disabled
- fixed indentation issues with inline drawers
- improved string trimming for drawer parameters and vector slider names
- added ability to use duplicated empty headers `## (1)`
## [1.0.1] - 2021-05-03
- fixed Undo not showing changed values in some cases
- fixed disappearing custom drawers when exiting play mode with Domain Reload disabled
- fixed vector sliders not showing animation state (red/blue overlay)
- fixed hidden lightmap texture array being displayed as texture property in some case
- added `### Label` to show a non-bold label without space above, useful for indented properties coming afterwards
- added ability to use inline textures with custom drawers
- added MultiPropertyDrawer that can draw multiple properties on a single line (experimental)
## [1.0.0] - 2021-04-28
- fixed settings location which had an incorrect space in the path
- added more samples for SRP 10+, Amplify, Built-In RP
- added ability to collapse/expand all foldouts in SRP 7 with alt+click
- added texture property parameter to GradientGenerator
- added 2021.1 / SRP 11+ support
- removed Shader Graph/Core RP dependencies, works with Built-in as well
- adjusted colors
- changed license to Asset Store License, if SG Markdown is aquired elsewhere you many only use it for non-commercial purposes.
## [0.5.1-exp] - 2021-02-10
- fixed texture field not being square in some cases
- added tiling/offset inline drawer. Usage:
```
_MyTexture && (Texture2D)
_MyTexture_ST (Vector)
```
- added texture keyword helpers - bool keywords with the same name as a texture will automatically be set on texture changes.
This helps with performance improvements (making variants without texture access). Usage:
```
_BumpMap (Texture2D)
_BUMPMAP (Bool Keyword) // will be set automatically depending on texture being set
```
## [0.5.0-exp] - 2021-02-02
- fixed errors on non-ShaderGraph HDRP shaders (e.g. from Amplify)
- fixed UI not refreshing when changing some shader properties
- fixed duplicate split line before Additional Options
- changed inline texture format to "&" for inline texture and "&&" for inline texture + property
- added ability to make foldouts closed by default, just append "-"
## [0.4.5-exp] - 2021-01-30
- added shorthand for InlineTexture and VectorSliders - append & to property name
- fixes and better error display for incorrect drawer usage
## [0.4.4-exp] - 2021-01-18
- added auto-generation of drawer ScriptableObjects from their type name if no ScriptableObject with that name is found
- added ability for drawers to specify which properties are used by them / should be hidden
- added InlineTexture drawer
- added MinMax drawer
- added VectorSlider drawer
- added samples for all of the above in the SRP10-ShaderGraph
- improved performance of MarkdownShaderGUI by caching some things
## [0.4.3-exp] - 2021-01-17
- fixed confusing reference naming of bool keywords
- added support for bool values in conditional properties
- added indent support by prefixing properties with one or more '-' characters
## [0.4.2-exp] - 2021-01-08
- added warnings/hints in Blackboard for default reference names and names not starting with "_"
- added SettingsProvider to configure blackboard modifications
- added an experimental Property Wizard to bulk add ShaderGraph properties
(this is useful if you want to create a ShaderGraph version of an existing shader/material)
## [0.4.1-exp] - 2021-01-04
- fixed warnings on Unity 2021 for empty asmdef
- updated Readme with notes on conditional compilation
## [0.4.0-exp] - 2021-01-03
- fixed HDRP 11 compatibility
- fixed multi-target samples (SRP 10+), added HDRP sample
- changed foldout syntax to #, header syntax to ## and #REF/#NOTE/#DRAWER to !REF/!NOTE/!DRAWER to align better with markdown
- added foldout state persistance via SessionState, defaults to expanded
## [0.3.0-exp] - 2021-01-02
- added HDRP support
- added context menu helper to toggle MarkdownShaderGUI
- added debug option to show original property list
- changed link syntax (removed #LINK prefix, is now the same as markdown)
## [0.2.0-exp] - 2020-12-30
- added ShaderGraph UI modifications
- fixed editor compatibility from 2019.4—2020.2 and URP7—URP11
## [0.1.0-preview] - 2020-12-29
- initial version
================================================
FILE: package/Changelog.md.meta
================================================
fileFormatVersion: 2
guid: c7d45fc9f73c63d418fb011469490538
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Documentation/Shader Graph Markdown - Documentation.pdf.meta
================================================
fileFormatVersion: 2
guid: cec35121b0f1282428cda709b96a3a59
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Documentation.meta
================================================
fileFormatVersion: 2
guid: ae760d4113117f345b4d4d14970d35e3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/GradientDrawer.cs
================================================
namespace Needle.ShaderGraphMarkdown
{
public class GradientDrawer : GradientGeneratorDrawer
{
// empty
}
}
================================================
FILE: package/Editor/Drawers/GradientDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: a28cccbde1d68ef47b16bce11a507127
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/GradientGeneratorDrawer.cs
================================================
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public class GradientGeneratorDrawer : MarkdownMaterialPropertyDrawer
{
private const string DefaultTexturePropertyName = "_RampTexture";
public string texturePropertyName = DefaultTexturePropertyName;
private Dictionary<Material, Dictionary<string, Gradient>> mappedGradients;
public override void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
var targetProperty = parameters.Get(0, properties);
var targetPropertyName = texturePropertyName;
#if UNITY_6000_2_OR_NEWER
if(targetProperty != null && targetProperty.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture)
#else
if(targetProperty != null && targetProperty.type == MaterialProperty.PropType.Texture)
#endif
{
targetPropertyName = targetProperty.name;
if (string.IsNullOrEmpty(targetPropertyName)) targetPropertyName = texturePropertyName;
}
var targetMat = materialEditor.target as Material;
if (!targetMat) return;
if (mappedGradients == null)
mappedGradients = new Dictionary<Material, Dictionary<string, Gradient>>();
// already cached
bool gradientWasFound = mappedGradients.ContainsKey(targetMat) && mappedGradients[targetMat].ContainsKey(targetPropertyName);
void AddToCache(Gradient gradient)
{
if(!mappedGradients.ContainsKey(targetMat)) mappedGradients.Add(targetMat, new Dictionary<string, Gradient>());
mappedGradients[targetMat][targetPropertyName] = gradient;
gradientWasFound = true;
}
// check for user data in importer
if (!gradientWasFound && targetProperty?.textureValue is Texture2D tex)
{
if (AssetDatabase.Contains(tex))
{
var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(tex));
var userData = importer.userData;
if (!string.IsNullOrEmpty(userData))
{
var metaData = new GradientUserData();
JsonUtility.FromJsonOverwrite(userData, metaData);
if (metaData.isSet && metaData.gradient != null)
AddToCache(metaData.gradient);
}
}
}
// fallback: generate gradient from texture
if (!gradientWasFound && targetProperty?.textureValue is Texture2D texture)
{
var gradient = GenerateFromTexture(texture);
if(gradient != null)
AddToCache(gradient);
}
EditorGUILayout.BeginHorizontal();
var displayName = targetProperty != null ? targetProperty.displayName : "Ramp";
// strip condition
var lastIndex = displayName.LastIndexOf('[');
if (lastIndex > 0)
displayName = displayName.Substring(0, lastIndex);
EditorGUI.BeginChangeCheck();
var existingGradient = gradientWasFound ? mappedGradients[targetMat][targetPropertyName] : new Gradient();
var newGradient = EditorGUILayout.GradientField(new GUIContent(parameters.ShowPropertyNames ? targetPropertyName : displayName, parameters.Tooltip), existingGradient);
if (EditorGUI.EndChangeCheck())
AddToCache(newGradient);
var placeholderContent = new GUIContent(targetProperty?.textureValue ? "ApplyMM" : "CreateMM");
var buttonRect = GUILayoutUtility.GetRect(placeholderContent, GUI.skin.button);
// draw texture picker next to button
// TODO renders incorrectly on 2019.4 and prevents clicking the actual button.
// var haveFixedOverlayBug = false;
// if(haveFixedOverlayBug && targetProperty != null && buttonRect.width > 46 + 18)
// {
// var controlRect = buttonRect;
// controlRect.height = 16;
// controlRect.y += 2;
// var newObj = (Texture2D) EditorGUI.ObjectField(controlRect, targetProperty.textureValue, typeof(Texture2D), true);
// if(newObj != targetProperty.textureValue)
// {
// Undo.RecordObjects(new Object[] { this, targetMat }, "Applied Gradient");
// targetProperty.textureValue = newObj;
// mappedGradients[targetMat].Remove(targetPropertyName);
// GUIUtility.ExitGUI(); // reset GUI loop so the gradient can be picked up properly
// }
// buttonRect.xMax -= 18;
// }
if (GUI.Button(buttonRect, targetProperty?.textureValue ? "Apply" : "Create"))
ApplyRampTexture(targetMat, parameters.Get(0, targetPropertyName));
EditorGUILayout.EndHorizontal();
// show gradient fallback when no gradient was found -
// this shouldn't happen, ever, since we're generating the gradient from the texture
if (!gradientWasFound && targetProperty != null)
{
if(targetProperty.textureValue)
{
var rect = EditorGUILayout.GetControlRect(true, 8);
rect.xMin += EditorGUIUtility.labelWidth + 3;
rect.height -= 2;
var existingTexture = targetProperty.textureValue;
GUI.DrawTexture(rect, existingTexture);
}
else
{
EditorGUILayout.LabelField(" ", "None Assigned", EditorStyles.miniLabel);
}
}
}
public override IEnumerable<MaterialProperty> GetReferencedProperties(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
var textureProperty = parameters.Get(0, properties);
#if UNITY_6000_2_OR_NEWER
if (textureProperty != null && textureProperty.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture)
#else
if (textureProperty != null && textureProperty.type == MaterialProperty.PropType.Texture)
#endif
yield return textureProperty;
}
private void ApplyRampTexture(Material targetMat, string propertyName)
{
targetMat.SetTexture(propertyName, CreateGradientTexture(targetMat, mappedGradients[targetMat][propertyName], propertyName));
}
private Gradient GenerateFromTexture(Texture2D texture)
{
try
{
// sample texture in 8 places and make a gradient from that as fallback.
var rt = new RenderTexture(texture.width, texture.height, 0);
var prev = RenderTexture.active;
RenderTexture.active = rt;
var tex2 = new Texture2D(texture.width, texture.height);
Graphics.Blit(texture, rt);
tex2.wrapMode = TextureWrapMode.Clamp;
tex2.ReadPixels(new Rect(0, 0, texture.width, texture.height), 0, 0);
tex2.Apply();
RenderTexture.active = prev;
rt.Release();
var grad = new Gradient();
var colorKeys = new GradientColorKey[8];
var alphaKeys = new GradientAlphaKey[8];
for (int i = 0; i < 8; i++)
{
var x = i / (8.0f - 1);
var color = tex2.GetPixelBilinear(x, 0.5f, 0);
colorKeys[i] = new GradientColorKey(color, x);
alphaKeys[i] = new GradientAlphaKey(color.a, x);
}
grad.SetKeys(colorKeys, alphaKeys);
return grad;
}
catch
{
return null;
}
}
private const int GradientTexturePixelWidth = 256;
private const int GradientTexturePixelHeight = 4; // needs to be multiple of 4 for DXT1 format compression
[System.Serializable]
private class GradientUserData
{
public Gradient gradient;
public bool isSet;
}
private static Texture2D CreateGradientTexture(Material targetMaterial, Gradient gradient, string propertyName)
{
Texture2D gradientTexture = new Texture2D(GradientTexturePixelWidth, GradientTexturePixelHeight, TextureFormat.ARGB32, false, false)
{
name = propertyName + "_Gradient",
filterMode = FilterMode.Bilinear,
wrapMode = TextureWrapMode.Clamp,
alphaIsTransparency = true,
};
for (int j = 0; j < GradientTexturePixelHeight; j++)
{
for (int i = 0; i < GradientTexturePixelWidth; i++)
gradientTexture.SetPixel(i, j, gradient.Evaluate((float) i / GradientTexturePixelWidth));
}
gradientTexture.Apply(false);
gradientTexture = SaveAndGetTexture(targetMaterial, gradientTexture);
// store gradient meta-info as user data
var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(gradientTexture));
importer.userData = JsonUtility.ToJson(new GradientUserData() { gradient = gradient, isSet = true }, false);
if (importer is TextureImporter textureImporter)
textureImporter.textureCompression = TextureImporterCompression.Uncompressed;
EditorUtility.SetDirty(gradientTexture);
importer.SaveAndReimport();
return gradientTexture;
}
private static Texture2D SaveAndGetTexture(Material targetMaterial, Texture2D sourceTexture)
{
string targetFolder = AssetDatabase.GetAssetPath(targetMaterial);
targetFolder = targetFolder.Replace(targetMaterial.name + ".mat", string.Empty);
targetFolder += "Gradient Textures/";
if (!Directory.Exists(targetFolder))
{
Directory.CreateDirectory(targetFolder);
AssetDatabase.Refresh();
}
string path = targetFolder + targetMaterial.name + sourceTexture.name + ".png";
File.WriteAllBytes(path, sourceTexture.EncodeToPNG());
AssetDatabase.Refresh();
AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceSynchronousImport);
sourceTexture = (Texture2D) AssetDatabase.LoadAssetAtPath(path, typeof(Texture2D));
return sourceTexture;
}
}
}
================================================
FILE: package/Editor/Drawers/GradientGeneratorDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: 7ea34db0be65fad46b00838dbe3c23f7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/InlineTextureDrawer.cs
================================================
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public class InlineTextureDrawer : MarkdownMaterialPropertyDrawer
{
public override void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
if (parameters.Count < 1)
throw new ArgumentException("No parameters to " + nameof(InlineTextureDrawer) + ". Please provide _TextureProperty and optional _Float or _Color property names.");
var textureProperty = parameters.Get(0, properties);
if (textureProperty == null)
throw new ArgumentNullException("No property named " + parameters.Get(0, ""));
var extraProperty = parameters.Get(1, properties);
var displayName = textureProperty.displayName;
// strip condition
var lastIndex = displayName.LastIndexOf('[');
if (lastIndex > 0)
displayName = displayName.Substring(0, lastIndex);
// strip inlining
var inliningIndex = displayName.IndexOf("&&", StringComparison.Ordinal);
if (inliningIndex > 0)
displayName = displayName.Substring(0, inliningIndex);
OnDrawerGUI(materialEditor, properties, textureProperty, new GUIContent(parameters.ShowPropertyNames ? textureProperty.name : displayName, parameters.Tooltip), extraProperty);
}
private static Rect lastInlineTextureRect;
internal static Rect LastInlineTextureRect => lastInlineTextureRect;
private static MethodInfo _GetPropertyRect = null;
internal void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, MaterialProperty textureProperty, GUIContent displayContent, MaterialProperty extraProperty)
{
lastInlineTextureRect = Rect.zero;
if(extraProperty == null)
{
var rect = materialEditor.TexturePropertySingleLine(displayContent, textureProperty);
lastInlineTextureRect = rect;
lastInlineTextureRect.x += EditorGUIUtility.labelWidth;
lastInlineTextureRect.width -= EditorGUIUtility.labelWidth;
}
#if UNITY_6000_2_OR_NEWER
else if(extraProperty.propertyType == UnityEngine.Rendering.ShaderPropertyType.Vector && (extraProperty.name.Equals(textureProperty.name + "_ST", StringComparison.Ordinal)))
#else
else if(extraProperty.type == MaterialProperty.PropType.Vector && (extraProperty.name.Equals(textureProperty.name + "_ST", StringComparison.Ordinal)))
#endif
{
if (_GetPropertyRect == null)
{
_GetPropertyRect = typeof(MaterialEditor).GetMethod("GetPropertyRect", (BindingFlags)(-1), null, new[] { typeof(MaterialProperty), typeof(string), typeof(bool) }, null);
if (_GetPropertyRect == null)
{
EditorGUILayout.HelpBox("Oh no, looks like an API change for MaterialEditor.GetPropertyRect – please report a bug! Thanks!", MessageType.Error);
}
}
if (_GetPropertyRect == null)
{
materialEditor.TexturePropertyWithTooltip(textureProperty, displayContent, true);
}
else
{
var rect = (Rect) _GetPropertyRect.Invoke(materialEditor, new object[] { textureProperty, displayContent.text, true });
materialEditor.TextureProperty(rect, textureProperty, displayContent.text, displayContent.tooltip, true);
}
}
else
{
materialEditor.TexturePropertySingleLine(displayContent, textureProperty, extraProperty);
}
// workaround for Unity being weird
#if UNITY_6000_2_OR_NEWER
if(extraProperty != null && extraProperty.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture)
#else
if(extraProperty != null && extraProperty.type == MaterialProperty.PropType.Texture)
#endif
{
EditorGUILayout.Space(45);
}
}
public override IEnumerable<MaterialProperty> GetReferencedProperties(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
var textureProperty = parameters.Get(0, properties);
var extraProperty = parameters.Get(1, properties);
return new[] { textureProperty, extraProperty };
}
}
}
================================================
FILE: package/Editor/Drawers/InlineTextureDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: 75a75a904b795ef4594207826494755b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/MarkdownMaterialPropertyDrawer.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public abstract class MarkdownMaterialPropertyDrawer : ScriptableObject
{
public readonly struct DrawerParameters
{
public override string ToString()
{
return string.Join(",", parts);
}
private readonly string tooltip;
private readonly string[] parts;
private readonly bool showPropertyNames;
// TODO needs handling of conditions
public DrawerParameters(string[] parts)
{
this.parts = parts;
this.tooltip = null;
this.showPropertyNames = false;
}
public DrawerParameters(string[] parts, string tooltip) : this(parts)
{
this.tooltip = tooltip;
}
public DrawerParameters(string[] parts, string tooltip, bool showPropertyNames) : this(parts, tooltip)
{
this.showPropertyNames = showPropertyNames;
}
public int Count => parts.Length - 2;
public string Tooltip => tooltip;
public bool ShowPropertyNames => showPropertyNames;
public string Get(int i, string defaultValue)
{
// first 2 parts are "!DRAWER" and the drawer object name
if (parts.Length > 2 + i)
return parts[2 + i];
return defaultValue;
}
public MaterialProperty Get(int i, MaterialProperty[] properties)
{
if (parts.Length < 2 + i + 1)
return null;
var propertyName = parts[2 + i];
var property = properties.FirstOrDefault(x => x.name.Equals(propertyName, StringComparison.Ordinal));
return property;
}
}
/// Renders a custom drawer. Parts 0 and 1 of the parts array are "!DRAWER" and the drawer name,
/// the others are optional parameters passed to the drawer.
public abstract void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters);
public virtual void OnInlineDrawerGUI(Rect rect, MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
OnDrawerGUI(materialEditor, properties, parameters);
}
public virtual bool SupportsInlineDrawing => false;
public virtual IEnumerable<MaterialProperty> GetReferencedProperties(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
return null;
}
public override string ToString()
{
return this.GetType().ToString();
}
}
}
================================================
FILE: package/Editor/Drawers/MarkdownMaterialPropertyDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: 933f374647815984aab9358ae68885aa
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/MinMaxDrawer.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public class MinMaxDrawer : MarkdownMaterialPropertyDrawer
{
#if UNITY_6000_2_OR_NEWER
float GetValue(MaterialProperty property, char swizzle)
{
switch (property.propertyType)
{
case UnityEngine.Rendering.ShaderPropertyType.Float:
case UnityEngine.Rendering.ShaderPropertyType.Range:
return property.floatValue;
case UnityEngine.Rendering.ShaderPropertyType.Vector:
return GetValue(property.vectorValue, swizzle);
default:
return 0;
}
}
void SetValue(MaterialProperty property, char swizzle, float value)
{
switch (property.propertyType)
{
case UnityEngine.Rendering.ShaderPropertyType.Float:
case UnityEngine.Rendering.ShaderPropertyType.Range:
property.floatValue = value;
break;
case UnityEngine.Rendering.ShaderPropertyType.Vector:
var val = property.vectorValue;
SetValue(ref val, swizzle, value);
property.vectorValue = val;
break;
default:
return;
}
}
#else
float GetValue(MaterialProperty property, char swizzle)
{
switch (property.type)
{
case MaterialProperty.PropType.Float:
case MaterialProperty.PropType.Range:
return property.floatValue;
case MaterialProperty.PropType.Vector:
return GetValue(property.vectorValue, swizzle);
default:
return 0;
}
}
void SetValue(MaterialProperty property, char swizzle, float value)
{
switch (property.type)
{
case MaterialProperty.PropType.Float:
case MaterialProperty.PropType.Range:
property.floatValue = value;
break;
case MaterialProperty.PropType.Vector:
var val = property.vectorValue;
SetValue(ref val, swizzle, value);
property.vectorValue = val;
break;
default:
return;
}
}
#endif
float GetValue(Vector4 vector, char swizzle)
{
switch (swizzle)
{
case 'x': case 'r': return vector.x;
case 'y': case 'g': return vector.y;
case 'z': case 'b': return vector.z;
case 'w': case 'a': return vector.w;
default: return 0;
}
}
void SetValue(ref Vector4 vector, char swizzle, float value)
{
switch (swizzle)
{
case 'x': case 'r': vector.x = value; return;
case 'y': case 'g': vector.y = value; return;
case 'z': case 'b': vector.z = value; return;
case 'w': case 'a': vector.w = value; return;
default: return;
}
}
void GetPropertyNameAndSwizzle(string parameterName, out string propertyName, out char swizzle)
{
var indexOfDot = parameterName.LastIndexOf('.');
if (indexOfDot > 0 && indexOfDot == parameterName.Length - 2)
{
swizzle = parameterName[parameterName.Length - 1];
propertyName = parameterName.Substring(0, parameterName.Length - 2);
}
else
{
swizzle = ' ';
propertyName = parameterName;
}
}
private bool isInline = false;
private Rect inlineRect;
public override void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
// check if these are vectors, and get the "base property"
var parameterName1 = parameters.Get(0, (string) null);
var parameterName2 = parameters.Get(1, (string) null);
var displayName = parameters.Get(2, (string) null);
if (parameterName2 != null && parameterName2.StartsWith("[", StringComparison.Ordinal))
parameterName2 = null;
if (displayName != null && displayName.StartsWith("[", StringComparison.Ordinal))
displayName = null;
// allow third parameter to be used for display name override
// use second parameter if it's not referencing a property
if (parameterName2 != null && displayName == null)
{
GetPropertyNameAndSwizzle(parameterName2, out var prop, out var sw);
var p2 = properties.FirstOrDefault(x => x.name.Equals(prop, StringComparison.Ordinal));
if (p2 == null)
{
displayName = parameterName2;
parameterName2 = null;
}
}
if (parameterName2 == null)
{
// parameter 1 must be a vector, no swizzles
// we're using zw as limits
var vectorProp = properties.FirstOrDefault(x => x.name.Equals(parameterName1, StringComparison.Ordinal));
#if UNITY_6000_2_OR_NEWER
if (vectorProp == null || vectorProp.propertyType != UnityEngine.Rendering.ShaderPropertyType.Vector)
#else
if (vectorProp == null || vectorProp.type != MaterialProperty.PropType.Vector)
#endif
{
if(!isInline)
EditorGUILayout.HelpBox(nameof(MinMaxDrawer) + ": Parameter is not a Vector property (" + parameterName1 + ")", MessageType.Error);
return;
}
EditorGUI.showMixedValue = vectorProp.hasMixedValue;
var vec = vectorProp.vectorValue;
EditorGUI.BeginChangeCheck();
if (displayName == null)
displayName = vectorProp.displayName;
if(isInline)
EditorGUI.MinMaxSlider(inlineRect, ref vec.x, ref vec.y, vec.z, vec.w);
else
EditorGUILayout.MinMaxSlider(new GUIContent(parameters.ShowPropertyNames ? vectorProp.name + ".xy (z-w)" : displayName, parameters.Tooltip), ref vec.x, ref vec.y, vec.z, vec.w);
if (EditorGUI.EndChangeCheck())
{
vectorProp.vectorValue = vec;
}
EditorGUI.showMixedValue = false;
return;
}
if (parameterName1 == null || parameterName2 == null) {
if(!isInline)
EditorGUILayout.HelpBox(nameof(MinMaxDrawer) + ": Parameter names are incorrect (" + parameterName1 + ", " + parameterName2 + "), all: " + string.Join(",", parameters), MessageType.Error);
return;
}
GetPropertyNameAndSwizzle(parameterName1, out var propertyName1, out var swizzle1);
GetPropertyNameAndSwizzle(parameterName2, out var propertyName2, out var swizzle2);
var param1 = properties.FirstOrDefault(x => x.name.Equals(propertyName1, StringComparison.Ordinal));
var param2 = properties.FirstOrDefault(x => x.name.Equals(propertyName2, StringComparison.Ordinal));
if (param1 == null || param2 == null) {
if(!isInline)
EditorGUILayout.HelpBox(nameof(MinMaxDrawer) + ": Parameter names are incorrect (" + propertyName1 + ", " + propertyName2 + "), all: " + string.Join(",", parameters), MessageType.Error);
return;
}
float value1 = GetValue(param1, swizzle1);
float value2 = GetValue(param2, swizzle2);
if (displayName == null)
displayName = param1 == param2 ? param1.displayName : param1.displayName + "-" + param2.displayName;
EditorGUI.BeginChangeCheck();
if(isInline)
EditorGUI.MinMaxSlider(inlineRect, ref value1, ref value2, 0.0f, 1.0f);
else
EditorGUILayout.MinMaxSlider(new GUIContent(parameters.ShowPropertyNames
? (param1 == param2
? param1.name + "." + swizzle1 + swizzle2
: param1.name + "." + swizzle1 + "-" + param2.name + "." + swizzle2)
: displayName, parameters.Tooltip), ref value1, ref value2, 0.0f, 1.0f);
if (EditorGUI.EndChangeCheck())
{
SetValue(param1, swizzle1, value1);
SetValue(param2, swizzle2, value2);
}
}
public override bool SupportsInlineDrawing => true;
public override void OnInlineDrawerGUI(Rect rect, MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
isInline = true;
inlineRect = rect;
OnDrawerGUI(materialEditor, properties, parameters);
isInline = false;
}
public override IEnumerable<MaterialProperty> GetReferencedProperties(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
var parameterName1 = parameters.Get(0, (string) null);
var parameterName2 = parameters.Get(1, (string) null);
if (parameterName2 != null && parameterName2.StartsWith("[", StringComparison.Ordinal))
parameterName2 = null;
if (parameterName1 != null && parameterName2 == null)
{
var vectorProp = properties.FirstOrDefault(x => x.name.Equals(parameterName1, StringComparison.Ordinal));
#if UNITY_6000_2_OR_NEWER
if (vectorProp == null || vectorProp.propertyType != UnityEngine.Rendering.ShaderPropertyType.Vector)
#else
if (vectorProp == null || vectorProp.type != MaterialProperty.PropType.Vector)
#endif
return null;
return new [] { vectorProp };
}
if (parameterName1 == null)
return null;
GetPropertyNameAndSwizzle(parameterName1, out var propertyName1, out _);
GetPropertyNameAndSwizzle(parameterName2, out var propertyName2, out _);
var param1 = properties.FirstOrDefault(x => x.name.Equals(propertyName1, StringComparison.Ordinal));
var param2 = properties.FirstOrDefault(x => x.name.Equals(propertyName2, StringComparison.Ordinal));
if (param1 != null && param2 != null)
return new[] { param1, param2 };
if (param1 != null)
return new[] { param1 };
if (param2 != null)
return new[] { param2 };
return null;
}
}
}
================================================
FILE: package/Editor/Drawers/MinMaxDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: f014211d17b98a7429b185cd4fc08d94
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/MultiPropertyDrawer.cs
================================================
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public class MultiPropertyDrawer : MarkdownMaterialPropertyDrawer
{
public override void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
var controlRect = EditorGUILayout.GetControlRect(false, 18f);
controlRect.xMin += EditorGUI.indentLevel * 15f;
var previousIndent = EditorGUI.indentLevel;
EditorGUI.indentLevel = 0;
OnInlineDrawerGUI(controlRect, materialEditor, properties, parameters);
EditorGUI.indentLevel = previousIndent;
}
public override IEnumerable<MaterialProperty> GetReferencedProperties(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
for (int i = 0; i < parameters.Count; i++)
{
yield return parameters.Get(i, properties);
}
}
public override bool SupportsInlineDrawing => true;
public override void OnInlineDrawerGUI(Rect rect, MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
// GUI.DrawTexture(rect, Texture2D.whiteTexture);
var entryCount = parameters.Count;
var partRect = rect;
partRect.width = partRect.width / entryCount - 5;
var previousWidth = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = partRect.width / 3;
for(int i = 0; i < parameters.Count; i++)
{
var param = parameters.Get(i, properties);
if (param == null)
{
throw new System.ArgumentException("Parameter " + i + " is invalid: " + parameters.Get(i, ""));
}
#if UNITY_6000_2_OR_NEWER
if (param.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture)
#else
if (param.type == MaterialProperty.PropType.Texture)
#endif
{
var miniTexRect = partRect;
miniTexRect.width += 100;
var prevWidth2 = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = partRect.width;
materialEditor.TexturePropertyMiniThumbnail(miniTexRect, param, parameters.ShowPropertyNames ? param.name : param.displayName, null);
EditorGUIUtility.labelWidth = prevWidth2;
}
else
{
materialEditor.ShaderProperty(partRect, param, parameters.ShowPropertyNames ? param.name : param.displayName);
}
partRect.x += partRect.width + 5;
}
EditorGUIUtility.labelWidth = previousWidth;
}
}
}
================================================
FILE: package/Editor/Drawers/MultiPropertyDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: 66870b09573a3704f9601c94967f7865
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers/VectorSliderDrawer.cs
================================================
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public class VectorSliderDrawer : MarkdownMaterialPropertyDrawer
{
public float minValue = 0, maxValue = 1;
static string[] defaultParts = new[] {"X", "Y", "Z", "W"};
public override void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
if (parameters.Count < 1)
throw new System.ArgumentException("No parameters to " + nameof(VectorSliderDrawer) + ". Please provide a vector property name or one or more float property names.");
var vectorProperty = parameters.Get(0, properties);
if (vectorProperty == null)
throw new System.ArgumentNullException("No property named " + parameters.Get(0, ""));
#if UNITY_6000_2_OR_NEWER
switch (vectorProperty.propertyType)
#else
switch (vectorProperty.type)
#endif
{
#if UNITY_6000_2_OR_NEWER
case UnityEngine.Rendering.ShaderPropertyType.Vector:
#else
case MaterialProperty.PropType.Vector:
#endif
OnDrawerGUI(materialEditor, vectorProperty, new GUIContent(parameters.ShowPropertyNames ? vectorProperty.name : vectorProperty.displayName, parameters.Tooltip));
break;
#if UNITY_6000_2_OR_NEWER
case UnityEngine.Rendering.ShaderPropertyType.Float:
case UnityEngine.Rendering.ShaderPropertyType.Range:
#else
case MaterialProperty.PropType.Float:
case MaterialProperty.PropType.Range:
#endif
EditorGUILayout.LabelField("Vector Group");
EditorGUI.indentLevel++;
for (int i = 0; i < parameters.Count; i++)
{
var param = parameters.Get(i, properties);
if (param == null) {
EditorGUILayout.HelpBox("Parameter " + parameters.Get(i, (string)null) + " does not exist.", MessageType.Error);
continue;
}
materialEditor.ShaderProperty(param, parameters.ShowPropertyNames ? param.name : param.displayName);
}
EditorGUI.indentLevel--;
break;
default:
throw new System.ArgumentException("Property " + vectorProperty + " isn't a vector or float property, can't draw sliders for it.");
}
}
public void OnDrawerGUI(MaterialEditor materialEditor, MaterialProperty vectorProperty, GUIContent display)
{
if (vectorProperty.name.StartsWith("_Tile", System.StringComparison.Ordinal) || vectorProperty.name.StartsWith("_Tiling", System.StringComparison.Ordinal) || vectorProperty.name.EndsWith("_ST", System.StringComparison.Ordinal))
{
var rect = EditorGUILayout.GetControlRect(true, 18 * 2);
materialEditor.BeginAnimatedCheck(rect, vectorProperty);
EditorGUI.BeginChangeCheck();
var newVector = MaterialEditor.TextureScaleOffsetProperty(rect, vectorProperty.vectorValue);
if (EditorGUI.EndChangeCheck())
vectorProperty.vectorValue = newVector;
materialEditor.EndAnimatedCheck();
EditorGUILayout.Space(1);
return;
}
var firstParen = display.text.IndexOf('(');
var lastParen = display.text.LastIndexOf(')');
string[] parts;
if (firstParen >= 0 && lastParen >= 0 && lastParen > firstParen)
{
var betweenParens = display.text.Substring(firstParen + 1, lastParen - firstParen - 1);
parts = betweenParens.Split(new []{',', ';'}, System.StringSplitOptions.RemoveEmptyEntries);
display.text = display.text.Substring(0, firstParen).Trim();
}
else
{
parts = defaultParts;
}
EditorGUILayout.LabelField(display);
EditorGUI.indentLevel++;
materialEditor.BeginAnimatedCheck(vectorProperty);
// we need to do our own OverridePropertyColor check as this seems to be broken for Vector4 properties in Unity.
if (OverridePropertyColor(materialEditor, "material." + vectorProperty.name + ".x", out var bgColor))
GUI.backgroundColor = bgColor;
EditorGUI.BeginChangeCheck();
var value = vectorProperty.vectorValue;
for (int i = 0; i < Mathf.Min(parts.Length, 4); i++)
{
materialEditor.BeginAnimatedCheck(vectorProperty);
var rect = EditorGUILayout.GetControlRect(true, 18f);
value[i] = EditorGUI.Slider(rect, parts[i].Trim(), value[i], minValue, maxValue);
materialEditor.EndAnimatedCheck();
}
if (EditorGUI.EndChangeCheck())
vectorProperty.vectorValue = value;
materialEditor.EndAnimatedCheck();
EditorGUI.indentLevel--;
}
// ReSharper disable InconsistentNaming
private static MethodInfo InAnimationRecording, IsPropertyCandidate;
// ReSharper restore InconsistentNaming
private static PropertyInfo rendererForAnimationMode;
// This is incredibly ugly, but seems Vector4 animation colors are broken in Unity,
// this gets them to work for our custom editor here.
bool OverridePropertyColor(MaterialEditor editor, string path, out Color color)
{
if (rendererForAnimationMode == null) rendererForAnimationMode = typeof(MaterialEditor).GetProperty("rendererForAnimationMode", (BindingFlags) (-1));
if (InAnimationRecording == null) InAnimationRecording = typeof(AnimationMode).GetMethod("InAnimationRecording", (BindingFlags) (-1));
if (IsPropertyCandidate == null) IsPropertyCandidate = typeof(AnimationMode).GetMethod("IsPropertyCandidate", (BindingFlags) (-1));
if (rendererForAnimationMode == null || InAnimationRecording == null || IsPropertyCandidate == null)
{
color = Color.white;
return false;
}
var target = (Object) rendererForAnimationMode.GetValue(editor);
if (AnimationMode.IsPropertyAnimated(target, path))
{
color = AnimationMode.animatedPropertyColor;
if ((bool) InAnimationRecording.Invoke(null, null))
color = AnimationMode.recordedPropertyColor;
else if ((bool) IsPropertyCandidate.Invoke(null, new object[]{ target, path }))
color = AnimationMode.candidatePropertyColor;
return true;
}
color = Color.white;
return false;
}
public override IEnumerable<MaterialProperty> GetReferencedProperties(MaterialEditor materialEditor, MaterialProperty[] properties, DrawerParameters parameters)
{
var vectorProperty = parameters.Get(0, properties);
if (vectorProperty == null) return null;
#if UNITY_6000_2_OR_NEWER
switch (vectorProperty.propertyType)
#else
switch (vectorProperty.type)
#endif
{
#if UNITY_6000_2_OR_NEWER
case UnityEngine.Rendering.ShaderPropertyType.Vector:
#else
case MaterialProperty.PropType.Vector:
#endif
return new[] { vectorProperty };
#if UNITY_6000_2_OR_NEWER
case UnityEngine.Rendering.ShaderPropertyType.Float:
case UnityEngine.Rendering.ShaderPropertyType.Range:
#else
case MaterialProperty.PropType.Float:
case MaterialProperty.PropType.Range:
#endif
var parameterList = new List<MaterialProperty>();
for (int i = 0; i < parameters.Count; i++)
{
var param = parameters.Get(i, properties);
if (param != null)
parameterList.Add(param);
}
return parameterList;
default:
return null;
}
}
}
}
================================================
FILE: package/Editor/Drawers/VectorSliderDrawer.cs.meta
================================================
fileFormatVersion: 2
guid: 759779a26ce11b74bb58bd6adea31d07
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Drawers.meta
================================================
fileFormatVersion: 2
guid: 03d050738f62cc243826b116f6493d1c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Extensions/LogicExpressionParser.cs
================================================
#region License and Information
/*****
* LogicExpressionParser.cs
*
* This is basically a rewrite and improvement of the ExpressionParser i wrote
* in 2014 (http://wiki.unity3d.com/index.php/ExpressionParser). It's main goal
* is to allow to parse logic expressions which evaluate to true or false.
*
* "Parse" - returns a LogicExpression instance. This should be used when
* the expression should evaluate to a boolean expression.
* "ParseNumber" - returns a NumberExpression instance. This should be used
* when the expression should evaluate to a numeric value.
*
* Multiple expression objects can share one ExpressionContext which is
* responsible for resolving variables and constants.
*
*
* [History]
* 2016.11.24 - project start
* 2017.08.20 - first release version.
*
* [License]
* Copyright (c) 2017 Markus Göbel (Bunny83)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*
*****/
#endregion License and Information
using System;
using System.Collections.Generic;
namespace Needle.ShaderGraphMarkdown.LogicExpressionParser
{
public interface ILogicResult
{
bool GetResult();
}
public interface INumberProvider
{
double GetNumber();
}
public interface ICommandParser
{
bool Parse(Parser aParser, string aCommand, out ValueProvider aResult);
}
#region logic gates
public class CombineAnd : ILogicResult
{
public List<ILogicResult> inputs = new List<ILogicResult>();
public bool GetResult()
{
for (int i = 0; i < inputs.Count; i++)
if (!inputs[i].GetResult())
return false;
return true;
}
}
public class CombineOr : ILogicResult
{
public List<ILogicResult> inputs = new List<ILogicResult>();
public bool GetResult()
{
for (int i = 0; i < inputs.Count; i++)
if (inputs[i].GetResult())
return true;
return false;
}
}
public class CombineXor : ILogicResult
{
public List<ILogicResult> inputs = new List<ILogicResult>();
public bool GetResult()
{
bool res = false;
for (int i = 0; i < inputs.Count; i++)
res ^= inputs[i].GetResult();
return res;
}
}
public class CombineNot : ILogicResult
{
public ILogicResult input;
public bool GetResult() { return !input.GetResult(); }
}
#endregion logic gates
#region Arithmetic gates
public class OperationAdd : INumberProvider
{
public List<INumberProvider> inputs = new List<INumberProvider>();
public double GetNumber()
{
double res = 0d;
for(int i = 0; i < inputs.Count; i++)
res += inputs[i].GetNumber();
return res;
}
public OperationAdd(params INumberProvider[] aInputs)
{
for(int i = 0;i < aInputs.Length; i++)
{
var add = aInputs[i] as OperationAdd;
if (add != null)
inputs.AddRange(add.inputs);
else
inputs.Add(aInputs[i]);
}
}
}
public class OperationNegate : INumberProvider
{
public INumberProvider input;
public double GetNumber()
{
return -input.GetNumber();
}
public OperationNegate(INumberProvider aInput)
{
input = aInput;
}
}
public class OperationProduct : INumberProvider
{
public List<INumberProvider> inputs = new List<INumberProvider>();
public double GetNumber()
{
double res = 1d;
for (int i = 0; i < inputs.Count; i++)
res *= inputs[i].GetNumber();
return res;
}
public OperationProduct(params INumberProvider[] aInputs)
{
for (int i = 0; i < aInputs.Length; i++)
{
var add = aInputs[i] as OperationProduct;
if (add != null)
inputs.AddRange(add.inputs);
else
inputs.Add(aInputs[i]);
}
}
}
public class OperationReciprocal : INumberProvider
{
public INumberProvider input;
public double GetNumber()
{
return 1d / input.GetNumber();
}
public OperationReciprocal(INumberProvider aInput)
{
input = aInput;
}
}
public class OperationPower : INumberProvider
{
public INumberProvider value;
public INumberProvider power;
public double GetNumber()
{
return Math.Pow(value.GetNumber(), power.GetNumber());
}
public OperationPower(INumberProvider aValue, INumberProvider aPower)
{
value = aValue;
power = aPower;
}
}
public class CustomFunction : INumberProvider
{
private Func<ParameterList, double> m_Func;
private ParameterList m_Params;
public CustomFunction(Func<ParameterList, double> aFunc, ParameterList aParams)
{
m_Func = aFunc;
m_Params = aParams;
}
public double GetNumber()
{
return m_Func(m_Params);
}
}
#endregion Arithmetic gates
#region compare gates
public abstract class CompareStatement : ILogicResult
{
public bool GetResult() { return Compare(op1.GetNumber(), op2.GetNumber()); }
public INumberProvider op1;
public INumberProvider op2;
protected abstract bool Compare(double aOp1, double aOp2);
}
public class CompareEqual : CompareStatement
{
protected override bool Compare(double aOp1, double aOp2) { return aOp1 == aOp2; }
}
public class CompareNotEqual : CompareStatement
{
protected override bool Compare(double aOp1, double aOp2) { return aOp1 != aOp2; }
}
public class CompareGreater : CompareStatement
{
protected override bool Compare(double aOp1, double aOp2) { return aOp1 > aOp2; }
}
public class CompareGreaterOrEqual : CompareStatement
{
protected override bool Compare(double aOp1, double aOp2) { return aOp1 >= aOp2; }
}
public class CompareLower : CompareStatement
{
protected override bool Compare(double aOp1, double aOp2) { return aOp1 < aOp2; }
}
public class CompareLowerOrEqual : CompareStatement
{
protected override bool Compare(double aOp1, double aOp2) { return aOp1 <= aOp2; }
}
#endregion compare gates
#region value providers
public class ConstantNumber : INumberProvider
{
public double constantValue;
public double GetNumber() { return constantValue; }
}
public class ConstantBool : ILogicResult
{
public bool constantValue;
public bool GetResult() { return constantValue; }
}
public class DelegateNumber : INumberProvider
{
public System.Func<double> callback;
public double GetNumber() { return callback(); }
}
public class DelegateBool : ILogicResult
{
public Func<bool> callback;
public bool GetResult() { return callback(); }
}
public class NumberToBool : ILogicResult
{
public INumberProvider val;
public bool GetResult() { return val.GetNumber() > 0; }
}
public class BoolToNumber : INumberProvider
{
public ILogicResult val;
public double GetNumber() { return val.GetResult() ? 1d : 0d; }
}
public class ValueProvider : INumberProvider, ILogicResult
{
protected ILogicResult m_BoolVal = null;
protected INumberProvider m_NumberVal = null;
public virtual double GetNumber()
{
if (m_NumberVal != null)
return m_NumberVal.GetNumber();
if (m_BoolVal != null)
return m_BoolVal.GetResult() ? 1 : 0;
return 0d;
}
public virtual bool GetResult()
{
if (m_BoolVal != null)
return m_BoolVal.GetResult();
if (m_NumberVal != null)
return m_NumberVal.GetNumber() > 0d;
return false;
}
public virtual void Set(bool aValue)
{
var tmp = m_BoolVal as ConstantBool;
if (tmp == null)
tmp = new ConstantBool();
tmp.constantValue = aValue;
m_BoolVal = tmp;
m_NumberVal = null;
}
public virtual void Set(double aValue)
{
var tmp = m_NumberVal as ConstantNumber;
if (tmp == null)
tmp = new ConstantNumber();
tmp.constantValue = aValue;
m_NumberVal = tmp;
m_BoolVal = null;
}
public virtual void Set(Func<bool> aValue)
{
var tmp = m_BoolVal as DelegateBool;
if (tmp == null)
tmp = new DelegateBool();
tmp.callback = aValue;
m_BoolVal = tmp;
m_NumberVal = null;
}
public virtual void Set(Func<double> aValue)
{
var tmp = m_NumberVal as DelegateNumber;
if (tmp == null)
tmp = new DelegateNumber();
tmp.callback = aValue;
m_NumberVal = tmp;
m_BoolVal = null;
}
}
public class ExpressionVariable : ValueProvider
{
public string Name { get; private set; }
public ExpressionVariable(string aName)
{
Name = aName;
}
}
public class ParameterList : INumberProvider
{
public List<INumberProvider> inputs = new List<INumberProvider>();
public ParameterList() { }
public ParameterList(INumberProvider aNumber)
{
inputs.Add(aNumber);
}
public double GetNumber()
{
if (inputs.Count > 0)
return inputs[0].GetNumber();
return 0d;
}
public double this[int aIndex]
{
get
{
if (aIndex < 0 || aIndex >= inputs.Count)
return 0d;
return inputs[aIndex].GetNumber();
}
}
public bool Exists(int aIndex)
{
return aIndex < inputs.Count && aIndex >= 0;
}
}
public class LogicExpression : ILogicResult
{
public bool GetResult() { return expressionTree.GetResult(); }
public ExpressionContext Context { get { return context; } }
protected ILogicResult expressionTree;
protected ExpressionContext context;
public ExpressionVariable this[string aVarName]
{
get
{
return context[aVarName];
}
}
public LogicExpression(ILogicResult aExpressionTree, ExpressionContext aContext)
{
expressionTree = aExpressionTree;
context = aContext;
}
}
public class NumberExpression : INumberProvider
{
public double GetNumber() { return expressionTree.GetNumber(); }
public ExpressionContext Context { get { return context; } }
protected INumberProvider expressionTree;
protected ExpressionContext context;
public ExpressionVariable this[string aVarName]
{
get
{
return context[aVarName];
}
}
public NumberExpression(INumberProvider aExpressionTree, ExpressionContext aContext)
{
expressionTree = aExpressionTree;
context = aContext;
}
}
#endregion value providers
#region Expression & Parsing Context
public class ExpressionContext
{
public Dictionary<string, ExpressionVariable> Variables => variables;
protected Dictionary<string, ExpressionVariable> variables = new Dictionary<string, ExpressionVariable>();
public ExpressionContext() : this(true) { }
public ExpressionContext(bool aAddDefaultConstants)
{
if (aAddDefaultConstants)
AddMathConstants();
}
public void AddMathConstants()
{
this["e"].Set(Math.E);
this["pi"].Set(Math.PI);
this["r2d"].Set(180d / Math.PI);
this["d2r"].Set(Math.PI / 180d);
}
public virtual ExpressionVariable FindVariable(string aVarName)
{
ExpressionVariable res;
if (variables.TryGetValue(aVarName, out res))
{
return res;
}
return null;
}
public virtual ExpressionVariable GetVariable(string aVarName)
{
ExpressionVariable res;
if (!variables.TryGetValue(aVarName, out res))
{
res = new ExpressionVariable(aVarName);
variables.Add(res.Name, res);
}
return res;
}
public virtual ExpressionVariable this[string aVarName]
{
get
{
return GetVariable(aVarName);
}
}
}
public class ParsingContext
{
private List<string> m_BracketHeap = new List<string>();
private List<ValueProvider> m_Commands = new List<ValueProvider>();
private List<ICommandParser> m_CommandParser = new List<ICommandParser>();
private Dictionary<string, Func<ParameterList, double>> m_Functions = new Dictionary<string, Func<ParameterList, double>>();
public ParsingContext() : this(true) { }
public ParsingContext(bool aAddMathMethods)
{
if (aAddMathMethods)
AddMathFunctions();
}
public void AddMathFunctions()
{
var rnd = new System.Random();
AddFunction("sin", (p) => Math.Sin(p[0]));
AddFunction("cos", (p) => Math.Cos(p[0]));
AddFunction("tan", (p) => Math.Tan(p[0]));
AddFunction("asin", (p) => Math.Asin(p[0]));
AddFunction("acos", (p) => Math.Acos(p[0]));
AddFunction("atan", (p) => Math.Atan(p[0]));
AddFunction("atan2", (p) => Math.Atan2(p[0], p[1]));
AddFunction("abs", (p) => Math.Abs(p[0]));
AddFunction("floor", (p) => Math.Floor(p[0]));
AddFunction("ceil", (p) => Math.Ceiling(p[0]));
AddFunction("round", (p) => Math.Round(p[0]));
AddFunction("min", (p) => Math.Min(p[0], p[1]));
AddFunction("max", (p) => Math.Max(p[0], p[1]));
AddFunction("exp", (p) => Math.Exp(p[0]));
AddFunction("ln", (p) => Math.Log(p[0]));
AddFunction("log10", (p) => Math.Log10(p[0]));
AddFunction("sqrt", (p) => Math.Sqrt(p[0]));
AddFunction("pow", (p) => Math.Pow(p[0], p[1]));
AddFunction("lerp", (p) => { var s = p[0]; return s + (p[1] - s) * p[2]; });
AddFunction("rand", (p) => {
var p0 = p[0];
if (p.Exists(1))
return p0 + rnd.NextDouble()*(p[1]-p0);
else
return rnd.NextDouble()*p[0];
});
AddFunction("clamp", (p) => {
var p0 = p[0];
var p1 = p[0];
var p2 = p[0];
return p0 < p1 ? p1 : (p0 > p2) ? p2 : p0;
});
AddFunction("clamp01", (p) => {
var p0 = p[0];
return p0 < 0d ? 0d : (p0 > 1d) ? 1d : p0;
});
}
public static int FindClosingBracket(string aText, int aStart, char aOpen, char aClose)
{
int counter = 0;
for (int i = aStart; i < aText.Length; i++)
{
if (aText[i] == aOpen)
counter++;
if (aText[i] == aClose)
counter--;
if (counter == 0)
return i;
}
return -1;
}
private void SubstitudeBracket(ref string aExpression, int aIndex)
{
int closing = FindClosingBracket(aExpression, aIndex, '(', ')');
if (closing > aIndex + 1)
{
string inner = aExpression.Substring(aIndex + 1, closing - aIndex - 1);
m_BracketHeap.Add(inner);
string sub = "$B" + (m_BracketHeap.Count - 1) + ";";
aExpression = aExpression.Substring(0, aIndex) + sub + aExpression.Substring(closing + 1);
}
else throw new ParseException("Bracket not closed!");
}
private void SubstitudeCommand(Parser aParser, ref string aExpression, int aIndex)
{
int closing = FindClosingBracket(aExpression, aIndex, '{', '}');
if (closing > aIndex + 1)
{
string inner = aExpression.Substring(aIndex + 1, closing - aIndex - 1).Trim();
string sub = "$C" + (m_Commands.Count) + ";";
m_Commands.Add(ParseCommand(aParser, inner));
aExpression = aExpression.Substring(0, aIndex) + sub + aExpression.Substring(closing + 1);
}
else throw new ParseException("Bracket not closed!");
}
protected virtual ValueProvider ParseCommand(Parser aParser, string aCommand)
{
for (int i = 0; i < m_CommandParser.Count; i++)
{
ValueProvider result;
if (m_CommandParser[i].Parse(aParser, aCommand, out result))
return result;
}
return new ValueProvider();
}
public virtual void Preprocess(Parser aParser, ref string aExpression)
{
aExpression = aExpression.Trim();
int index = aExpression.IndexOf('{');
while (index >= 0)
{
SubstitudeCommand(aParser, ref aExpression, index);
index = aExpression.IndexOf('{');
}
index = aExpression.IndexOf('(');
while (index >= 0)
{
SubstitudeBracket(ref aExpression, index);
index = aExpression.IndexOf('(');
}
}
private bool ParseToken(ref string aExpression, out char aTokenType, out int aIndex)
{
int index2a = aExpression.IndexOf('$');
int index2b = aExpression.IndexOf(';');
if (index2a >= 0 && index2b >= 3)
{
aTokenType = aExpression[index2a + 1];
var inner = aExpression.Substring(index2a + 2, index2b - index2a - 2);
if (int.TryParse(inner, out aIndex) && aIndex >= 0)
{
return true;
}
else
throw new ParseException("Can't parse bracket substitution token");
}
aTokenType = '\0';
aIndex = -1;
return false;
}
public string GetBracket(ref string aExpression)
{
char type;
int index;
if (ParseToken(ref aExpression, out type, out index) && type == 'B' && index < m_BracketHeap.Count)
return m_BracketHeap[index];
return null;
}
public ValueProvider GetCommand(ref string aExpression)
{
char type;
int index;
if (ParseToken(ref aExpression, out type, out index) && type == 'C' && index < m_Commands.Count)
return m_Commands[index];
return null;
}
public Func<ParameterList, double> GetFunction(string fName)
{
Func<ParameterList, double> f;
if (m_Functions.TryGetValue(fName, out f))
return f;
return null;
}
public void AddFunction(string aName, Func<ParameterList, double> aFunc)
{
if (m_Functions.ContainsKey(aName))
m_Functions[aName] = aFunc;
else
m_Functions.Add(aName, aFunc);
}
}
#endregion Expression & Parsing Context
public class Parser
{
private ParsingContext m_ParsingContext;
private ExpressionContext context;
public ParsingContext ParsingContext { get { return m_ParsingContext; } set { m_ParsingContext = value; } }
public ExpressionContext ExpressionContext { get { return context; } set { context = value; } }
public Parser() : this(new ParsingContext(), new ExpressionContext()) { }
public Parser(ParsingContext aParsingContext) : this(aParsingContext, new ExpressionContext()) { }
public Parser(ParsingContext aParsingContext, ExpressionContext context)
{
this.context = context;
m_ParsingContext = aParsingContext;
}
private ILogicResult ParseLogicResult(string aExpression, int aMaxRecursion)
{
--aMaxRecursion;
m_ParsingContext.Preprocess(this, ref aExpression);
aExpression = aExpression.Trim();
if (aExpression.Contains(" or "))
{
string[] parts = aExpression.Split(new string[] { " or " }, StringSplitOptions.None);
List<ILogicResult> exp = new List<ILogicResult>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseLogicResult(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new CombineOr { inputs = exp };
}
else if (aExpression.Contains("||"))
{
string[] parts = aExpression.Split(new string[] { "||" }, StringSplitOptions.None);
List<ILogicResult> exp = new List<ILogicResult>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseLogicResult(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new CombineOr { inputs = exp };
}
if (aExpression.Contains(" xor "))
{
string[] parts = aExpression.Split(new string[] { " xor " }, StringSplitOptions.None);
List<ILogicResult> exp = new List<ILogicResult>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseLogicResult(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new CombineXor { inputs = exp };
}
else if (aExpression.Contains("^"))
{
string[] parts = aExpression.Split(new string[] { "^" }, StringSplitOptions.None);
List<ILogicResult> exp = new List<ILogicResult>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseLogicResult(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new CombineXor { inputs = exp };
}
else if (aExpression.Contains(" and "))
{
string[] parts = aExpression.Split(new string[] { " and " }, StringSplitOptions.None);
List<ILogicResult> exp = new List<ILogicResult>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseLogicResult(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new CombineAnd { inputs = exp };
}
else if (aExpression.Contains("&&"))
{
string[] parts = aExpression.Split(new string[] { "&&" }, StringSplitOptions.None);
List<ILogicResult> exp = new List<ILogicResult>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseLogicResult(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new CombineAnd { inputs = exp };
}
else if (aExpression.Contains("=="))
{
string[] parts = aExpression.Split(new string[] { "==" }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length != 2)
throw new ParseException("== operator needs an expression on either side");
return new CompareEqual { op1 = ParseNumber(parts[0].Trim(), aMaxRecursion), op2 = ParseNumber(parts[1].Trim(), aMaxRecursion) };
}
else if (aExpression.Contains("!="))
{
string[] parts = aExpression.Split(new string[] { "!=" }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length != 2)
throw new ParseException("!= operator needs an expression on either side");
return new CompareNotEqual { op1 = ParseNumber(parts[0].Trim(), aMaxRecursion), op2 = ParseNumber(parts[1].Trim(), aMaxRecursion) };
}
else if (aExpression.Contains(">="))
{
string[] parts = aExpression.Split(new string[] { ">=" }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length != 2)
throw new ParseException(">= operator needs an expression on either side");
return new CompareGreaterOrEqual { op1 = ParseNumber(parts[0].Trim(), aMaxRecursion), op2 = ParseNumber(parts[1].Trim(), aMaxRecursion) };
}
else if (aExpression.Contains(">"))
{
string[] parts = aExpression.Split(new string[] { ">" }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length != 2)
throw new ParseException("> operator needs an expression on either side");
return new CompareGreater { op1 = ParseNumber(parts[0].Trim(), aMaxRecursion), op2 = ParseNumber(parts[1].Trim(), aMaxRecursion) };
}
else if (aExpression.Contains("<="))
{
string[] parts = aExpression.Split(new string[] { "<=" }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length != 2)
throw new ParseException("<= operator needs an expression on either side");
return new CompareLowerOrEqual { op1 = ParseNumber(parts[0].Trim(), aMaxRecursion), op2 = ParseNumber(parts[1].Trim(), aMaxRecursion) };
}
else if (aExpression.Contains("<"))
{
string[] parts = aExpression.Split(new string[] { "<" }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length != 2)
throw new ParseException("< operator needs an expression on either side");
return new CompareLower { op1 = ParseNumber(parts[0].Trim(), aMaxRecursion), op2 = ParseNumber(parts[1].Trim(), aMaxRecursion) };
}
else if (aExpression.StartsWith("not "))
{
return new CombineNot { input = ParseLogicResult(aExpression.Substring(4), aMaxRecursion) };
}
else if (aExpression.StartsWith("!"))
{
return new CombineNot { input = ParseLogicResult(aExpression.Substring(1), aMaxRecursion) };
}
else if (aExpression == "true")
{
return new ConstantBool { constantValue = true };
}
else if (aExpression == "false")
{
return new ConstantBool { constantValue = false };
}
string bracketContent = m_ParsingContext.GetBracket(ref aExpression);
if (!string.IsNullOrEmpty(bracketContent))
{
return ParseLogicResult(bracketContent, aMaxRecursion);
}
ValueProvider value = m_ParsingContext.GetCommand(ref aExpression);
if (value != null)
{
return value;
}
if (ValidIdentifier(aExpression))
{
return context.GetVariable(aExpression.Trim());
}
if (aMaxRecursion > 0)
return new NumberToBool { val = ParseNumber(aExpression, aMaxRecursion) };
throw new ParseException("Unexpected end / expression");
} // ParseLogicResult(string, int)
private INumberProvider ParseNumber(string aExpression, int aMaxRecursion)
{
--aMaxRecursion;
m_ParsingContext.Preprocess(this, ref aExpression);
aExpression = aExpression.Trim();
if (aExpression.Contains(","))
{
string[] parts = aExpression.Split(',');
var paramList = new ParameterList();
paramList.inputs.Capacity = parts.Length;
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
paramList.inputs.Add(ParseNumber(s, aMaxRecursion));
}
if (paramList.inputs.Count == 1)
return paramList.inputs[0];
return paramList;
}
else if (aExpression.Contains("+"))
{
string[] parts = aExpression.Split('+');
List<INumberProvider> exp = new List<INumberProvider>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(ParseNumber(s, aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new OperationAdd(exp.ToArray());
}
else if (aExpression.Contains("-"))
{
string[] parts = aExpression.Split('-');
List<INumberProvider> exp = new List<INumberProvider>(parts.Length);
if (!string.IsNullOrEmpty(parts[0].Trim()))
exp.Add(ParseNumber(parts[0], aMaxRecursion));
for (int i = 1; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(new OperationNegate(ParseNumber(s, aMaxRecursion)));
}
if (exp.Count == 1)
return exp[0];
return new OperationAdd(exp.ToArray());
}
else if (aExpression.Contains("*"))
{
string[] parts = aExpression.Split('*');
List<INumberProvider> exp = new List<INumberProvider>(parts.Length);
for (int i = 0; i < parts.Length; i++)
{
exp.Add(ParseNumber(parts[i], aMaxRecursion));
}
if (exp.Count == 1)
return exp[0];
return new OperationProduct(exp.ToArray());
}
else if (aExpression.Contains("/"))
{
string[] parts = aExpression.Split('/');
List<INumberProvider> exp = new List<INumberProvider>(parts.Length);
if (!string.IsNullOrEmpty(parts[0].Trim()))
exp.Add(ParseNumber(parts[0], aMaxRecursion));
for (int i = 1; i < parts.Length; i++)
{
string s = parts[i].Trim();
if (!string.IsNullOrEmpty(s))
exp.Add(new OperationReciprocal(ParseNumber(s, aMaxRecursion)));
}
return new OperationProduct(exp.ToArray());
}
else if (aExpression.Contains("^"))
{
int pos = aExpression.IndexOf('^');
var val = ParseNumber(aExpression.Substring(0, pos), aMaxRecursion);
var pow = ParseNumber(aExpression.Substring(pos + 1), aMaxRecursion);
return new OperationPower(val, pow);
}
int p = aExpression.IndexOf("$B", StringComparison.Ordinal);
if (p > 0)
{
string fName = aExpression.Substring(0, p).Trim();
Func<ParameterList, double> func = m_ParsingContext.GetFunction(fName);
if (func != null)
{
aExpression = aExpression.Substring(p);
string inner = m_ParsingContext.GetBracket(ref aExpression);
var param = ParseNumber(inner, aMaxRecursion);
if (param is ParameterList)
return new CustomFunction(func, (ParameterList)param);
return new CustomFunction(func, new ParameterList(param));
}
}
string bracketContent = m_ParsingContext.GetBracket(ref aExpression);
if (!string.IsNullOrEmpty(bracketContent))
{
return ParseNumber(bracketContent, aMaxRecursion);
}
ValueProvider value = m_ParsingContext.GetCommand(ref aExpression);
if (value != null)
{
return value;
}
double doubleValue;
if (double.TryParse(aExpression.Trim(), out doubleValue))
{
return new ConstantNumber { constantValue = doubleValue };
}
if (ValidIdentifier(aExpression))
{
return context.GetVariable(aExpression.Trim());
}
if (aMaxRecursion > 0)
return new BoolToNumber { val = ParseLogicResult(aExpression, aMaxRecursion) };
throw new ParseException("Unexpected end / expression");
} //ParseNumber(string, int)
public LogicExpression Parse(string aExpressionString, ExpressionContext aContext = null)
{
var old = context;
if (aContext != null)
context = aContext;
ILogicResult tree = ParseLogicResult(aExpressionString, 20);
LogicExpression res = new LogicExpression(tree, context);
if (aContext != null)
context = old;
return res;
}
public NumberExpression ParseNumber(string aExpressionString, ExpressionContext aContext = null)
{
var old = context;
if (aContext != null)
context = aContext;
INumberProvider tree = ParseNumber(aExpressionString, 20);
NumberExpression res = new NumberExpression(tree, context);
if (aContext != null)
context = old;
return res;
}
private static bool ValidIdentifier(string aExpression)
{
aExpression = aExpression.Trim();
if (string.IsNullOrEmpty(aExpression))
return false;
if (aExpression.Length < 1)
return false;
if (aExpression.Contains(" "))
return false;
//if (!"abcdefghijklmnopqrstuvwxyz_".Contains(aExpression.Substring(0, 1).ToLower()))
// return false;
// this is better for performance and garbage generation
char firstLetter = char.ToLower(aExpression[0]);
if (firstLetter != '_' && (firstLetter < 'a' || firstLetter > 'z'))
return false;
return true;
}
}
public class ParseException : Exception
{
public ParseException(string aMessage) : base(aMessage) { }
}
}
================================================
FILE: package/Editor/Extensions/LogicExpressionParser.cs.meta
================================================
fileFormatVersion: 2
guid: 71cf27b2ba1037a4f8f154d1914b490a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Extensions/ShaderRefactoringWindow.cs
================================================
#if UNITY_2020_3_OR_NEWER
#define HAVE_UITOOLKIT_HELPBOX
#endif
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.UIElements;
namespace Needle.ShaderGraphMarkdown
{
public class ShaderRefactoringWindow : EditorWindow
{
public ShaderRefactoringData data;
[MenuItem("Window/Needle/Refactor Shader Properties")]
private static void ShowWindow()
{
Show("", "");
}
private static Texture2D iconHelp;
private void ShowButton(Rect rect)
{
if(!iconHelp) iconHelp = EditorGUIUtility.IconContent("icons/_help" + (EditorGUIUtility.pixelsPerPoint > 1.0 ? "@2x" : "") + ".png").image as Texture2D;
if (GUI.Button(rect, new GUIContent(iconHelp), "IconButton"))
EditorUtility.OpenWithDefaultApp(MarkdownShaderGUI.PropertyRefactorDocumentationUrl);
}
[MenuItem("CONTEXT/Material/Refactor Shader Properties", false, 701)]
[MenuItem("CONTEXT/Shader/Refactor Shader Properties", false, 701)]
private static void ShowFromContextMenu(MenuCommand command)
{
// TODO can we figure out which material property is currently selected?
// Debug.Log("Keyboard Control: " + GUIUtility.keyboardControl);
// TODO can we add a context menu to each property?
if(command.context is Material mat0)
Show(AssetDatabase.GetAssetPath(mat0.shader), "");
if(command.context is Shader shader0)
Show(AssetDatabase.GetAssetPath(shader0), "");
if (Selection.activeObject is Material material1)
Show(AssetDatabase.GetAssetPath(material1.shader), "");
if (Selection.activeObject is Shader shader1)
Show(AssetDatabase.GetAssetPath(shader1), "");
}
public static void Show(string shaderAssetPath, string inputReferenceName)
{
var wnd = GetWindow<ShaderRefactoringWindow>();
wnd.data = new ShaderRefactoringData()
{
shaderPath = shaderAssetPath,
shader = AssetDatabase.LoadAssetAtPath<Shader>(shaderAssetPath),
refactoringData = new List<ShaderPropertyRefactoringData>()
{
new ShaderPropertyRefactoringData()
{
sourceReferenceName = inputReferenceName,
targetReferenceName = inputReferenceName
}
},
};
wnd.minSize = new Vector2(800, 200);
wnd.Show();
}
private static List<T> GetAllAssets<T>() where T:UnityEngine.Object
{
return AssetDatabase
.FindAssets("t:" + typeof(T).Name)
.Select(AssetDatabase.GUIDToAssetPath)
.SelectMany(AssetDatabase.LoadAllAssetsAtPath)
.Where(x => x && x.GetType() == typeof(T))
.Select(x => (T) x)
.ToList();
}
class StringPropertyFieldWithDropdown : VisualElement
{
public StringPropertyFieldWithDropdown(ShaderRefactoringWindow window, SerializedObject so, SerializedProperty prop, string label, Action dropdownEvent, Action changeEvent)
{
style.flexDirection = FlexDirection.Row;
var refactorFrom = new PropertyField(prop, label) { style = { flexGrow = 1 } };
#if UNITY_2020_2_OR_NEWER
refactorFrom.RegisterValueChangeCallback(evt => changeEvent?.Invoke());
#else
refactorFrom.RegisterCallback<ChangeEvent<UnityEngine.Object>>(evt => changeEvent?.Invoke());
#endif
refactorFrom.Bind(so);
Add(refactorFrom);
var btn = new Button(dropdownEvent) { tooltip = "Select Property", style = { paddingLeft = 1, paddingRight = 1 } };
var btnContent = new VisualElement();
btnContent.AddToClassList("unity-base-popup-field__arrow");
btn.Add(btnContent);
Add(btn);
}
}
private VisualElement popupFieldContainer;
private SerializedObject so;
private static readonly List<(string referenceName, string displayName)> commonNamePairs = new List<(string, string)>()
{
("BiRP/_MainTex", "Albedo"),
("BiRP/_BumpMap", "Normal Map"),
("BiRP/_Color", "Color"),
("URP/_BaseMap", "Albedo"),
("URP/_BumpMap", "Normal Map"),
("URP/_BaseColor", "Color"),
("HDRP/_BaseColorMap", "Albedo"),
("HDRP/_BumpMap", "Normal Map"),
("HDRP/_BaseColor", "Color"),
("_Smoothness", "Smoothness"),
("_Metallic", "Metallic"),
("_Cutoff", "Alpha Cutoff"),
};
private void AddPropertyItem()
{
}
private void CreateGUI()
{
titleContent = new GUIContent("Refactor Shader Properties");
var splitter = new VisualElement() { style = { flexDirection = FlexDirection.Row } };
var left = new VisualElement() { style = { width = Length.Percent(50), marginRight = 20 } };
var right = new VisualElement() { style = { width = Length.Percent(50), marginLeft = 20 } };
var rightActionsContainer = new VisualElement();
var leftActionsContainer = new VisualElement();
if (so == null || so.targetObject != this)
so = new SerializedObject(this);
so.Update();
var prop = so.FindProperty(nameof(data));
var propField = new PropertyField(prop.FindPropertyRelative(nameof(ShaderRefactoringData.shader)));
// #if UNITY_2020_2_OR_NEWER
// propField.RegisterValueChangeCallback(evt => UpdatePopupField());
// #else
// propField.RegisterCallback<ChangeEvent<UnityEngine.Object>>(evt => UpdatePopupField());
// #endif
propField.Bind(so);
var splitter2 = new VisualElement() { style = { flexDirection = FlexDirection.Row } };
splitter2.Add(propField);
// List implementation
var list = new ListView(data.refactoringData, 24,
makeItem: () =>
{
var splitter3 = new VisualElement() { style = { flexDirection = FlexDirection.Row } };
var left2 = new VisualElement() { style = { width = Length.Percent(50), marginRight = 20 }, name = "LeftSection" };
var right2 = new VisualElement() { style = { width = Length.Percent(50), marginLeft = 20 }, name = "RightSection" };
// left.Add(new TextField() { name = "From" });
// right.Add(new TextField() { name = "To" });
splitter3.Add(left2);
splitter3.Add(right2);
return splitter3;
},
bindItem: (element, i) =>
{
while (data.refactoringData.Count < i)
data.refactoringData.Add(new ShaderPropertyRefactoringData());
var el = data.refactoringData[i];
if (el == null)
{
el = new ShaderPropertyRefactoringData() { };
data.refactoringData[i] = el;
so.Update();
}
var from = element.Q<VisualElement>("LeftSection");
var to = element.Q<VisualElement>("RightSection");
var p1 = prop.FindPropertyRelative(nameof(ShaderRefactoringData.refactoringData)).GetArrayElementAtIndex(i);
var refactorFrom = new StringPropertyFieldWithDropdown(this, so, p1.FindPropertyRelative(nameof(ShaderPropertyRefactoringData.sourceReferenceName)), "Source Property",(() =>
{
var properties = new List<(string referenceName, string displayName)>();
if(data.shader)
{
var propertyCount = data.shader.GetPropertyCount();
for (int j = 0; j < propertyCount; j++)
{
#if UNITY_6000_2_OR_NEWER
if (data.shader.GetPropertyFlags(j).HasFlag(ShaderPropertyFlags.HideInInspector)) continue;
#else
if(ShaderUtil.IsShaderPropertyHidden(data.shader, j)) continue;
#endif
properties.Add((data.shader.GetPropertyName(j), data.shader.GetPropertyDescription(j)));
}
}
var menu = new GenericMenu();
if (!data.shader)
menu.AddItem(new GUIContent("Set a Shader to pick properties from"), false, null);
else
menu.AddItem(new GUIContent("Shader Properties"), false, null);
foreach(var tuple in properties)
{
menu.AddItem(new GUIContent(tuple.referenceName + " (" + tuple.displayName + ")"), tuple.referenceName == el.sourceReferenceName, o =>
{
var t = o as string;
el.sourceReferenceName = t;
}, tuple.referenceName);
}
menu.ShowAsContext();
}), () =>
{
leftActionsContainer.SetEnabled(
!string.IsNullOrWhiteSpace(el.sourceReferenceName) && el.sourceReferenceName.Length >= 2);
});
var refactorTo = new StringPropertyFieldWithDropdown(this, so, p1.FindPropertyRelative(nameof(ShaderPropertyRefactoringData.targetReferenceName)), "Replace With", () =>
{
var shaderInfo = ShaderUtil.GetAllShaderInfo();
List<(string referenceName, string displayName)> properties = shaderInfo.SelectMany(x =>
{
// exclude hidden shaders?
if (x.name.StartsWith("Hidden/")) return Enumerable.Empty<(string, string)>();
var shader = Shader.Find(x.name);
#if UNITY_6000_2_OR_NEWER
var propertyCount = shader.GetPropertyCount();
#else
var propertyCount = ShaderUtil.GetPropertyCount(shader);
#endif
return Enumerable.Range(0, propertyCount)
#if UNITY_6000_2_OR_NEWER
.Where(idx => !shader.GetPropertyFlags(idx).HasFlag(ShaderPropertyFlags.HideInInspector))
#else
.Where(idx => !ShaderUtil.IsShaderPropertyHidden(shader, idx))
#endif
// .Where(x =>
// {
// if (ShaderUtil.GetPropertyName(shader, x) == "_A")
// {
// Debug.Log("Shader has property " + "_A" + ": " + shader, shader);
// }
// return true;
// })
#if UNITY_6000_2_OR_NEWER
.Select(idx => (shader.GetPropertyName(idx), shader.GetPropertyDescription(idx)));
#else
.Select(idx => (ShaderUtil.GetPropertyName(shader, idx), ShaderUtil.GetPropertyDescription(shader, idx)));
#endif
})
.ToLookup(x => x.Item1)
.OrderByDescending(x => x.Count())
// .Where(x =>
// {
// if(x.Count() > 10)
// Debug.Log("Property " + x.Key + " found in " + string.Join("\n", x));
// return true;
// })
.Select(x => (x.Key, x.Count().ToString()))
.ToList();
const int ItemsInMainSection = 25;
var menu = new GenericMenu();
menu.AddItem(new GUIContent("Common Names"), false, null);
foreach (var tuple in commonNamePairs)
{
menu.AddItem(new GUIContent(tuple.referenceName + " (" + tuple.displayName + ")"), tuple.referenceName == el.targetReferenceName, o =>
{
var t = o as string;
el.targetReferenceName = t;
}, tuple.referenceName);
}
menu.AddSeparator("");
menu.AddItem(new GUIContent("Most Used Properties"), false, null);
foreach(var tuple in properties.Take(ItemsInMainSection))
{
menu.AddItem(new GUIContent(tuple.referenceName + "\t(" + tuple.displayName + ")"), tuple.referenceName == el.targetReferenceName, o =>
{
var t = o as string;
el.targetReferenceName = t;
}, tuple.referenceName);
}
menu.AddSeparator("");
menu.AddItem(new GUIContent("All Properties"), false, null);
foreach (var tuple in properties.Select(x => (char.ToUpperInvariant(x.referenceName.TrimStart('_').FirstOrDefault()),x)).OrderBy(x => x.Item1))
{
menu.AddItem(new GUIContent("Alphabetic/" + tuple.Item1 + "/" + tuple.x.referenceName + "\t(" + tuple.x.displayName + ")"), tuple.x.referenceName == el.targetReferenceName, o =>
{
var t = o as string;
el.targetReferenceName = t;
}, tuple.x.referenceName);
}
menu.ShowAsContext();
}, () =>
{
rightActionsContainer.SetEnabled(
!string.IsNullOrWhiteSpace(el.sourceReferenceName) && el.sourceReferenceName.Length >= 2 &&
!string.IsNullOrWhiteSpace(el.targetReferenceName) && el.targetReferenceName.Length >= 2);
});
from.Clear();
to.Clear();
from.Add(refactorFrom);
to.Add(refactorTo);
}) { style = { flexShrink = 500, flexGrow = 1 }};
#if UNITY_2021_2_OR_NEWER
list.showAddRemoveFooter = true;
list.showAlternatingRowBackgrounds = AlternatingRowBackground.None;
list.reorderMode = ListViewReorderMode.Simple;
list.showBoundCollectionSize = true;
list.showBorder = true;
#else
var addRemove = new VisualElement() { style = { flexDirection = FlexDirection.Row } };
addRemove.Add(new Button(() =>
{
#if UNITY_2020_1_OR_NEWER
var selected = list.selectedItems;
foreach (ShaderPropertyRefactoringData sel in selected)
data.refactoringData.Remove(sel);
#else
data.refactoringData.Remove(list.selectedItem as ShaderPropertyRefactoringData);
#endif
so.Update();
list.Bind(so);
list.Refresh();
}) { text = "-" });
addRemove.Add(new Button(() =>
{
data.refactoringData.Add(new ShaderPropertyRefactoringData());
so.Update();
list.Bind(so);
list.Refresh();
}) { text = "+" });
#endif
list.Bind(so);
var toolbar = new Toolbar();
toolbar.Add(new ToolbarButton(() =>
{
GUIUtility.systemCopyBuffer = string.Join("\n", data.refactoringData.Select(x => x.sourceReferenceName + ", " + x.targetReferenceName));
}) { text = "Copy Property List to Clipboard" });
toolbar.Add(new ToolbarButton(() =>
{
var str = GUIUtility.systemCopyBuffer;
var lines = str.Split('\n');
data.refactoringData.Clear();
foreach (var t in lines)
{
var parts = t.Split(new char[] { ',', ';' });
if (parts.Length != 2) continue;
data.refactoringData.Add(new ShaderPropertyRefactoringData() { sourceReferenceName = parts[0].Trim(), targetReferenceName = parts[1].Trim() });
}
so.Update();
#if UNITY_2021_2_OR_NEWER
list.Rebuild();
#else
list.Bind(so);
#endif
}) { text = "Paste Property List from Clipboard", tooltip = "Plain text with comma separation: \"source, target\""});
rootVisualElement.Add(toolbar);
rootVisualElement.Add(splitter2);
rootVisualElement.Add(list);
#if !UNITY_2021_2_OR_NEWER
rootVisualElement.Add(addRemove);
#endif
rootVisualElement.Add(splitter);
splitter.Add(left);
splitter.Add(right);
so.ApplyModifiedProperties();
rightActionsContainer.Add(new Label("Replace") { style = { marginTop = 10, marginLeft = 3, unityFontStyleAndWeight = FontStyle.Bold}});
rightActionsContainer.Add(new Button(() =>
{
FixMaterialsAndShaders();
FixAnimationClips();
FixScripts();
}) { text = "Replace all Usages", tooltip = "Replace in materials, shaders and animation clips", style = { height = 30 } });
rightActionsContainer.Add(new Button(FixMaterialsAndShaders) { text = "Replace in materials and shaders" });
rightActionsContainer.Add(new Button(FixAnimationClips) { text = "Replace in animations" });
rightActionsContainer.Add(new Button(FixScripts) { text = "Replace in scripts" });
#if HAVE_UITOOLKIT_HELPBOX
rightActionsContainer.Add(new HelpBox("Please make sure to have a backup before running these operations!", HelpBoxMessageType.Warning));
#endif
right.Add(rightActionsContainer);
leftActionsContainer.Add(new Label("Find") { style = { marginTop = 10, marginLeft = 3, unityFontStyleAndWeight = FontStyle.Bold }});
leftActionsContainer.Add(new Button(() =>
{
FindMaterials();
FindAnimationClips();
FindScripts();
}) { text = "Find all Usages", tooltip = "Find materials, animation clips and scripts using this property", style = { height = 30 } } );
leftActionsContainer.Add(new Button(FindMaterials) { text = "Find materials and shaders using this property" });
leftActionsContainer.Add(new Button(FindAnimationClips) { text = "Find animations targeting this property" });
leftActionsContainer.Add(new Button(FindScripts) { text = "Find scripts targeting this property" });
#if HAVE_UITOOLKIT_HELPBOX
leftActionsContainer.Add(new HelpBox("Non-Shadergraph shaders and scripts cannot be updated automatically. Please use the Find buttons and update them manually.", HelpBoxMessageType.None));
#endif
left.Add(leftActionsContainer);
}
private void FindAnimationClips()
{
FindAnimationClips(data.refactoringData);
}
private void FindAnimationClips(List<ShaderPropertyRefactoringData> dat)
{
var clipsThatNeedUpdating = new List<AnimationClip>();
var allClips = GetAllAssets<AnimationClip>();
var i = 0;
var count = allClips.Count;
foreach (var clip in allClips)
{
i++;
EditorUtility.DisplayProgressBar("Parsing AnimationClips", "Clip " + i + "/" + count + ": " + clip.name, (float)i / count);
foreach (var binding in AnimationUtility.GetCurveBindings(clip))
{
foreach (var data in dat)
{
if (binding.propertyName.StartsWith("material." + data.sourceReferenceName, StringComparison.Ordinal)) // TODO what if the animated material is not at index 0?
{
if(clipsThatNeedUpdating.Contains(clip))
continue;
clipsThatNeedUpdating.Add(clip);
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, clip, $"AnimationClip targets this shader property: {clip.name} ({binding.path})");
}
}
}
}
EditorUtility.ClearProgressBar();
}
private void FindScripts()
{
foreach (var dat in data.refactoringData)
{
FindScripts(dat);
}
}
private void FindScripts(ShaderPropertyRefactoringData data)
{
// find all scripts
var scripts = GetAllAssets<MonoScript>();
var i = 0;
var count = scripts.Count;
foreach (var script in scripts)
{
i++;
if(!AssetDatabase.IsOpenForEdit(script)) continue;
EditorUtility.DisplayProgressBar("Parsing Scripts", "Script " + i + "/" + count + ": " + script.name, (float)i / count);
var fullText = File.ReadAllLines(AssetDatabase.GetAssetPath(script));
for(int line = 0; line < fullText.Length; line++)
{
var text = fullText[line];
var scriptPath = $"<a href=\"{AssetDatabase.GetAssetPath(script)}:{line}\">{AssetDatabase.GetAssetPath(script)}:{line}</a>";
if (text.Contains("\"" + data.sourceReferenceName + "\""))
{
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, script, "{0}", "Script contains reference to this property: " + scriptPath);
}
else if (text.Contains(data.sourceReferenceName))
{
// Debug.Log($"Script may contain reference to this property: ) (at {Path.GetFullPath(AssetDatabase.GetAssetPath(script)).Replace("\\","/")}:{line})", script);
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, script, "{0}", "Script may contain reference to this property: " + scriptPath);
}
}
}
EditorUtility.ClearProgressBar();
}
void FindMaterials()
{
foreach (var dat in data.refactoringData)
{
FindMaterials(dat);
}
}
private void FindMaterials(ShaderPropertyRefactoringData data)
{
var allMaterials = GetAllAssets<Material>();
var i = 0;
var count = allMaterials.Count;
foreach (var material in allMaterials)
{
i++;
EditorUtility.DisplayProgressBar("Parsing Material and Shader", "Material " + i + "/" + count + ": " + material.name, (float)i / count);
if(!material) continue;
var shader = material.shader;
if(!shader) continue;
var propertyIndex = shader.FindPropertyIndex(data.sourceReferenceName);
if (propertyIndex >= 0)
{
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, material, $"Material uses shader with property {data.sourceReferenceName}: {material.name} ({shader.name})");
}
}
EditorUtility.ClearProgressBar();
}
private void FixMaterialsAndShaders()
{
FixMaterialsAndShaders(data.shader, data.refactoringData);
}
private void FixMaterialsAndShaders(Shader sourceShader, List<ShaderPropertyRefactoringData> propertyList)
{
var allShaders = GetAllAssets<Shader>();
var shadersThatNeedUpdating = new List<Shader>();
var shadersThatCannotBeUpdated = new List<Shader>();
var shadersThatWouldNeedUpdatingButAreExcluded = new List<Shader>();
var i = 0;
var count = allShaders.Count;
foreach (var shader in allShaders)
{
i++;
EditorUtility.DisplayProgressBar("Parsing Shader", "Shader " + i + "/" + count + ": " + shader.name, (float)i / count);
if(!shader) continue;
foreach(var data in propertyList)
{
if (string.IsNullOrWhiteSpace(data.sourceReferenceName))
{
// Debug.LogWarning("Can't refactor: source reference name is empty. Please select a source property.");
continue;
}
if (string.IsNullOrWhiteSpace(data.targetReferenceName))
{
// Debug.LogWarning("Can't refactor: target reference name is empty. Please set a new reference name for " + data.sourceReferenceName);
continue;
}
var propertyIndex = shader.FindPropertyIndex(data.sourceReferenceName);
if (propertyIndex >= 0)
{
var path = AssetDatabase.GetAssetPath(shader);
// if the shader field is set, we want to explicitly only upgrade that shader;
// if the shader field isn't set, we want to upgrade all shaders.
var shouldUpdateThisShader = !sourceShader || shader == sourceShader;
var couldUpdateThisShader = path.EndsWith(".shadergraph", StringComparison.OrdinalIgnoreCase) && AssetDatabase.IsOpenForEdit(path);
if (!couldUpdateThisShader)
{
shadersThatCannotBeUpdated.Add(shader);
}
else if (shouldUpdateThisShader)
{
// Debug.Log($"Shader has property {data.sourceReferenceName} and will be updated: {shader.name}", shader);
shadersThatNeedUpdating.Add(shader);
}
else
{
// Debug.LogWarning($"Shader has property {data.sourceReferenceName} but will NOT be updated: {shader.name}. Clear the shader field if you want to update all shaders with this property.", shader);
shadersThatWouldNeedUpdatingButAreExcluded.Add(shader);
}
}
}
}
EditorUtility.ClearProgressBar();
if(!shadersThatNeedUpdating.Any() && !shadersThatWouldNeedUpdatingButAreExcluded.Any() && !shadersThatCannotBeUpdated.Any())
{
Debug.Log($"Properties haven't been found in any shaders. No changes necessary.");
return;
}
if (shadersThatWouldNeedUpdatingButAreExcluded.Any())
{
var selectedShadersNeedUpdating = shadersThatNeedUpdating.Any();
switch (EditorUtility.DisplayDialogComplex(
"Properties also exist in other shaders!",
(selectedShadersNeedUpdating ? "This property exists in this shader that is selected for updating:" + ObjectNames(shadersThatNeedUpdating) : "This property doesn't exist in the selected shader(s).") +
"\n\n" +
"but also exists in these shaders that won't be updated because they're not selected:" + ObjectNames(shadersThatWouldNeedUpdatingButAreExcluded) +
".\n\n" +
"It also exists in " + shadersThatCannotBeUpdated.Count + " shaders that cannot be updated (read-only or not checked out)" +
".\n\n" +
"Are you sure you want to update just these shaders? Press \"Update All\", or Cancel and empty the \"Shader\" field to update all shaders.",
selectedShadersNeedUpdating ? "Update only " + ObjectNames(shadersThatNeedUpdating, true) : "Do nothing",
"Cancel", "Update all " + (shadersThatNeedUpdating.Count + shadersThatWouldNeedUpdatingButAreExcluded.Count) + " shaders"))
{
case 0:
break;
case 1:
return;
case 2:
shadersThatNeedUpdating.AddRange(shadersThatWouldNeedUpdatingButAreExcluded);
shadersThatWouldNeedUpdatingButAreExcluded.Clear();
break;
}
}
// find all materials that are using any of these shaders
var materialsThatNeedUpdating = GetAllAssets<Material>()
.Where(x => x.shader && shadersThatNeedUpdating.Contains(x.shader))
.ToList();
var materialsThatCannotBeUpdated = materialsThatNeedUpdating.Where(x => !AssetDatabase.IsMainAsset(x) || !AssetDatabase.IsOpenForEdit(x)).ToList();
var materialsThatCanBeUpdated = materialsThatNeedUpdating.Except(materialsThatCannotBeUpdated).ToList();
if (materialsThatCannotBeUpdated.Any())
{
Debug.LogWarning($"Some materials couldn't be updated since they are sub assets [{materialsThatCannotBeUpdated.Count}]: {ObjectNames(materialsThatCannotBeUpdated, false, false, true)}");
}
if(!shadersThatNeedUpdating.Any() && !materialsThatCanBeUpdated.Any())
{
Debug.Log("Property hasn't been found in any shaders and materials. No changes necessary.");
return;
}
if (!EditorUtility.DisplayDialog(
"Refactor shader properties",
"Shaders that will be changed [" + shadersThatNeedUpdating.Count + "]:" + ObjectNames(shadersThatNeedUpdating) + "\n\n" +
"Materials that will be changed [" + materialsThatCanBeUpdated.Count + "]:" + ObjectNames(materialsThatCanBeUpdated) + "\n\n" +
(shadersThatCannotBeUpdated.Any() ? ("Shaders that can't be changed [" + shadersThatCannotBeUpdated.Count + "]:" + ObjectNames(shadersThatCannotBeUpdated) + "\n\n") : "") +
(materialsThatCannotBeUpdated.Any() ? ("Materials that can't be changed [" + materialsThatCannotBeUpdated.Count + "]:" + ObjectNames(materialsThatCannotBeUpdated)) : ""),
"OK",
"Cancel")) return;
foreach (var shader in shadersThatNeedUpdating)
{
// upgrade file
var path = AssetDatabase.GetAssetPath(shader);
if (!path.EndsWith(".shadergraph", StringComparison.OrdinalIgnoreCase))
{
Debug.LogWarning("Only .shadergraph files can be auto-updated right now. Please update the file manually: " + path, shader);
continue;
}
var text = File.ReadAllText(path);
// TODO this will only properly work for ShaderGraph files right now, as these have "" around properties.
// The general case is more complex! We'd have to parse the file properly and check if something is "_VarName=" or "_VarName2" (the former would be replaced, the latter is a separate field)
var lines = File.ReadAllLines(path);
for (int l = 0; l < lines.Length; l++)
{
var start = lines[l].TrimStart();
if (start.StartsWith("\"m_DisplayName") || start.StartsWith("\"m_ShaderOutputName") || start.StartsWith("\"m_Name"))
{
continue;
}
foreach (var data in propertyList)
{
if (string.IsNullOrWhiteSpace(data.sourceReferenceName))
continue;
if (string.IsNullOrWhiteSpace(data.targetReferenceName))
continue;
lines[l] = lines[l].Replace($"\"{data.sourceReferenceName}\"", $"\"{data.targetReferenceName}\"");
}
}
File.WriteAllLines(path, lines);
}
foreach (var mat in materialsThatCanBeUpdated)
{
var path = AssetDatabase.GetAssetPath(mat);
var lines = File.ReadAllLines(path);
for(int l = 0; l < lines.Length; l++)
{
var start = lines[l].TrimStart();
foreach (var data in propertyList)
{
if (string.IsNullOrWhiteSpace(data.sourceReferenceName))
continue;
if (string.IsNullOrWhiteSpace(data.targetReferenceName))
continue;
// migrate shader keywords
if (start.StartsWith("m_ShaderKeywords: ", StringComparison.Ordinal))
{
lines[l] = lines[l].Replace(" " + data.sourceReferenceName + " ", " " + data.targetReferenceName + " ");
lines[l] = lines[l].Replace(" " + data.sourceReferenceName + "\n", " " + data.targetReferenceName + "\n"); // last item
}
else
{
// we're directly operating on the serialized YAML here, what could possibly go wrong
lines[l] = lines[l].Replace("- " + data.sourceReferenceName + ":", "- " + data.targetReferenceName + ":");
}
}
}
File.WriteAllLines(path, lines);
}
AssetDatabase.Refresh();
// UpdatePopupField();
}
private void FixAnimationClips()
{
FixAnimationClips(data.refactoringData);
}
private void FixAnimationClips(List<ShaderPropertyRefactoringData> dat)
{
var clipsThatNeedUpdating = new List<AnimationClip>();
var allClips = GetAllAssets<AnimationClip>();
var i = 0;
var count = allClips.Count;
foreach (var clip in allClips)
{
i++;
EditorUtility.DisplayProgressBar("Parsing AnimationClips", "Clip " + i + "/" + count + ": " + clip.name, (float)i / count);
foreach (var binding in AnimationUtility.GetCurveBindings(clip))
{
foreach(var data in dat)
{
if (binding.propertyName.StartsWith("material." + data.sourceReferenceName, StringComparison.Ordinal)) // TODO what if the animated material is not at index 0?
{
if(clipsThatNeedUpdating.Contains(clip))
continue;
clipsThatNeedUpdating.Add(clip);
}
}
}
}
EditorUtility.ClearProgressBar();
var clipsThatCannotBeUpdated = clipsThatNeedUpdating.Where(x => !AssetDatabase.IsOpenForEdit(x)).ToList();
foreach (var clip in clipsThatNeedUpdating)
{
var currentBindings = AnimationUtility.GetCurveBindings(clip);
for(int j = 0; j < currentBindings.Length; j++)
{
var binding = currentBindings[j];
foreach (var data in dat)
{
if (binding.propertyName.StartsWith("material." + data.sourceReferenceName, StringComparison.Ordinal)) // TODO what if the animated material is not at index 0?
{
var curve = AnimationUtility.GetEditorCurve(clip, binding);
AnimationUtility.SetEditorCurve(clip, binding, null);
binding.propertyName = binding.propertyName.Replace("material." + data.sourceReferenceName, "material." + data.targetReferenceName);
AnimationUtility.SetEditorCurve(clip, binding, curve);
}
}
// AnimationUtility.SetEditorCurve(clip, binding, null);
}
// var path = AssetDatabase.GetAssetPath(clip);
// var text = File.ReadAllText(path);
// // we're directly operating on the serialized YAML here, what could possibly go wrong
// text = text.Replace("- " + data.sourceReferenceName + ":", "- " + data.targetReferenceName + ":");
// File.WriteAllText(path, text);
}
if(clipsThatNeedUpdating.Any())
{
Debug.Log("Clips that have been updated [" + clipsThatNeedUpdating.Count + "]: " + ObjectNames(clipsThatNeedUpdating));
if (clipsThatCannotBeUpdated.Any())
{
Debug.Log("Clips that cannot be updated (read-only) [" + clipsThatCannotBeUpdated.Count + "]: " + ObjectNames(clipsThatCannotBeUpdated));
}
}
}
private void FixScripts()
{
// find all scripts
var scripts = GetAllAssets<MonoScript>();
var i = 0;
var count = scripts.Count;
foreach (var script in scripts)
{
i++;
if (!AssetDatabase.IsOpenForEdit(script)) continue;
EditorUtility.DisplayProgressBar("Parsing Scripts", "Script " + i + "/" + count + ": " + script.name, (float)i / count);
var path = AssetDatabase.GetAssetPath(script);
var fullText = File.ReadAllLines(path);
bool didAChange = false;
for (int line = 0; line < fullText.Length; line++)
{
var text = fullText[line];
foreach (var data in data.refactoringData)
text = text.Replace("\"" + data.sourceReferenceName + "\"", "\"" + data.targetReferenceName + "\"");
if (fullText[line] != text)
didAChange = true;
fullText[line] = text;
}
if (didAChange)
File.WriteAllLines(path, fullText);
}
AssetDatabase.Refresh();
EditorUtility.ClearProgressBar();
}
private static string ObjectNames<T>(IReadOnlyCollection<T> objects, bool singleLine = false, bool returnShortStringIfTooManyElements = true, bool groupByName = false) where T : UnityEngine.Object
{
var strings = (groupByName ? objects.ToLookup(x => x.name).Select(x => $"{x.Key} [{x.Count()}]") : objects.Select(x => x.name)).OrderBy(x => x).ToList();
if (returnShortStringIfTooManyElements && strings.Count > 5)
return singleLine ? " " : "\n" + "(too many items to display: " + strings.Count + ")";
const int MaxPrettyObjectsCount = 10;
var makeSingleLineBecauseOfTooManyElements = returnShortStringIfTooManyElements && strings.Count > MaxPrettyObjectsCount;
var firstSeparator = singleLine ? "" : makeSingleLineBecauseOfTooManyElements ? "\n" : "\n · ";
var separator = singleLine || makeSingleLineBecauseOfTooManyElements ? ", " : "\n · ";
return firstSeparator + string.Join(separator, strings);
}
}
[Serializable]
public class ShaderRefactoringData
{
public string shaderPath;
public Shader shader;
public List<ShaderPropertyRefactoringData> refactoringData = new List<ShaderPropertyRefactoringData>();
// public string sourceReferenceName;
// public string targetReferenceName;
}
[Serializable]
public class ShaderPropertyRefactoringData
{
public string sourceReferenceName;
public string targetReferenceName;
}
}
================================================
FILE: package/Editor/Extensions/ShaderRefactoringWindow.cs.meta
================================================
fileFormatVersion: 2
guid: cc31c4ce78c591c4eb30f57032a7b454
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Extensions.meta
================================================
fileFormatVersion: 2
guid: f9d6513e81beefd43a10c3ff3600e926
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/Common/CommonInternalExtensions.cs
================================================
using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace Needle.ShaderGraphMarkdown
{
public static class CommonInternalExtensions
{
public static void ShaderPropertyWithTooltip(this MaterialEditor materialEditor, MaterialProperty prop, GUIContent label)
{
// special case: we want to draw textures and vectors differently, since they discard tooltips in the MaterialEditor implementation...
switch (prop.type)
{
case MaterialProperty.PropType.Vector:
if (_GetPropertyRect == null)
{
materialEditor.VectorProperty(prop, label.text);
}
else
{
var position = (Rect)_GetPropertyRect.Invoke(materialEditor, new object[] { prop, label.text, true });
_VectorProperty(position, prop, label);
}
break;
case MaterialProperty.PropType.Texture:
bool scaleOffset = (prop.flags & MaterialProperty.PropFlags.NoScaleOffset) == MaterialProperty.PropFlags.None;
materialEditor.TexturePropertyWithTooltip(prop, label, scaleOffset);
break;
default:
materialEditor.ShaderProperty(prop, label);
break;
}
}
// from MaterialEditor.VectorProperty, plus support for GUIContent
public static Vector4 _VectorProperty(Rect position, MaterialProperty prop, GUIContent label)
{
#if UNITY_2022_1_OR_NEWER
MaterialEditor.BeginProperty(position, prop);
#endif
EditorGUI.BeginChangeCheck();
EditorGUI.showMixedValue = prop.hasMixedValue;
float labelWidth = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = 0.0f;
Vector4 vector4 = EditorGUI.Vector4Field(position, label, prop.vectorValue);
EditorGUIUtility.labelWidth = labelWidth;
EditorGUI.showMixedValue = false;
if (EditorGUI.EndChangeCheck())
prop.vectorValue = vector4;
#if UNITY_2022_1_OR_NEWER
MaterialEditor.EndProperty();
#endif
return prop.vectorValue;
}
private static MethodInfo _getPropertyRect = null;
private static MethodInfo _GetPropertyRect
{
get
{
if (_getPropertyRect == null)
_getPropertyRect = typeof(MaterialEditor).GetMethod("GetPropertyRect", (BindingFlags)(-1), null, CallingConventions.Any, new Type[] { typeof(MaterialProperty), typeof(string), typeof(bool) }, null);
return _getPropertyRect;
}
}
public static void TexturePropertyWithTooltip(this MaterialEditor materialEditor, MaterialProperty textureProperty, GUIContent displayContent, bool scaleOffset)
{
if (_GetPropertyRect == null)
{
materialEditor.TextureProperty(textureProperty, displayContent.text, scaleOffset);
}
else
{
var rect = (Rect)_GetPropertyRect.Invoke(materialEditor, new object[] { textureProperty, displayContent.text, true });
materialEditor.TextureProperty(rect, textureProperty, displayContent.text, displayContent.tooltip, scaleOffset);
}
}
}
}
================================================
FILE: package/Editor/Internal/Common/CommonInternalExtensions.cs.meta
================================================
fileFormatVersion: 2
guid: 0d353ff40ad6b6d47bd1ada5b22dcfdf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/Common/Needle.ShaderGraphMarkdownCommonInternal.asmref
================================================
{
"reference": "GUID:343deaaf83e0cee4ca978e7df0b80d21"
}
================================================
FILE: package/Editor/Internal/Common/Needle.ShaderGraphMarkdownCommonInternal.asmref.meta
================================================
fileFormatVersion: 2
guid: fa3720d486f1e3b42965c20bf53121f6
AssemblyDefinitionReferenceImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/Common.meta
================================================
fileFormatVersion: 2
guid: d3aed7a7d8dbbde419dfa506a0850af6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/CommonExtensions.cs
================================================
// using System.Collections;
// using System.Collections.Generic;
// using UnityEngine;
//
// namespace Needle.ShaderGraphMarkdown
// {
// public static class CommonExtensions
// {
// }
// }
================================================
FILE: package/Editor/Internal/CommonExtensions.cs.meta
================================================
fileFormatVersion: 2
guid: a61a189b38ecce04bbf837daeefdf90e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/HDRP/MarkdownHDExtensions.cs
================================================
#if !NO_INTERNALS_ACCESS && UNITY_2019_4_OR_NEWER
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using UnityEditor.Graphing;
using UnityEditor.Rendering.HighDefinition;
using UnityEditor.ShaderGraph;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.Rendering.HighDefinition.ShaderGraph;
using UnityEditor.ShaderGraph.Internal;
using UnityEditor.ShaderGraph.Serialization;
#endif
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
namespace UnityEditor.Rendering.HighDefinition
{
public static class MarkdownHDExtensions
{
private static readonly Dictionary<Type, Type> TypeToHDPropertyTypeMap = new Dictionary<Type, Type>()
{
#if UNITY_2020_2_OR_NEWER
{ typeof(LightmapData), typeof(LightmappingShaderProperties.LightmapTextureArrayProperty) },
{ typeof(DiffusionProfileSettings), typeof(DiffusionProfileShaderProperty) },
#endif
};
[InitializeOnLoadMethod]
static void RegisterMarkdownHelpers()
{
MarkdownSGExtensions.RegisterTypeMap(TypeToHDPropertyTypeMap);
MarkdownSGExtensions.RegisterCustomInspectorGetter(GetDefaultCustomInspectorFromGraphData);
#if UNITY_2020_2_OR_NEWER
MarkdownSGExtensions.RegisterCustomInspectorSetter(SetDefaultCustomInspector);
#endif
}
#if UNITY_2020_2_OR_NEWER
static bool SetDefaultCustomInspector(Target target, string customInspector)
{
if (target is HDTarget hdTarget)
{
if (hdTarget.customEditorGUI.Equals(customInspector, StringComparison.Ordinal))
hdTarget.customEditorGUI = null; // GetDefaultCustomInspectorFromShader(mat.shader);
else
hdTarget.customEditorGUI = customInspector;
return true;
}
return false;
}
#endif
static string GetDefaultCustomInspectorFromGraphData(GraphData graphData)
{
string customInspector = null;
#if UNITY_2020_2_OR_NEWER
foreach(var target in graphData.activeTargets)
{
// Debug.Log("Active Target: " + target.displayName);
if (target is HDTarget hdTarget)
{
var activeSubTarget = ((JsonData<SubTarget>) typeof(HDTarget).GetField("m_ActiveSubTarget", (BindingFlags)(-1)).GetValue(hdTarget)).value;
if (activeSubTarget is HDSubTarget hdSubTarget)
{
customInspector = (string) typeof(HDSubTarget).GetProperty("customInspector", (BindingFlags) (-1))?.GetValue(hdSubTarget);
break;
// Debug.Log($"Active SubTarget: {activeSubTarget.displayName}, Custom Editor: " + customInspector);
}
}
}
#else
if (graphData.outputNode is MasterNode masterNode)
{
switch (masterNode)
{
case HDLitMasterNode hdLitMasterNode:
customInspector = "UnityEditor.Rendering.HighDefinition.HDLitGUI";
break;
case HDUnlitMasterNode hdUnlitMasterNode:
customInspector = "UnityEditor.Rendering.HighDefinition.HDUnlitGUI";
break;
case DecalMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.DecalGUI";
break;
case EyeMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.EyeGUI";
break;
case FabricMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.FabricGUI";
break;
case HairMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.HairGUI";
break;
case PBRMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.HDPBRLitGUI";
break;
case StackLitMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.StackLitGUI";
break;
case UnlitMasterNode sub:
customInspector = "UnityEditor.Rendering.HighDefinition.UnlitUI";
break;
}
}
#endif
return customInspector;
}
public static void RemoveShaderGraphUIBlock(ShaderGUI baseShaderGui)
{
MaterialUIBlockList blockList = null;
#if UNITY_2020_2_OR_NEWER
if (baseShaderGui is LightingShaderGraphGUI hdGui)
{
blockList = (MaterialUIBlockList) typeof(LightingShaderGraphGUI).GetProperty("uiBlocks", (BindingFlags) (-1))?.GetValue(hdGui);
}
#else
if (baseShaderGui is HDLitGUI hdLitGUI)
{
blockList = (MaterialUIBlockList) typeof(HDLitGUI).GetField("uiBlocks", (BindingFlags) (-1))?.GetValue(hdLitGUI);
}
else if (baseShaderGui is HDUnlitGUI hdUnlitGUI)
{
blockList = (MaterialUIBlockList) typeof(HDUnlitGUI).GetField("uiBlocks", (BindingFlags) (-1))?.GetValue(hdUnlitGUI);
}
#endif
#if !UNITY_2021_1_OR_NEWER
else if (baseShaderGui is DecalGUI decalGUI)
{
blockList = (MaterialUIBlockList) typeof(DecalGUI).GetField("uiBlocks", (BindingFlags) (-1))?.GetValue(decalGUI);
}
#endif
else
{
blockList = (MaterialUIBlockList) baseShaderGui.GetType().GetField("uiBlocks", (BindingFlags) (-1))?.GetValue(baseShaderGui);
if(blockList == null)
blockList = (MaterialUIBlockList) baseShaderGui.GetType().GetProperty("uiBlocks", (BindingFlags) (-1))?.GetValue(baseShaderGui);
}
if (blockList == null) return;
var shaderGraphBlock = blockList.FetchUIBlock<ShaderGraphUIBlock>();
// // check if there are special features active and so we need to keep the block
// var m_Features = typeof(ShaderGraphUIBlock).GetField("m_Features", (BindingFlags) (-1));
// var shaderGraphFeatures = (ShaderGraphUIBlock.Features) (m_Features?.GetValue(shaderGraphBlock) ?? 0);
// if(shaderGraphFeatures == 0)
blockList?.Remove(shaderGraphBlock);
// Debug.Log(shaderGraphFeatures);
}
}
}
#endif
================================================
FILE: package/Editor/Internal/HDRP/MarkdownHDExtensions.cs.meta
================================================
fileFormatVersion: 2
guid: 9bd2e12169b536b4fa16cd8592363617
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/HDRP/Needle.ShaderGraphMarkdown.HDInternal.asmref
================================================
{
"reference": "GUID:78bd2ddd6e276394a9615c203e574844"
}
================================================
FILE: package/Editor/Internal/HDRP/Needle.ShaderGraphMarkdown.HDInternal.asmref.meta
================================================
fileFormatVersion: 2
guid: f958dcb7312678b47b40503dd4056043
AssemblyDefinitionReferenceImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/HDRP.meta
================================================
fileFormatVersion: 2
guid: fd6180dc2a4d07949b204ff770b9dcaa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/Needle.ShaderGraphMarkdown.Internal.asmdef
================================================
{
"name": "Needle.ShaderGraphMarkdown.Internal",
"rootNamespace": "",
"references": [],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": true,
"precompiledReferences": [],
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [
{
"name": "com.unity.render-pipelines.universal",
"expression": "7.0.0",
"define": "URP_7_OR_NEWER"
},
{
"name": "com.unity.render-pipelines.high-definition",
"expression": "7.0.0",
"define": "HDRP_7_OR_NEWER"
},
{
"name": "com.unity.modules.ui",
"expression": "0.0.0",
"define": "NO_INTERNALS_ACCESS"
}
],
"noEngineReferences": false
}
================================================
FILE: package/Editor/Internal/Needle.ShaderGraphMarkdown.Internal.asmdef.meta
================================================
fileFormatVersion: 2
guid: bf7b384417358f74ca38b924ce380c6d
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/ShaderGraph/Experimental/MarkdownBlackboardProperties.cs
================================================
#if !NO_INTERNALS_ACCESS && UNITY_2019_4_OR_NEWER
// using System;
// using System.Collections.Generic;
// using System.IO;
// using System.Linq;
// using System.Reflection;
// using System.Text;
// using UnityEngine;
// using UnityEditor.ShaderGraph.Internal;
// #if UNITY_2020_2_OR_NEWER
// using UnityEditor.ShaderGraph.Serialization;
// #else
// #endif
namespace UnityEditor.ShaderGraph
{
#region Custom Blackboard Properties - Experimental
// [Serializable]
// [BlackboardInputInfo(30000, name = "Markdown/Foldout Header")]
// public class MarkdownFoldout : MarkdownShaderProperty
// {
// internal override string DisplayName => "# My Foldout";
// }
//
// [Serializable]
// [BlackboardInputInfo(30001, name = "Markdown/Header")]
// public class MarkdownHeader : MarkdownShaderProperty
// {
// internal override string DisplayName => "## My Header";
// }
//
// [Serializable]
// [BlackboardInputInfo(30002, name = "Markdown/Note")]
// public class MarkdownNote : MarkdownShaderProperty
// {
// internal override string DisplayName => "!NOTE My Note";
// }
//
// public abstract class MarkdownShaderProperty : AbstractShaderProperty<bool>
// {
// internal abstract string DisplayName { get; }
//
// internal MarkdownShaderProperty()
// {
// displayName = DisplayName;
// }
//
// public override PropertyType propertyType => PropertyType.Boolean;
//
// internal override bool isExposable => true;
// internal override bool isRenamable => true;
//
// internal override string GetPropertyAsArgumentString()
// {
// return $"{concreteShaderValueType.ToShaderString(concretePrecision.ToShaderString())} {referenceName}";
// }
//
// internal override void ForeachHLSLProperty(Action<HLSLProperty> action)
// {
// HLSLDeclaration decl = GetDefaultHLSLDeclaration();
// action(new HLSLProperty(HLSLType._float, referenceName, decl, concretePrecision));
// }
//
// internal override string GetPropertyBlockString()
// {
// return $"{hideTagString}[ToggleUI]{referenceName}(\"{displayName}\", Float) = {(value == true ? 1 : 0)}";
// }
//
// internal override AbstractMaterialNode ToConcreteNode()
// {
// return new BooleanNode() { value = new ToggleData(value) };
// }
//
// internal override PreviewProperty GetPreviewMaterialProperty()
// {
// return new PreviewProperty(propertyType)
// {
// name = referenceName,
// booleanValue = value
// };
// }
//
// internal override ShaderInput Copy()
// {
// return new BooleanShaderProperty()
// {
// displayName = displayName,
// hidden = hidden,
// value = value,
// precision = precision,
// };
// }
// }
#endregion
}
#endif
================================================
FILE: package/Editor/Internal/ShaderGraph/Experimental/MarkdownBlackboardProperties.cs.meta
================================================
fileFormatVersion: 2
guid: c7fa19444126deb4085d2b4bff709070
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/ShaderGraph/Experimental/PropertyManipulation.cs
================================================
#if !NO_INTERNALS_ACCESS && UNITY_2019_4_OR_NEWER
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UnityEngine;
using UnityEditor.ShaderGraph.Internal;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.ShaderGraph.Serialization;
#else
#endif
namespace UnityEditor.ShaderGraph
{
public static partial class MarkdownSGExtensions
{
#region ShaderGraph Property Manipulation API
[MenuItem("internal:CONTEXT/Shader/Remove All Properties", true)]
static bool RemoveAllPropertiesValidate(MenuCommand command)
{
return GetGraphData((Shader) command.context) != null;
}
[MenuItem("internal:CONTEXT/Shader/Remove All Properties", false)]
static void RemoveAllProperties(MenuCommand command)
{
var shader = (Shader) command.context;
var graphData = GetGraphData(shader);
if (graphData == null) return;
if (m_Keywords == null) m_Keywords = typeof(GraphData).GetField("m_Keywords", (BindingFlags) (-1));
if (m_Properties == null) m_Properties = typeof(GraphData).GetField("m_Properties", (BindingFlags) (-1));
#if UNITY_2020_2_OR_NEWER
var keywords = (List<JsonData<ShaderKeyword>>) m_Keywords.GetValue(graphData);
var properties = (List<JsonData<AbstractShaderProperty>>) m_Properties.GetValue(graphData);
#else
var keywords = (List<ShaderKeyword>) m_Keywords.GetValue(graphData);
var properties = (List<AbstractShaderProperty>) m_Properties.GetValue(graphData);
#endif
keywords.Clear();
properties.Clear();
WriteShaderGraphToDisk(shader, graphData);
}
[MenuItem("internal:CONTEXT/Shader/Add Test Property", true)]
static bool AddTestPropertyValidate(MenuCommand command)
{
return GetGraphData((Shader) command.context) != null;
}
[MenuItem("internal:CONTEXT/Shader/Add Test Properties", false)]
static void AddTestProperty(MenuCommand command)
{
var shader = (Shader) command.context;
AddMaterialProperty<bool>(shader, "My Bool");
AddMaterialProperty<Color>(shader, "My Color");
AddMaterialProperty<Texture2D>(shader, "My Texture");
AddMaterialProperty<Vector4>(shader, "My Vector");
AddMaterialProperty<float>(shader, "My Float");
AddMaterialKeyword<bool>(shader, "Some Boolean Keyword");
AddMaterialKeyword<Enum>(shader, "Some Enum Keyword");
}
[MenuItem("CONTEXT/Shader/Add Properties Wizard", true)]
static bool AddPropertiesWizardValidate(MenuCommand command)
{
return GetGraphData((Shader) command.context) != null;
}
[MenuItem("CONTEXT/Shader/Add Properties Wizard", false)]
static void AddPropertiesWizard(MenuCommand command)
{
// open wizard window
var wizard = ScriptableWizard.DisplayWizard<PropertyWizard>("Add Properties from Material", "Add Properties");
wizard.targetShader = (Shader) command.context;
}
[InitializeOnLoadMethod]
static void RegisterBaseTypeMap()
{
RegisterTypeMap(TypeToPropertyTypeMap);
}
private static readonly List<Dictionary<Type, Type>> TypeMaps = new List<Dictionary<Type, Type>>();
public static void RegisterTypeMap(Dictionary<Type,Type> typeToPropertyTypeMap)
{
if (!TypeMaps.Contains(typeToPropertyTypeMap)) TypeMaps.Add(typeToPropertyTypeMap);
}
// commented out entries are either duplicates or don't have matching Unity types
private static readonly Dictionary<Type, Type> TypeToPropertyTypeMap = new Dictionary<Type, Type>()
{
{ typeof(Gradient), typeof(GradientShaderProperty) },
// { typeof(Matrix), typeof(Matrix2ShaderProperty) },
// { typeof(null), typeof(Matrix3ShaderProperty) },
{ typeof(Matrix4x4), typeof(Matrix4ShaderProperty) },
// { typeof(Matrix4x4), typeof(MatrixShaderProperty) },
{ typeof(TextureSamplerState), typeof(SamplerStateShaderProperty) },
// { typeof(VirtualTexture), typeof(VirtualTextureShaderProperty) },
// { typeof(null), typeof(AbstractShaderProperty) },
{ typeof(bool), typeof(BooleanShaderProperty) },
{ typeof(Color), typeof(ColorShaderProperty) },
{ typeof(Cubemap), typeof(CubemapShaderProperty) },
{ typeof(Texture2DArray), typeof(Texture2DArrayShaderProperty) },
{ typeof(Texture2D), typeof(Texture2DShaderProperty) },
{ typeof(Texture3D), typeof(Texture3DShaderProperty) },
{ typeof(float), typeof(Vector1ShaderProperty) },
{ typeof(Vector2), typeof(Vector2ShaderProperty) },
{ typeof(Vector3), typeof(Vector3ShaderProperty) },
{ typeof(Vector4), typeof(Vector4ShaderProperty) },
// { typeof(float), typeof(VectorShaderProperty) },
// { typeof(null), typeof(MultiJsonInternal.UnknownShaderPropertyType) },
};
private static FieldInfo m_Properties, m_Keywords;
public static void AddMaterialKeyword<T>(Shader shader, string displayName, string referenceName = null)
{
var keywordType = typeof(T);
var graphData = GetGraphData(shader);
if (graphData == null) return;
if (m_Keywords == null) m_Keywords = typeof(GraphData).GetField("m_Keywords", (BindingFlags) (-1));
var keywords =
#if UNITY_2020_2_OR_NEWER
(List<JsonData<ShaderKeyword>>)
#else
(List<ShaderKeyword>)
#endif
m_Keywords.GetValue(graphData);
ShaderKeyword keyword = null;
if(keywordType == typeof(Enum))
keyword = new ShaderKeyword(KeywordType.Enum);
else if (keywordType == typeof(bool))
keyword = new ShaderKeyword(KeywordType.Boolean);
else {
Debug.LogError($"Can't create keyword of type {keywordType}, allowed types are Enum and bool");
return;
}
keyword.displayName = displayName;
if (!string.IsNullOrEmpty(referenceName))
keyword.overrideReferenceName = referenceName;
// JsonData has an implicit conversion operator
keywords.Add(keyword);
WriteShaderGraphToDisk(shader, graphData);
}
private static
#if UNITY_2020_2_OR_NEWER
List<JsonData<AbstractShaderProperty>>
#else
List<AbstractShaderProperty>
#endif
GetProperties(GraphData graphData)
{
if (m_Properties == null) m_Properties = typeof(GraphData).GetField("m_Properties", (BindingFlags) (-1));
var properties =
#if UNITY_2020_2_OR_NEWER
(List<JsonData<AbstractShaderProperty>>)
#else
(List<AbstractShaderProperty>)
#endif
m_Properties.GetValue(graphData);
return properties;
}
internal static void AddMaterialPropertyInternal(GraphData graphData, Type propertyType, string displayName, string referenceName = null)
{
var properties = GetProperties(graphData);
var prop = (AbstractShaderProperty) Activator.CreateInstance(propertyType, true);
prop.displayName = displayName;
if (!string.IsNullOrEmpty(referenceName))
prop.overrideReferenceName = referenceName;
// JsonData has an implicit conversion operator
properties.Add(prop);
}
public static void RemoveMaterialProperty(Shader shader, string referenceName)
{
var graphData = GetGraphData(shader);
if (graphData == null) return;
RemoveMaterialProperty(graphData, referenceName);
WriteShaderGraphToDisk(shader, graphData);
}
internal static void RemoveMaterialProperty(GraphData graphData, string referenceName)
{
var properties = GetProperties(graphData);
properties.RemoveAll(x => ((AbstractShaderProperty) x).referenceName.Equals(referenceName, StringComparison.Ordinal));
}
public static void AddMaterialPropertyInternal(Shader shader, Type propertyType, string displayName, string referenceName = null)
{
var graphData = GetGraphData(shader);
if (graphData == null) return;
if (propertyType == null) return;
AddMaterialPropertyInternal(graphData, propertyType, displayName, referenceName);
WriteShaderGraphToDisk(shader, graphData);
}
public static void AddMaterialPropertyInternal<T>(Shader shader, string displayName, string referenceName = null) where T: AbstractShaderProperty
{
AddMaterialPropertyInternal(shader, typeof(T), displayName, referenceName);
}
internal static void AddMaterialProperty(GraphData graphData, Type propertyType, string displayName, string referenceName = null)
{
AddMaterialPropertyInternal(graphData, FindTypeInTypeMap(propertyType), displayName, referenceName);
}
private static Type FindTypeInTypeMap(Type propertyType)
{
Type foundType = null;
foreach(var dict in TypeMaps)
{
if (dict == null) continue;
if (dict.ContainsKey(propertyType)) {
foundType = dict[propertyType];
break;
}
}
if(foundType == null)
{
Debug.LogError($"Can't add property of type {propertyType}: not found in type map. Allowed types: {string.Join("\n", TypeToPropertyTypeMap.Select(x => x.Key + " (" + x.Value + ")"))}");
return null;
}
return foundType;
}
public static void AddMaterialProperty(Shader shader, Type propertyType, string displayName, string referenceName = null)
{
AddMaterialPropertyInternal(shader, FindTypeInTypeMap(propertyType), displayName, referenceName);
}
public static void AddMaterialProperty<T>(Shader shader, string displayName, string referenceName = null)
{
AddMaterialProperty(shader, typeof(T), displayName, referenceName);
}
}
[Serializable]
class PropertyWizard : ScriptableWizard
{
public Shader targetShader;
public Material sourceMaterial;
public Shader sourceShader;
public bool hideMatchingProperties = false;
private SerializedProperty _targetShader;
private SerializedProperty _sourceMaterial, _sourceShader;
private SerializedObject serializedObject;
private void OnEnable()
{
serializedObject = new SerializedObject(this);
createButtonName = "Apply Properties";
_targetShader = serializedObject.FindProperty("targetShader");
_sourceMaterial = serializedObject.FindProperty("sourceMaterial");
_sourceShader = serializedObject.FindProperty("sourceShader");
}
[Serializable]
public class ShaderProperty
{
public string name;
public ShaderUtil.ShaderPropertyType propertyType;
public string description;
public bool isHidden = false;
}
private Dictionary<string, ShaderProperty> sourceProperties = new Dictionary<string, ShaderProperty>();
private Dictionary<string, ShaderProperty> targetProperties = new Dictionary<string, ShaderProperty>();
enum DrawMode
{
AddToTarget,
RemoveFromTarget
}
void OnGUI()
{
serializedObject.Update();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.BeginVertical();
EditorGUILayout.PropertyField(_sourceMaterial);
EditorGUILayout.PropertyField(_sourceShader);
EditorGUILayout.EndVertical();
EditorGUILayout.BeginVertical();
EditorGUILayout.PropertyField(_targetShader);
EditorGUILayout.EndVertical();
EditorGUILayout.EndHorizontal();
void AddProperty(GraphData graphData, ShaderUtil.ShaderPropertyType shaderPropertyType, string displayName, string referenceName)
{
Type ShaderPropertyTypeToType(ShaderUtil.ShaderPropertyType propertyType)
{
switch (propertyType)
{
case ShaderUtil.ShaderPropertyType.Color:
return typeof(Color);
case ShaderUtil.ShaderPropertyType.Float:
return typeof(float);
case ShaderUtil.ShaderPropertyType.Range:
return typeof(float);
case ShaderUtil.ShaderPropertyType.TexEnv:
return typeof(Texture2D);
case ShaderUtil.ShaderPropertyType.Vector:
return typeof(Vector4);
default:
return null;
}
}
MarkdownSGExtensions.AddMaterialProperty(graphData, ShaderPropertyTypeToType(shaderPropertyType), displayName, referenceName);
}
void FillPropertyList(Shader shader, ref Dictionary<string, ShaderProperty> props)
{
if (props == null) props = new Dictionary<string, ShaderProperty>();
props.Clear();
var propertyCount = ShaderUtil.GetPropertyCount(shader);
for (int i = 0; i < propertyCount; i++)
{
var propName = ShaderUtil.GetPropertyName(shader, i);
if (props.ContainsKey(propName))
{
Debug.LogWarning("Duplicate property: " + propName, shader);
return;
}
props.Add(propName, new ShaderProperty()
{
name = propName,
description = ShaderUtil.GetPropertyDescription(shader, i),
propertyType = ShaderUtil.GetPropertyType(shader, i),
isHidden = ShaderUtil.IsShaderPropertyHidden(shader, i)
});
}
}
void Refresh() {
if (!sourceMaterial && !sourceShader) return;
FillPropertyList(sourceMaterial ? sourceMaterial.shader : sourceShader, ref sourceProperties);
FillPropertyList(targetShader, ref targetProperties);
}
void DrawElement(Rect rect, ShaderProperty property, bool existsInSource, DrawMode mode)
{
var c = GUI.color;
var baseColor = existsInSource ? Color.green : Color.white;
if (property.isHidden)
baseColor.a = 0.5f;
GUI.color = baseColor;
rect.height = 20;
property.name = EditorGUI.TextField(rect, property.name);
rect.y += rect.height;
property.description = EditorGUI.TextField(rect, property.description);
rect.y += rect.height;
property.propertyType = (ShaderUtil.ShaderPropertyType) EditorGUI.EnumPopup(rect, property.propertyType);
rect.y += rect.height;
// property.isHidden = EditorGUI.Toggle(rect, property.isHidden);
// rect.y += rect.height;
// rect.width *= 0.5f;
switch (mode)
{
case DrawMode.AddToTarget:
if (GUI.Button(rect, "Add to Target"))
{
if (!targetProperties.ContainsKey(property.name))
{
var graphData = MarkdownSGExtensions.GetGraphData(targetShader);
AddProperty(graphData, property.propertyType, property.description, property.name);
MarkdownSGExtensions.WriteShaderGraphToDisk(targetShader, graphData);
}
else
{
Debug.LogWarning("Property already exists: " + property.name + ", can't add again.");
}
}
break;
case DrawMode.RemoveFromTarget:
if (GUI.Button(rect, "Remove from Target"))
{
var graphData = MarkdownSGExtensions.GetGraphData(targetShader);
MarkdownSGExtensions.RemoveMaterialProperty(graphData, property.name);
MarkdownSGExtensions.WriteShaderGraphToDisk(targetShader, graphData);
}
break;
}
GUI.color = c;
}
GUILayout.Label("Property Wizard");
if (GUILayout.Button("Refresh"))
Refresh();
if(GUILayout.Button("Add All Source Properties to Target"))
{
var graphData = MarkdownSGExtensions.GetGraphData(targetShader);
foreach (var kvp in sourceProperties)
{
var prop = kvp.Value;
if(!targetProperties.ContainsKey(prop.name))
AddProperty(graphData, prop.propertyType, prop.description, prop.name);
}
MarkdownSGExtensions.WriteShaderGraphToDisk(targetShader, graphData);
}
hideMatchingProperties = EditorGUILayout.Toggle("Hide Matching Properties", hideMatchingProperties);
sp = EditorGUILayout.BeginScrollView(sp);
var draw = GUILayoutUtility.GetRect(position.width, Mathf.Max(sourceProperties.Count, targetProperties.Count) * 110);
draw.width /= 2;
int j = 0;
foreach(var prop in sourceProperties)
{
if(hideMatchingProperties && targetProperties.ContainsKey(prop.Key))
continue;
DrawElement(new Rect(draw.x, j * 110, draw.width, 110), prop.Value, targetProperties.ContainsKey(prop.Key), DrawMode.AddToTarget);
j++;
}
draw.x += draw.width;
j = 0;
foreach(var prop in targetProperties)
{
if(hideMatchingProperties && sourceProperties.ContainsKey(prop.Key))
continue;
DrawElement(new Rect(draw.x, j * 110, draw.width, 110), prop.Value, sourceProperties.ContainsKey(prop.Key), DrawMode.RemoveFromTarget);
j++;
}
EditorGUILayout.EndScrollView();
if (serializedObject.hasModifiedProperties)
{
serializedObject.ApplyModifiedProperties();
Refresh();
}
}
private Vector2 sp;
}
#endregion
}
#endif
================================================
FILE: package/Editor/Internal/ShaderGraph/Experimental/PropertyManipulation.cs.meta
================================================
fileFormatVersion: 2
guid: 142b6f14013f84d48bec529090658508
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/ShaderGraph/Experimental.meta
================================================
fileFormatVersion: 2
guid: 6e925d24a18428c4997205c5c61beccc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/ShaderGraph/MarkdownSGExtensions.cs
================================================
#if !NO_INTERNALS_ACCESS && UNITY_2019_4_OR_NEWER
#if UNITY_2021_2_OR_NEWER
#define SRP12_SG_REFACTORED
#endif
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using UnityEditor.Experimental.GraphView;
using UnityEditor.ShaderGraph.Drawing;
using UnityEditor.ShaderGraph.Internal;
using UnityEngine;
using UnityEngine.UIElements;
using Object = UnityEngine.Object;
#if UNITY_2020_2_OR_NEWER
#if SRP12_SG_REFACTORED
using UnityEditor.Rendering.BuiltIn.ShaderGraph;
#else
#if !UNITY_2021_2_OR_NEWER
using UnityEditor.ShaderGraph.Drawing.Views.Blackboard;
#endif
#endif
using UnityEditor.ShaderGraph.Serialization;
#else
#endif
namespace UnityEditor.ShaderGraph
{
public static partial class MarkdownSGExtensions
{
#if SRP12_SG_REFACTORED
[InitializeOnLoadMethod]
static void RegisterMarkdownHelpers()
{
MarkdownSGExtensions.RegisterCustomInspectorSetter(SetDefaultCustomInspector);
}
static bool SetDefaultCustomInspector(Target target, string customInspector)
{
if (target is BuiltInTarget builtInTarget)
{
if (builtInTarget.customEditorGUI.Equals(customInspector, StringComparison.Ordinal))
builtInTarget.customEditorGUI = null;
else
builtInTarget.customEditorGUI = customInspector;
return true;
}
return false;
}
#endif
internal static GraphData GetGraphData(AssetImporter importer, bool initializeGraph = false)
{
try
{
var path = importer.assetPath;
var textGraph = File.ReadAllText(path, Encoding.UTF8);
#if UNITY_2020_2_OR_NEWER
var graph = new GraphData
{
assetGuid = AssetDatabase.AssetPathToGUID(path)
};
MultiJson.Deserialize(graph, textGraph);
#else
var graph = JsonUtility.FromJson<GraphData>(textGraph);
#endif
if(initializeGraph)
{
graph.OnEnable();
graph.ValidateGraph();
}
return graph;
}
catch (ArgumentException e)
{
Debug.LogError("Couldn't get graph data for " + importer.assetPath + ": " + e);
return null;
}
}
internal static GraphData GetGraphData(Shader shader, bool initializeGraph = false)
{
if (!AssetDatabase.Contains(shader)) return null;
var assetPath = AssetDatabase.GetAssetPath(shader);
var assetImporter = AssetImporter.GetAtPath(assetPath);
if (assetImporter is ShaderGraphImporter shaderGraphImporter)
return GetGraphData(shaderGraphImporter, initializeGraph);
return null;
}
internal static void WriteShaderGraphToDisk(Shader shader, GraphData graphData)
{
#if UNITY_2020_2_OR_NEWER
File.WriteAllText(AssetDatabase.GetAssetPath(shader), MultiJson.Serialize(graphData));
#else
File.WriteAllText(AssetDatabase.GetAssetPath(shader), JsonUtility.ToJson(graphData));
#endif
AssetDatabase.Refresh();
}
public static string GetDefaultCustomInspectorFromShader(Shader shader)
{
var graphData = GetGraphData(shader);
string customInspector = null;
if (graphData != null)
{
foreach (var getter in CustomInspectorGetters)
{
var inspector = getter(graphData);
if (!string.IsNullOrEmpty(inspector))
{
customInspector = inspector;
break;
}
}
}
foreach (var customGetter in CustomBaseShaderGUIGetters)
{
if(customGetter == null) continue;
var inspector = customGetter(shader);
if (!string.IsNullOrEmpty(inspector))
{
customInspector = inspector;
break;
}
}
// foreach (var target in graphData.allPotentialTargets)
// Debug.Log("Potential Target: " + target.displayName);
// HDShaderUtils.IsHDRPShader
// var shaderID = HDShaderUtils.GetShaderEnumFromShader(shader);
// var hdMetadata = AssetDatabase.LoadAssetAtPath<HDMetadata>(assetPath);
// Debug.Log("Shader ID: " + shaderID);
// HDSubTarget.Setup
return customInspector;
}
private const string CustomEditorGUI = "Needle.MarkdownShaderGUI";
[MenuItem("CONTEXT/Material/Toggle ShaderGraph Markdown", true)]
static bool ToggleShaderGraphMarkdownValidate(MenuCommand command)
{
if (command.context is Material mat)
return MarkdownSGExtensions.GetGraphData(mat.shader) != null;
return false;
}
[MenuItem("CONTEXT/Material/Toggle ShaderGraph Markdown", false, 700)]
static void ToggleShaderGraphMarkdown(MenuCommand command)
{
if (command.context is Material mat)
{
var graphData = MarkdownSGExtensions.GetGraphData(mat.shader);
#if UNITY_2020_2_OR_NEWER
foreach (var target in graphData.activeTargets)
{
foreach (var setter in CustomInspectorSetters)
{
setter(target, CustomEditorGUI);
}
}
#else
if (graphData.outputNode is UnityEditor.ShaderGraph.MasterNode masterNode)
{
var canChangeShaderGUI = masterNode as UnityEditor.Graphing.ICanChangeShaderGUI;
// GenerationUtils.FinalCustomEditorString(canChangeShaderGUI);
if (canChangeShaderGUI.OverrideEnabled)
{
canChangeShaderGUI.OverrideEnabled = false;
canChangeShaderGUI.ShaderGUIOverride = null;
}
else
{
canChangeShaderGUI.OverrideEnabled = true;
canChangeShaderGUI.ShaderGUIOverride = CustomEditorGUI;
}
}
#endif
MarkdownSGExtensions.WriteShaderGraphToDisk(mat.shader, graphData);
}
}
private static readonly List<Func<GraphData, string>> CustomInspectorGetters = new List<Func<GraphData, string>>();
internal static void RegisterCustomInspectorGetter(Func<GraphData, string> func)
{
CustomInspectorGetters.Add(func);
}
private static readonly List<Func<Shader, string>> CustomBaseShaderGUIGetters = new List<Func<Shader, string>>();
public static void RegisterCustomBaseShaderGUI(Func<Shader, string> func)
{
CustomBaseShaderGUIGetters.Add(func);
}
#if UNITY_2020_2_OR_NEWER
private static readonly List<Func<Target, string, bool>> CustomInspectorSetters = new List<Func<Target, string, bool>>();
internal static void RegisterCustomInspectorSetter(Func<Target, string, bool> func)
{
CustomInspectorSetters.Add(func);
}
#endif
#region Blackboard Access Helpers
private static FieldInfo m_InputRows;
public static Dictionary<ShaderInput, VisualElement> GetInputRowDictionaryFromController(object controllerObject)
{
#if !UNITY_2021_2_OR_NEWER
var provider = (BlackboardProvider) controllerObject;
if (provider != null)
{
if(m_InputRows == null) m_InputRows = typeof(BlackboardProvider).GetField("m_InputRows", (BindingFlags) (-1));
var inputRows = (Dictionary<ShaderInput, BlackboardRow>) m_InputRows?.GetValue(provider);
return inputRows?.ToDictionary(x => x.Key, x => (VisualElement) x.Value);
}
#endif
#if UNITY_2021_2_OR_NEWER
var controller = (BlackboardController) controllerObject;
if(controller != null)
{
return controller.Model.properties.ToDictionary(x => (ShaderInput) x, x => (VisualElement) controller.GetBlackboardRow(x));
}
#endif
return null;
}
public static List<VisualElement> GetBlackboardElements(VisualElement blackboard)
{
var blackboardFieldQuery = blackboard.Query<BlackboardField>().Visible().ToList();
if(blackboardFieldQuery.Count > 0)
return blackboardFieldQuery.Cast<VisualElement>().ToList();
#if SRP12_SG_REFACTORED
return blackboard.Query<SGBlackboardField>().Visible().ToList().Cast<VisualElement>().ToList();
#else
return new List<VisualElement>();
#endif
}
public static string GetBlackboardFieldText(VisualElement fieldView)
{
if (fieldView is BlackboardField field1) return field1.text;
#if SRP12_SG_REFACTORED
if (fieldView is SGBlackboardField field2) return field2.text;
#endif
return "unknown";
}
public static void SetBlackboardFieldTypeText(VisualElement fieldView, string toString)
{
if (fieldView is BlackboardField field1) field1.typeText = toString;
#if SRP12_SG_REFACTORED
if (fieldView is SGBlackboardField field2) field2.typeText = toString;
#endif
}
public static bool ElementIsBlackboardRow(VisualElement element)
{
if (element is BlackboardRow) return true;
#if UNITY_2021_2_OR_NEWER
if (element is SGBlackboardRow) return true;
#endif
return false;
}
#endregion
public static ShaderGUI CreateShaderGUI(string defaultCustomInspector)
{
var type = typeof(EditorWindow).Assembly.GetType("UnityEditor.ShaderGUIUtility");
var method = type?.GetMethod("CreateShaderGUI", (BindingFlags)(-1));
if (method != null)
return (ShaderGUI) method.Invoke(null, new object[]{defaultCustomInspector});
return null;
}
#if SRP12_SG_REFACTORED
public static IEnumerable<(string categoryName, int categoryHash, IEnumerable<string> properties)> CollectCategories(Shader s)
{
string path = AssetDatabase.GetAssetPath(s);
ShaderGraphMetadata metadata = null;
foreach (var obj in AssetDatabase.LoadAllAssetsAtPath(path))
{
if (obj is ShaderGraphMetadata meta)
{
metadata = meta;
var categories = metadata.categoryDatas
.Select(x => (x.categoryName, x.GetHashCode(), x.propertyDatas.Select(x => x.referenceName)));
return categories;
}
}
return null;
}
#endif
public class WrappedShaderKeyword
{
internal ShaderKeyword keyword;
}
public static WrappedShaderKeyword FindKeywordData(Shader shader, string keywordRef)
{
// collect keywords from graph and first level of child sub graphs
// (shader graph only generates shader_feature / multi_compile for that first level it seems)
var graphData = GetGraphData(shader);
if (graphData == null) return null;
var shaderKeywords = new KeywordCollector();
foreach (var node in graphData.GetNodes<SubGraphNode>())
node.CollectShaderKeywords(shaderKeywords, GenerationMode.ForReals);
graphData.CollectShaderKeywords(shaderKeywords, GenerationMode.ForReals);
var keyword = shaderKeywords.keywords.FirstOrDefault(x => x.referenceName == keywordRef);
if (keyword == null) return null;
return new WrappedShaderKeyword() { keyword = keyword };
}
public static void DrawShaderKeywordProperty(MaterialEditor editor, WrappedShaderKeyword keyword, string tooltip, bool showPropertyNames = false)
{
var mat = (Material) editor.target;
switch (keyword.keyword.keywordType)
{
case KeywordType.Boolean:
var isSet = mat.IsKeywordEnabled(keyword.keyword.referenceName);
var newValue = EditorGUILayout.Toggle(new GUIContent(showPropertyNames ? keyword.keyword.referenceName : keyword.keyword.displayName, tooltip), isSet);
if (isSet != newValue)
{
Undo.RegisterCompleteObjectUndo(mat, "Set " + keyword.keyword.displayName + " to " + newValue);
if (newValue) mat.EnableKeyword(keyword.keyword.referenceName);
else mat.DisableKeyword(keyword.keyword.referenceName);
}
break;
case KeywordType.Enum:
var keywordEntries = keyword.keyword.entries;
var keywordReferenceName = keyword.keyword.referenceName + "_";
// get selected index based on set keywords
var currentIndex = 0;
for (int i = 0; i < keywordEntries.Count; i++)
{
if (mat.IsKeywordEnabled(keywordReferenceName + keywordEntries[i].referenceName))
{
currentIndex = i;
break;
}
}
var newIndex = EditorGUILayout.Popup(new GUIContent(showPropertyNames ? keyword.keyword.referenceName : keyword.keyword.displayName, tooltip), currentIndex, keywordEntries.Select(x => x.displayName).ToArray());
if (newIndex != currentIndex)
{
Undo.RegisterCompleteObjectUndo(mat, "Set " + keyword.keyword.displayName + " to " + keywordReferenceName + keywordEntries[newIndex].referenceName);
for (int i = 0; i < keywordEntries.Count; i++)
{
if (i == newIndex) mat.EnableKeyword(keywordReferenceName + keywordEntries[i].referenceName);
else mat.DisableKeyword(keywordReferenceName + keywordEntries[i].referenceName);
}
}
break;
}
}
public static string GetShaderPathForWindow(EditorWindow wnd)
{
if (!(wnd is MaterialGraphEditWindow editWindow)) return null;
return AssetDatabase.GUIDToAssetPath(editWindow.selectedGuid);
}
public static bool IsSubGraph(EditorWindow wnd)
{
if (!(wnd is MaterialGraphEditWindow editWindow)) return false;
#if UNITY_2020_3_OR_NEWER
return editWindow.graphObject != null && editWindow.graphObject.graph != null && editWindow.graphObject.graph.isSubGraph;
#else
return false; // graphObject not easily accessible (would need reflection)
#endif
}
}
}
#endif
================================================
FILE: package/Editor/Internal/ShaderGraph/MarkdownSGExtensions.cs.meta
================================================
fileFormatVersion: 2
guid: c0665c0edaae93a488e613a5eba6cca8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/ShaderGraph/Needle.ShaderGraphMarkdown.SGInternal.asmref
================================================
{
"reference": "GUID:be0903cd8e1546f498710afdc59db5eb"
}
================================================
FILE: package/Editor/Internal/ShaderGraph/Needle.ShaderGraphMarkdown.SGInternal.asmref.meta
================================================
fileFormatVersion: 2
guid: 2b229227776b1064893d170fadd807fa
AssemblyDefinitionReferenceImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/ShaderGraph.meta
================================================
fileFormatVersion: 2
guid: fcc7194c6b4ab234380210378dde895c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: package/Editor/Internal/URP/MarkdownURPExtensions.cs
================================================
#if !NO_INTERNALS_ACCESS && UNITY_2019_4_OR_NEWER
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
usi
gitextract_2ejx0txv/
├── .github/
│ └── workflows/
│ └── Release.yml
├── .gitignore
├── README.md
├── package/
│ ├── .npmignore
│ ├── Changelog.md
│ ├── Changelog.md.meta
│ ├── Documentation/
│ │ └── Shader Graph Markdown - Documentation.pdf.meta
│ ├── Documentation.meta
│ ├── Editor/
│ │ ├── Drawers/
│ │ │ ├── GradientDrawer.cs
│ │ │ ├── GradientDrawer.cs.meta
│ │ │ ├── GradientGeneratorDrawer.cs
│ │ │ ├── GradientGeneratorDrawer.cs.meta
│ │ │ ├── InlineTextureDrawer.cs
│ │ │ ├── InlineTextureDrawer.cs.meta
│ │ │ ├── MarkdownMaterialPropertyDrawer.cs
│ │ │ ├── MarkdownMaterialPropertyDrawer.cs.meta
│ │ │ ├── MinMaxDrawer.cs
│ │ │ ├── MinMaxDrawer.cs.meta
│ │ │ ├── MultiPropertyDrawer.cs
│ │ │ ├── MultiPropertyDrawer.cs.meta
│ │ │ ├── VectorSliderDrawer.cs
│ │ │ └── VectorSliderDrawer.cs.meta
│ │ ├── Drawers.meta
│ │ ├── Extensions/
│ │ │ ├── LogicExpressionParser.cs
│ │ │ ├── LogicExpressionParser.cs.meta
│ │ │ ├── ShaderRefactoringWindow.cs
│ │ │ └── ShaderRefactoringWindow.cs.meta
│ │ ├── Extensions.meta
│ │ ├── Internal/
│ │ │ ├── Common/
│ │ │ │ ├── CommonInternalExtensions.cs
│ │ │ │ ├── CommonInternalExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdownCommonInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdownCommonInternal.asmref.meta
│ │ │ ├── Common.meta
│ │ │ ├── CommonExtensions.cs
│ │ │ ├── CommonExtensions.cs.meta
│ │ │ ├── HDRP/
│ │ │ │ ├── MarkdownHDExtensions.cs
│ │ │ │ ├── MarkdownHDExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdown.HDInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdown.HDInternal.asmref.meta
│ │ │ ├── HDRP.meta
│ │ │ ├── Needle.ShaderGraphMarkdown.Internal.asmdef
│ │ │ ├── Needle.ShaderGraphMarkdown.Internal.asmdef.meta
│ │ │ ├── ShaderGraph/
│ │ │ │ ├── Experimental/
│ │ │ │ │ ├── MarkdownBlackboardProperties.cs
│ │ │ │ │ ├── MarkdownBlackboardProperties.cs.meta
│ │ │ │ │ ├── PropertyManipulation.cs
│ │ │ │ │ └── PropertyManipulation.cs.meta
│ │ │ │ ├── Experimental.meta
│ │ │ │ ├── MarkdownSGExtensions.cs
│ │ │ │ ├── MarkdownSGExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdown.SGInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdown.SGInternal.asmref.meta
│ │ │ ├── ShaderGraph.meta
│ │ │ ├── URP/
│ │ │ │ ├── MarkdownURPExtensions.cs
│ │ │ │ ├── MarkdownURPExtensions.cs.meta
│ │ │ │ ├── Needle.ShaderGraphMarkdown.URPInternal.asmref
│ │ │ │ └── Needle.ShaderGraphMarkdown.URPInternal.asmref.meta
│ │ │ └── URP.meta
│ │ ├── Internal.meta
│ │ ├── MarkdownShaderGUI.cs
│ │ ├── MarkdownShaderGUI.cs.meta
│ │ ├── Needle/
│ │ │ ├── MarkdownNeedleIcons.cs
│ │ │ ├── MarkdownNeedleIcons.cs.meta
│ │ │ ├── logo-button.png.meta
│ │ │ ├── needlelogo.png.meta
│ │ │ └── needlelogo_white.png.meta
│ │ ├── Needle.ShaderGraphMarkdown.asmdef
│ │ ├── Needle.ShaderGraphMarkdown.asmdef.meta
│ │ ├── Needle.meta
│ │ ├── Resources/
│ │ │ ├── Styles/
│ │ │ │ ├── ShaderGraphMarkdown.uss
│ │ │ │ └── ShaderGraphMarkdown.uss.meta
│ │ │ └── Styles.meta
│ │ ├── Resources.meta
│ │ ├── Settings/
│ │ │ ├── ShaderGraphMarkdownSettings.cs
│ │ │ └── ShaderGraphMarkdownSettings.cs.meta
│ │ ├── Settings.meta
│ │ ├── ShaderGraphPropertyUI.cs
│ │ ├── ShaderGraphPropertyUI.cs.meta
│ │ ├── Shims/
│ │ │ ├── CoreEditorUtilsShims.cs
│ │ │ └── CoreEditorUtilsShims.cs.meta
│ │ └── Shims.meta
│ ├── Editor.meta
│ ├── Readme.md
│ ├── Readme.md.meta
│ ├── Samples~/
│ │ ├── Amplify/
│ │ │ ├── Markdown Amplify Shader.mat
│ │ │ ├── Markdown Amplify Shader.mat.meta
│ │ │ ├── Markdown Amplify Shader.shader
│ │ │ └── Markdown Amplify Shader.shader.meta
│ │ ├── Amplify.meta
│ │ ├── Built-In/
│ │ │ ├── Gradient Textures/
│ │ │ │ ├── SampleSurfaceShader_MyGradientTexture_1_Gradient.png.meta
│ │ │ │ └── SampleSurfaceShader_MyGradientTexture_2_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── SampleSurfaceShader.mat
│ │ │ ├── SampleSurfaceShader.mat.meta
│ │ │ ├── SampleSurfaceShader.shader
│ │ │ └── SampleSurfaceShader.shader.meta
│ │ ├── Built-In.meta
│ │ ├── HDRP 7+ (Unity 2019.4+)/
│ │ │ ├── SampleShader-HDRP7.shadergraph
│ │ │ ├── SampleShader-HDRP7.shadergraph.meta
│ │ │ ├── Shader Graphs_SampleShader-HDRP7.mat
│ │ │ └── Shader Graphs_SampleShader-HDRP7.mat.meta
│ │ ├── HDRP 7+ (Unity 2019.4+).meta
│ │ ├── URP 7+ (Unity 2019.4+)/
│ │ │ ├── Gradient Textures/
│ │ │ │ └── Shader Graphs_SampleShader-URP7_RampTexture_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── SampleShader-URP7.shadergraph
│ │ │ ├── SampleShader-URP7.shadergraph.meta
│ │ │ ├── Shader Graphs_SampleShader-URP7.mat
│ │ │ └── Shader Graphs_SampleShader-URP7.mat.meta
│ │ ├── URP 7+ (Unity 2019.4+).meta
│ │ ├── URP and HDRP 10+ (Unity 2020.2+)/
│ │ │ ├── Gradient Textures/
│ │ │ │ ├── Shader Graphs_SampleShader-SRP10_MyGradientTexture_1_Gradient.png.meta
│ │ │ │ └── Shader Graphs_SampleShader-SRP10_MyGradientTexture_2_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── SampleShader-SRP10.shadergraph
│ │ │ ├── SampleShader-SRP10.shadergraph.meta
│ │ │ ├── SampleShader-Unnamed Properties.shadergraph
│ │ │ ├── SampleShader-Unnamed Properties.shadergraph.meta
│ │ │ ├── Shader Graphs_SampleShader-SRP10.mat
│ │ │ ├── Shader Graphs_SampleShader-SRP10.mat.meta
│ │ │ ├── Shader Graphs_Unnamed Properties.mat
│ │ │ └── Shader Graphs_Unnamed Properties.mat.meta
│ │ ├── URP and HDRP 10+ (Unity 2020.2+).meta
│ │ ├── Uber Shader (Unity 2020.2+)/
│ │ │ ├── Cloth.mat
│ │ │ ├── Cloth.mat.meta
│ │ │ ├── FloatingSpheres.mat
│ │ │ ├── FloatingSpheres.mat.meta
│ │ │ ├── Floor.mat
│ │ │ ├── Floor.mat.meta
│ │ │ ├── FloorBorder.mat
│ │ │ ├── FloorBorder.mat.meta
│ │ │ ├── FloorSpheres.mat
│ │ │ ├── FloorSpheres.mat.meta
│ │ │ ├── Gradient Textures/
│ │ │ │ ├── Cloth_RampTexture_Gradient.png.meta
│ │ │ │ ├── Greybox_RampTexture_Gradient.png.meta
│ │ │ │ ├── Mat 1_RampTexture_Gradient.png.meta
│ │ │ │ ├── Mat 2_RampTexture_Gradient.png.meta
│ │ │ │ ├── Mat 3_RampTexture_Gradient.png.meta
│ │ │ │ ├── Rings_RampTexture_Gradient.png.meta
│ │ │ │ └── Spheres_RampTexture_Gradient.png.meta
│ │ │ ├── Gradient Textures.meta
│ │ │ ├── Models/
│ │ │ │ ├── MarkdownSampleObjects-1.fbx
│ │ │ │ ├── MarkdownSampleObjects-1.fbx.meta
│ │ │ │ ├── MarkdownSampleObjects-2.fbx
│ │ │ │ └── MarkdownSampleObjects-2.fbx.meta
│ │ │ ├── Models.meta
│ │ │ ├── Ring.mat
│ │ │ ├── Ring.mat.meta
│ │ │ ├── Sample Scene/
│ │ │ │ ├── LightingData.asset
│ │ │ │ ├── LightingData.asset.meta
│ │ │ │ ├── Markdown-SkyboxBlurred.mat
│ │ │ │ ├── Markdown-SkyboxBlurred.mat.meta
│ │ │ │ ├── Markdown-blurred_background.jpg.meta
│ │ │ │ ├── ReflectionProbe-0.exr
│ │ │ │ ├── ReflectionProbe-0.exr.meta
│ │ │ │ ├── ReflectionProbe-1.exr
│ │ │ │ ├── ReflectionProbe-1.exr.meta
│ │ │ │ ├── ReflectionProbe-2.exr
│ │ │ │ ├── ReflectionProbe-2.exr.meta
│ │ │ │ ├── ReflectionProbe-3.exr
│ │ │ │ ├── ReflectionProbe-3.exr.meta
│ │ │ │ ├── ReflectionProbe-4.exr
│ │ │ │ ├── ReflectionProbe-4.exr.meta
│ │ │ │ ├── Sample Scene Lighting.lighting
│ │ │ │ ├── Sample Scene Lighting.lighting.meta
│ │ │ │ ├── Volume Profile.asset
│ │ │ │ └── Volume Profile.asset.meta
│ │ │ ├── Sample Scene.meta
│ │ │ ├── Sample Scene.unity
│ │ │ ├── Sample Scene.unity.meta
│ │ │ ├── SampleUberShader.shadergraph
│ │ │ ├── SampleUberShader.shadergraph.meta
│ │ │ ├── SmallRings.mat
│ │ │ ├── SmallRings.mat.meta
│ │ │ ├── Torus.mat
│ │ │ └── Torus.mat.meta
│ │ └── Uber Shader (Unity 2020.2+).meta
│ ├── package.json
│ └── package.json.meta
└── projects/
├── ShadergraphMarkdown 2019.4/
│ ├── .vscode/
│ │ └── settings.json
│ ├── Needle.ShaderGraphMarkdown.Internal.csproj
│ ├── Needle.ShaderGraphMarkdown.csproj
│ ├── Packages/
│ │ ├── com.unity.asset-store-tools/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CHANGELOG.md.meta
│ │ │ ├── Editor/
│ │ │ │ ├── Api/
│ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ ├── AuthenticationBase.cs
│ │ │ │ │ │ ├── AuthenticationBase.cs.meta
│ │ │ │ │ │ ├── IAssetStoreApi.cs
│ │ │ │ │ │ ├── IAssetStoreApi.cs.meta
│ │ │ │ │ │ ├── IAssetStoreClient.cs
│ │ │ │ │ │ ├── IAssetStoreClient.cs.meta
│ │ │ │ │ │ ├── IAuthenticationType.cs
│ │ │ │ │ │ ├── IAuthenticationType.cs.meta
│ │ │ │ │ │ ├── IPackageUploader.cs
│ │ │ │ │ │ ├── IPackageUploader.cs.meta
│ │ │ │ │ │ ├── PackageUploaderBase.cs
│ │ │ │ │ │ └── PackageUploaderBase.cs.meta
│ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ ├── ApiUtility.cs
│ │ │ │ │ ├── ApiUtility.cs.meta
│ │ │ │ │ ├── AssetStoreApi.cs
│ │ │ │ │ ├── AssetStoreApi.cs.meta
│ │ │ │ │ ├── AssetStoreClient.cs
│ │ │ │ │ ├── AssetStoreClient.cs.meta
│ │ │ │ │ ├── CloudTokenAuthentication.cs
│ │ │ │ │ ├── CloudTokenAuthentication.cs.meta
│ │ │ │ │ ├── CredentialsAuthentication.cs
│ │ │ │ │ ├── CredentialsAuthentication.cs.meta
│ │ │ │ │ ├── Models/
│ │ │ │ │ │ ├── Category.cs
│ │ │ │ │ │ ├── Category.cs.meta
│ │ │ │ │ │ ├── Package.cs
│ │ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ │ ├── PackageAdditionalData.cs
│ │ │ │ │ │ ├── PackageAdditionalData.cs.meta
│ │ │ │ │ │ ├── User.cs
│ │ │ │ │ │ └── User.cs.meta
│ │ │ │ │ ├── Models.meta
│ │ │ │ │ ├── Responses/
│ │ │ │ │ │ ├── AssetStoreResponse.cs
│ │ │ │ │ │ ├── AssetStoreResponse.cs.meta
│ │ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs
│ │ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs.meta
│ │ │ │ │ │ ├── AuthenticationResponse.cs
│ │ │ │ │ │ ├── AuthenticationResponse.cs.meta
│ │ │ │ │ │ ├── CategoryDataResponse.cs
│ │ │ │ │ │ ├── CategoryDataResponse.cs.meta
│ │ │ │ │ │ ├── PackageThumbnailResponse.cs
│ │ │ │ │ │ ├── PackageThumbnailResponse.cs.meta
│ │ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs
│ │ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs.meta
│ │ │ │ │ │ ├── PackagesAdditionalDataResponse.cs
│ │ │ │ │ │ ├── PackagesAdditionalDataResponse.cs.meta
│ │ │ │ │ │ ├── PackagesDataResponse.cs
│ │ │ │ │ │ ├── PackagesDataResponse.cs.meta
│ │ │ │ │ │ ├── RefreshedPackageDataResponse.cs
│ │ │ │ │ │ ├── RefreshedPackageDataResponse.cs.meta
│ │ │ │ │ │ ├── UploadResponse.cs
│ │ │ │ │ │ └── UploadResponse.cs.meta
│ │ │ │ │ ├── Responses.meta
│ │ │ │ │ ├── SessionAuthentication.cs
│ │ │ │ │ ├── SessionAuthentication.cs.meta
│ │ │ │ │ ├── UnityPackageUploader.cs
│ │ │ │ │ ├── UnityPackageUploader.cs.meta
│ │ │ │ │ ├── UploadStatus.cs
│ │ │ │ │ └── UploadStatus.cs.meta
│ │ │ │ ├── Api.meta
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ ├── AssetStoreTools.cs
│ │ │ │ ├── AssetStoreTools.cs.meta
│ │ │ │ ├── AssetStoreToolsWindow.cs
│ │ │ │ ├── AssetStoreToolsWindow.cs.meta
│ │ │ │ ├── Constants.cs
│ │ │ │ ├── Constants.cs.meta
│ │ │ │ ├── Exporter/
│ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ ├── IPackageExporter.cs
│ │ │ │ │ │ ├── IPackageExporter.cs.meta
│ │ │ │ │ │ ├── IPreviewInjector.cs
│ │ │ │ │ │ ├── IPreviewInjector.cs.meta
│ │ │ │ │ │ ├── PackageExporterBase.cs
│ │ │ │ │ │ ├── PackageExporterBase.cs.meta
│ │ │ │ │ │ ├── PackageExporterSettings.cs
│ │ │ │ │ │ └── PackageExporterSettings.cs.meta
│ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ ├── DefaultExporterSettings.cs
│ │ │ │ │ ├── DefaultExporterSettings.cs.meta
│ │ │ │ │ ├── DefaultPackageExporter.cs
│ │ │ │ │ ├── DefaultPackageExporter.cs.meta
│ │ │ │ │ ├── LegacyExporterSettings.cs
│ │ │ │ │ ├── LegacyExporterSettings.cs.meta
│ │ │ │ │ ├── LegacyPackageExporter.cs
│ │ │ │ │ ├── LegacyPackageExporter.cs.meta
│ │ │ │ │ ├── PackageExporterResult.cs
│ │ │ │ │ ├── PackageExporterResult.cs.meta
│ │ │ │ │ ├── PreviewInjector.cs
│ │ │ │ │ └── PreviewInjector.cs.meta
│ │ │ │ ├── Exporter.meta
│ │ │ │ ├── Previews/
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs
│ │ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs.meta
│ │ │ │ │ │ │ ├── FileNameFormat.cs
│ │ │ │ │ │ │ ├── FileNameFormat.cs.meta
│ │ │ │ │ │ │ ├── GenerationType.cs
│ │ │ │ │ │ │ ├── GenerationType.cs.meta
│ │ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs
│ │ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs.meta
│ │ │ │ │ │ │ ├── PreviewDatabase.cs
│ │ │ │ │ │ │ ├── PreviewDatabase.cs.meta
│ │ │ │ │ │ │ ├── PreviewFormat.cs
│ │ │ │ │ │ │ ├── PreviewFormat.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerationResult.cs
│ │ │ │ │ │ │ ├── PreviewGenerationResult.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerationSettings.cs
│ │ │ │ │ │ │ ├── PreviewGenerationSettings.cs.meta
│ │ │ │ │ │ │ ├── PreviewMetadata.cs
│ │ │ │ │ │ │ └── PreviewMetadata.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Generators/
│ │ │ │ │ │ │ ├── Custom/
│ │ │ │ │ │ │ │ ├── AudioChannel.cs
│ │ │ │ │ │ │ │ ├── AudioChannel.cs.meta
│ │ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs
│ │ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs.meta
│ │ │ │ │ │ │ │ ├── Screenshotters/
│ │ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs
│ │ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs.meta
│ │ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs
│ │ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs.meta
│ │ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs
│ │ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs.meta
│ │ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs
│ │ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs.meta
│ │ │ │ │ │ │ │ │ ├── SceneScreenshotterSettings.cs
│ │ │ │ │ │ │ │ │ └── SceneScreenshotterSettings.cs.meta
│ │ │ │ │ │ │ │ ├── Screenshotters.meta
│ │ │ │ │ │ │ │ ├── TypeGenerators/
│ │ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs.meta
│ │ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromSceneSettings.cs
│ │ │ │ │ │ │ │ │ └── TypePreviewGeneratorFromSceneSettings.cs.meta
│ │ │ │ │ │ │ │ └── TypeGenerators.meta
│ │ │ │ │ │ │ ├── Custom.meta
│ │ │ │ │ │ │ ├── CustomPreviewGenerator.cs
│ │ │ │ │ │ │ ├── CustomPreviewGenerator.cs.meta
│ │ │ │ │ │ │ ├── IPreviewGenerator.cs
│ │ │ │ │ │ │ ├── IPreviewGenerator.cs.meta
│ │ │ │ │ │ │ ├── NativePreviewGenerator.cs
│ │ │ │ │ │ │ ├── NativePreviewGenerator.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorBase.cs
│ │ │ │ │ │ │ └── PreviewGeneratorBase.cs.meta
│ │ │ │ │ │ ├── Generators.meta
│ │ │ │ │ │ ├── Services/
│ │ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ │ ├── IPreviewService.cs
│ │ │ │ │ │ │ ├── IPreviewService.cs.meta
│ │ │ │ │ │ │ ├── PreviewServiceProvider.cs
│ │ │ │ │ │ │ └── PreviewServiceProvider.cs.meta
│ │ │ │ │ │ ├── Services.meta
│ │ │ │ │ │ ├── UI/
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── AssetPreview.cs
│ │ │ │ │ │ │ │ ├── AssetPreview.cs.meta
│ │ │ │ │ │ │ │ ├── AssetPreviewCollection.cs
│ │ │ │ │ │ │ │ ├── AssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetPreview.cs
│ │ │ │ │ │ │ │ ├── IAssetPreview.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs
│ │ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGeneratorSettings.cs
│ │ │ │ │ │ │ │ └── PreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ │ ├── AssetPreviewElement.cs
│ │ │ │ │ │ │ │ ├── AssetPreviewElement.cs.meta
│ │ │ │ │ │ │ │ ├── GridListElement.cs
│ │ │ │ │ │ │ │ ├── GridListElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewCollectionElement.cs
│ │ │ │ │ │ │ │ ├── PreviewCollectionElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewWindowDescriptionElement.cs
│ │ │ │ │ │ │ │ └── PreviewWindowDescriptionElement.cs.meta
│ │ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorWindow.cs
│ │ │ │ │ │ │ ├── PreviewGeneratorWindow.cs.meta
│ │ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ │ ├── PreviewListView.cs
│ │ │ │ │ │ │ │ └── PreviewListView.cs.meta
│ │ │ │ │ │ │ └── Views.meta
│ │ │ │ │ │ ├── UI.meta
│ │ │ │ │ │ ├── Utility/
│ │ │ │ │ │ │ ├── GraphicsUtility.cs
│ │ │ │ │ │ │ ├── GraphicsUtility.cs.meta
│ │ │ │ │ │ │ ├── PreviewConvertUtility.cs
│ │ │ │ │ │ │ ├── PreviewConvertUtility.cs.meta
│ │ │ │ │ │ │ ├── PreviewSceneUtility.cs
│ │ │ │ │ │ │ ├── PreviewSceneUtility.cs.meta
│ │ │ │ │ │ │ ├── RenderPipeline.cs
│ │ │ │ │ │ │ ├── RenderPipeline.cs.meta
│ │ │ │ │ │ │ ├── RenderPipelineUtility.cs
│ │ │ │ │ │ │ └── RenderPipelineUtility.cs.meta
│ │ │ │ │ │ └── Utility.meta
│ │ │ │ │ ├── Scripts.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ └── Styles.meta
│ │ │ │ ├── Previews.meta
│ │ │ │ ├── Unity.AssetStoreTools.Editor.asmdef
│ │ │ │ ├── Unity.AssetStoreTools.Editor.asmdef.meta
│ │ │ │ ├── Uploader/
│ │ │ │ │ ├── Icons/
│ │ │ │ │ │ ├── account-dark.png.meta
│ │ │ │ │ │ ├── account-light.png.meta
│ │ │ │ │ │ ├── open-in-browser.png.meta
│ │ │ │ │ │ ├── publisher-portal-dark.png.meta
│ │ │ │ │ │ └── publisher-portal-light.png.meta
│ │ │ │ │ ├── Icons.meta
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── IPackage.cs
│ │ │ │ │ │ │ │ ├── IPackage.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageContent.cs
│ │ │ │ │ │ │ │ ├── IPackageContent.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageGroup.cs
│ │ │ │ │ │ │ │ ├── IPackageGroup.cs.meta
│ │ │ │ │ │ │ │ ├── IWorkflow.cs
│ │ │ │ │ │ │ │ ├── IWorkflow.cs.meta
│ │ │ │ │ │ │ │ ├── IWorkflowServices.cs
│ │ │ │ │ │ │ │ ├── IWorkflowServices.cs.meta
│ │ │ │ │ │ │ │ ├── WorkflowBase.cs
│ │ │ │ │ │ │ │ └── WorkflowBase.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── AssetsWorkflow.cs
│ │ │ │ │ │ │ ├── AssetsWorkflow.cs.meta
│ │ │ │ │ │ │ ├── HybridPackageWorkflow.cs
│ │ │ │ │ │ │ ├── HybridPackageWorkflow.cs.meta
│ │ │ │ │ │ │ ├── Package.cs
│ │ │ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ │ │ ├── PackageContent.cs
│ │ │ │ │ │ │ ├── PackageContent.cs.meta
│ │ │ │ │ │ │ ├── PackageGroup.cs
│ │ │ │ │ │ │ ├── PackageGroup.cs.meta
│ │ │ │ │ │ │ ├── PackageSorting.cs
│ │ │ │ │ │ │ ├── PackageSorting.cs.meta
│ │ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ │ ├── AssetPath.cs
│ │ │ │ │ │ │ │ ├── AssetPath.cs.meta
│ │ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs
│ │ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs.meta
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs.meta
│ │ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs
│ │ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs.meta
│ │ │ │ │ │ │ │ ├── WorkflowStateData.cs
│ │ │ │ │ │ │ │ └── WorkflowStateData.cs.meta
│ │ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ │ ├── UnityPackageWorkflow.cs
│ │ │ │ │ │ │ ├── UnityPackageWorkflow.cs.meta
│ │ │ │ │ │ │ ├── WorkflowServices.cs
│ │ │ │ │ │ │ └── WorkflowServices.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Services/
│ │ │ │ │ │ │ ├── Analytics/
│ │ │ │ │ │ │ │ ├── AnalyticsService.cs
│ │ │ │ │ │ │ │ ├── AnalyticsService.cs.meta
│ │ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── BaseAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── BaseAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs
│ │ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs.meta
│ │ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs
│ │ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidationResultsSerializer.cs
│ │ │ │ │ │ │ │ │ └── ValidationResultsSerializer.cs.meta
│ │ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ │ ├── IAnalyticsService.cs
│ │ │ │ │ │ │ │ └── IAnalyticsService.cs.meta
│ │ │ │ │ │ │ ├── Analytics.meta
│ │ │ │ │ │ │ ├── Api/
│ │ │ │ │ │ │ │ ├── AuthenticationService.cs
│ │ │ │ │ │ │ │ ├── AuthenticationService.cs.meta
│ │ │ │ │ │ │ │ ├── IAuthenticationService.cs
│ │ │ │ │ │ │ │ ├── IAuthenticationService.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageDownloadingService.cs
│ │ │ │ │ │ │ │ ├── IPackageDownloadingService.cs.meta
│ │ │ │ │ │ │ │ ├── IPackageUploadingService.cs
│ │ │ │ │ │ │ │ ├── IPackageUploadingService.cs.meta
│ │ │ │ │ │ │ │ ├── PackageDownloadingService.cs
│ │ │ │ │ │ │ │ ├── PackageDownloadingService.cs.meta
│ │ │ │ │ │ │ │ ├── PackageUploadingService.cs
│ │ │ │ │ │ │ │ └── PackageUploadingService.cs.meta
│ │ │ │ │ │ │ ├── Api.meta
│ │ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ │ ├── IUploaderService.cs
│ │ │ │ │ │ │ ├── IUploaderService.cs.meta
│ │ │ │ │ │ │ ├── PackageFactory/
│ │ │ │ │ │ │ │ ├── IPackageFactoryService.cs
│ │ │ │ │ │ │ │ ├── IPackageFactoryService.cs.meta
│ │ │ │ │ │ │ │ ├── PackageFactoryService.cs
│ │ │ │ │ │ │ │ └── PackageFactoryService.cs.meta
│ │ │ │ │ │ │ ├── PackageFactory.meta
│ │ │ │ │ │ │ ├── UploaderServiceProvider.cs
│ │ │ │ │ │ │ └── UploaderServiceProvider.cs.meta
│ │ │ │ │ │ ├── Services.meta
│ │ │ │ │ │ ├── UI/
│ │ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ │ ├── ValidationElementBase.cs
│ │ │ │ │ │ │ │ │ ├── ValidationElementBase.cs.meta
│ │ │ │ │ │ │ │ │ ├── WorkflowElementBase.cs
│ │ │ │ │ │ │ │ │ └── WorkflowElementBase.cs.meta
│ │ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ │ ├── AccountToolbar.cs
│ │ │ │ │ │ │ │ ├── AccountToolbar.cs.meta
│ │ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs
│ │ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs.meta
│ │ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs
│ │ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs.meta
│ │ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs
│ │ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs.meta
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs
│ │ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs.meta
│ │ │ │ │ │ │ │ ├── LoadingSpinner.cs
│ │ │ │ │ │ │ │ ├── LoadingSpinner.cs.meta
│ │ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs
│ │ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageContentElement.cs
│ │ │ │ │ │ │ │ ├── PackageContentElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageElement.cs
│ │ │ │ │ │ │ │ ├── PackageElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageGroupElement.cs
│ │ │ │ │ │ │ │ ├── PackageGroupElement.cs.meta
│ │ │ │ │ │ │ │ ├── PackageListToolbar.cs
│ │ │ │ │ │ │ │ ├── PackageListToolbar.cs.meta
│ │ │ │ │ │ │ │ ├── PackageUploadElement.cs
│ │ │ │ │ │ │ │ ├── PackageUploadElement.cs.meta
│ │ │ │ │ │ │ │ ├── PathSelectionElement.cs
│ │ │ │ │ │ │ │ ├── PathSelectionElement.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewGenerationElement.cs
│ │ │ │ │ │ │ │ ├── PreviewGenerationElement.cs.meta
│ │ │ │ │ │ │ │ ├── UnityPackageWorkflowElement.cs
│ │ │ │ │ │ │ │ └── UnityPackageWorkflowElement.cs.meta
│ │ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ │ ├── LoginView.cs
│ │ │ │ │ │ │ │ ├── LoginView.cs.meta
│ │ │ │ │ │ │ │ ├── PackageListView.cs
│ │ │ │ │ │ │ │ └── PackageListView.cs.meta
│ │ │ │ │ │ │ └── Views.meta
│ │ │ │ │ │ └── UI.meta
│ │ │ │ │ ├── Scripts.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── LoginView/
│ │ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ │ ├── LoginView.meta
│ │ │ │ │ │ ├── PackageListView/
│ │ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ │ ├── PackageListView.meta
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── Styles.meta
│ │ │ │ │ ├── UploaderWindow.cs
│ │ │ │ │ └── UploaderWindow.cs.meta
│ │ │ │ ├── Uploader.meta
│ │ │ │ ├── Utility/
│ │ │ │ │ ├── ASDebug.cs
│ │ │ │ │ ├── ASDebug.cs.meta
│ │ │ │ │ ├── ASToolsPreferences.cs
│ │ │ │ │ ├── ASToolsPreferences.cs.meta
│ │ │ │ │ ├── ASToolsUpdater.cs
│ │ │ │ │ ├── ASToolsUpdater.cs.meta
│ │ │ │ │ ├── CacheUtil.cs
│ │ │ │ │ ├── CacheUtil.cs.meta
│ │ │ │ │ ├── FileUtility.cs
│ │ │ │ │ ├── FileUtility.cs.meta
│ │ │ │ │ ├── LegacyToolsRemover.cs
│ │ │ │ │ ├── LegacyToolsRemover.cs.meta
│ │ │ │ │ ├── PackageUtility.cs
│ │ │ │ │ ├── PackageUtility.cs.meta
│ │ │ │ │ ├── ServiceProvider.cs
│ │ │ │ │ ├── ServiceProvider.cs.meta
│ │ │ │ │ ├── StyleSelector.cs
│ │ │ │ │ ├── StyleSelector.cs.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── Updater/
│ │ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ │ └── Updater.meta
│ │ │ │ │ ├── Styles.meta
│ │ │ │ │ ├── SymlinkUtil.cs
│ │ │ │ │ └── SymlinkUtil.cs.meta
│ │ │ │ ├── Utility.meta
│ │ │ │ ├── Validator/
│ │ │ │ │ ├── Icons/
│ │ │ │ │ │ ├── error.png.meta
│ │ │ │ │ │ ├── error_d.png.meta
│ │ │ │ │ │ ├── success.png.meta
│ │ │ │ │ │ ├── success_d.png.meta
│ │ │ │ │ │ ├── undefined.png.meta
│ │ │ │ │ │ ├── undefined_d.png.meta
│ │ │ │ │ │ ├── warning.png.meta
│ │ │ │ │ │ └── warning_d.png.meta
│ │ │ │ │ ├── Icons.meta
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── Categories/
│ │ │ │ │ │ │ ├── CategoryEvaluator.cs
│ │ │ │ │ │ │ ├── CategoryEvaluator.cs.meta
│ │ │ │ │ │ │ ├── ValidatorCategory.cs
│ │ │ │ │ │ │ └── ValidatorCategory.cs.meta
│ │ │ │ │ │ ├── Categories.meta
│ │ │ │ │ │ ├── CurrentProjectValidator.cs
│ │ │ │ │ │ ├── CurrentProjectValidator.cs.meta
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs
│ │ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs.meta
│ │ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs
│ │ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs.meta
│ │ │ │ │ │ │ ├── MessageActions/
│ │ │ │ │ │ │ │ ├── HighlightObjectAction.cs
│ │ │ │ │ │ │ │ ├── HighlightObjectAction.cs.meta
│ │ │ │ │ │ │ │ ├── IMessageAction.cs
│ │ │ │ │ │ │ │ ├── IMessageAction.cs.meta
│ │ │ │ │ │ │ │ ├── OpenAssetAction.cs
│ │ │ │ │ │ │ │ └── OpenAssetAction.cs.meta
│ │ │ │ │ │ │ ├── MessageActions.meta
│ │ │ │ │ │ │ ├── TestResult.cs
│ │ │ │ │ │ │ ├── TestResult.cs.meta
│ │ │ │ │ │ │ ├── TestResultMessage.cs
│ │ │ │ │ │ │ ├── TestResultMessage.cs.meta
│ │ │ │ │ │ │ ├── TestResultObject.cs
│ │ │ │ │ │ │ ├── TestResultObject.cs.meta
│ │ │ │ │ │ │ ├── TestResultStatus.cs
│ │ │ │ │ │ │ ├── TestResultStatus.cs.meta
│ │ │ │ │ │ │ ├── ValidationResult.cs
│ │ │ │ │ │ │ ├── ValidationResult.cs.meta
│ │ │ │ │ │ │ ├── ValidationSettings.cs
│ │ │ │ │ │ │ ├── ValidationSettings.cs.meta
│ │ │ │ │ │ │ ├── ValidationStatus.cs
│ │ │ │ │ │ │ ├── ValidationStatus.cs.meta
│ │ │ │ │ │ │ ├── ValidationType.cs
│ │ │ │ │ │ │ └── ValidationType.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── ExternalProjectValidator.cs
│ │ │ │ │ │ ├── ExternalProjectValidator.cs.meta
│ │ │ │ │ │ ├── IValidator.cs
│ │ │ │ │ │ ├── IValidator.cs.meta
│ │ │ │ │ │ ├── Services/
│ │ │ │ │ │ │ ├── CachingService/
│ │ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ │ ├── ICachingService.cs.meta
│ │ │ │ │ │ │ │ ├── PreviewDatabaseContractResolver.cs
│ │ │ │ │ │ │ │ └── PreviewDatabaseContractResolver.cs.meta
│ │ │ │ │ │ │ ├── CachingService.meta
│ │ │ │ │ │ │ ├── IValidatorService.cs
│ │ │ │ │ │ │ ├── IValidatorService.cs.meta
│ │ │ │ │ │ │ ├── Validation/
│ │ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IModelUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── IModelUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs
│ │ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs.meta
│ │ │ │ │ │ │ │ │ ├── IScriptUtilityService.cs
│ │ │ │ │ │ │ │ │ └── IScriptUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ │ ├── AssetUtilityService.cs
│ │ │ │ │ │ │ │ ├── AssetUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ │ ├── ArchiveType.cs
│ │ │ │ │ │ │ │ │ ├── ArchiveType.cs.meta
│ │ │ │ │ │ │ │ │ ├── AssetEnumerator.cs
│ │ │ │ │ │ │ │ │ ├── AssetEnumerator.cs.meta
│ │ │ │ │ │ │ │ │ ├── AssetType.cs
│ │ │ │ │ │ │ │ │ ├── AssetType.cs.meta
│ │ │ │ │ │ │ │ │ ├── LogEntry.cs
│ │ │ │ │ │ │ │ │ └── LogEntry.cs.meta
│ │ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs
│ │ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── MeshUtilityService.cs
│ │ │ │ │ │ │ │ ├── MeshUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── ModelUtilityService.cs
│ │ │ │ │ │ │ │ ├── ModelUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── SceneUtilityService.cs
│ │ │ │ │ │ │ │ ├── SceneUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── ScriptUtilityService.cs
│ │ │ │ │ │ │ │ └── ScriptUtilityService.cs.meta
│ │ │ │ │ │ │ ├── Validation.meta
│ │ │ │ │ │ │ ├── ValidatorServiceProvider.cs
│ │ │ │ │ │ │ └── ValidatorServiceProvider.cs.meta
│ │ │ │ │ │ ├── Services.meta
│ │ │ │ │ │ ├── Test Definitions/
│ │ │ │ │ │ │ ├── AutomatedTest.cs
│ │ │ │ │ │ │ ├── AutomatedTest.cs.meta
│ │ │ │ │ │ │ ├── GenericTestConfig.cs
│ │ │ │ │ │ │ ├── GenericTestConfig.cs.meta
│ │ │ │ │ │ │ ├── ITestConfig.cs
│ │ │ │ │ │ │ ├── ITestConfig.cs.meta
│ │ │ │ │ │ │ ├── ITestScript.cs
│ │ │ │ │ │ │ ├── ITestScript.cs.meta
│ │ │ │ │ │ │ ├── Scriptable Objects/
│ │ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs
│ │ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs.meta
│ │ │ │ │ │ │ │ ├── Editor/
│ │ │ │ │ │ │ │ │ ├── ValidationTestScriptableObjectInspector.cs
│ │ │ │ │ │ │ │ │ └── ValidationTestScriptableObjectInspector.cs.meta
│ │ │ │ │ │ │ │ ├── Editor.meta
│ │ │ │ │ │ │ │ ├── ValidationTestScriptableObject.cs
│ │ │ │ │ │ │ │ └── ValidationTestScriptableObject.cs.meta
│ │ │ │ │ │ │ ├── Scriptable Objects.meta
│ │ │ │ │ │ │ ├── ValidationTest.cs
│ │ │ │ │ │ │ └── ValidationTest.cs.meta
│ │ │ │ │ │ ├── Test Definitions.meta
│ │ │ │ │ │ ├── Test Methods/
│ │ │ │ │ │ │ ├── Generic/
│ │ │ │ │ │ │ │ ├── CheckAnimationClips.cs
│ │ │ │ │ │ │ │ ├── CheckAnimationClips.cs.meta
│ │ │ │ │ │ │ │ ├── CheckAudioClipping.cs
│ │ │ │ │ │ │ │ ├── CheckAudioClipping.cs.meta
│ │ │ │ │ │ │ │ ├── CheckColliders.cs
│ │ │ │ │ │ │ │ ├── CheckColliders.cs.meta
│ │ │ │ │ │ │ │ ├── CheckCompressedFiles.cs
│ │ │ │ │ │ │ │ ├── CheckCompressedFiles.cs.meta
│ │ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs
│ │ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckFileMenuNames.cs
│ │ │ │ │ │ │ │ ├── CheckFileMenuNames.cs.meta
│ │ │ │ │ │ │ │ ├── CheckLODs.cs
│ │ │ │ │ │ │ │ ├── CheckLODs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckLineEndings.cs
│ │ │ │ │ │ │ │ ├── CheckLineEndings.cs.meta
│ │ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs
│ │ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs.meta
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs
│ │ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs.meta
│ │ │ │ │ │ │ │ ├── CheckModelImportLogs.cs
│ │ │ │ │ │ │ │ ├── CheckModelImportLogs.cs.meta
│ │ │ │ │ │ │ │ ├── CheckModelOrientation.cs
│ │ │ │ │ │ │ │ ├── CheckModelOrientation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckModelTypes.cs
│ │ │ │ │ │ │ │ ├── CheckModelTypes.cs.meta
│ │ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs
│ │ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPackageNaming.cs
│ │ │ │ │ │ │ │ ├── CheckPackageNaming.cs.meta
│ │ │ │ │ │ │ │ ├── CheckParticleSystems.cs
│ │ │ │ │ │ │ │ ├── CheckParticleSystems.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPathLengths.cs
│ │ │ │ │ │ │ │ ├── CheckPathLengths.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs
│ │ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs.meta
│ │ │ │ │ │ │ │ ├── CheckScriptCompilation.cs
│ │ │ │ │ │ │ │ ├── CheckScriptCompilation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckShaderCompilation.cs
│ │ │ │ │ │ │ │ ├── CheckShaderCompilation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckTextureDimensions.cs
│ │ │ │ │ │ │ │ ├── CheckTextureDimensions.cs.meta
│ │ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs
│ │ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveJPGFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveJPGFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs
│ │ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs.meta
│ │ │ │ │ │ │ │ ├── RemoveVideoFiles.cs
│ │ │ │ │ │ │ │ └── RemoveVideoFiles.cs.meta
│ │ │ │ │ │ │ ├── Generic.meta
│ │ │ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ │ │ ├── CheckDemoScenes.cs
│ │ │ │ │ │ │ │ ├── CheckDemoScenes.cs.meta
│ │ │ │ │ │ │ │ ├── CheckDocumentation.cs
│ │ │ │ │ │ │ │ ├── CheckDocumentation.cs.meta
│ │ │ │ │ │ │ │ ├── CheckPackageSize.cs
│ │ │ │ │ │ │ │ ├── CheckPackageSize.cs.meta
│ │ │ │ │ │ │ │ ├── CheckProjectTemplateAssets.cs
│ │ │ │ │ │ │ │ └── CheckProjectTemplateAssets.cs.meta
│ │ │ │ │ │ │ └── UnityPackage.meta
│ │ │ │ │ │ ├── Test Methods.meta
│ │ │ │ │ │ ├── UI/
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ │ ├── IValidatorResults.cs
│ │ │ │ │ │ │ │ │ ├── IValidatorResults.cs.meta
│ │ │ │ │ │ │ │ │ ├── IValidatorSettings.cs
│ │ │ │ │ │ │ │ │ ├── IValidatorSettings.cs.meta
│ │ │ │ │ │ │ │ │ ├── IValidatorTest.cs
│ │ │ │ │ │ │ │ │ ├── IValidatorTest.cs.meta
│ │ │ │ │ │ │ │ │ ├── IValidatorTestGroup.cs
│ │ │ │ │ │ │ │ │ └── IValidatorTestGroup.cs.meta
│ │ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ │ │ ├── ValidatorStateData.cs
│ │ │ │ │ │ │ │ │ ├── ValidatorStateData.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs
│ │ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs
│ │ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs.meta
│ │ │ │ │ │ │ │ │ ├── ValidatorStateSettings.cs
│ │ │ │ │ │ │ │ │ └── ValidatorStateSettings.cs.meta
│ │ │ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ │ │ ├── ValidatorResults.cs
│ │ │ │ │ │ │ │ ├── ValidatorResults.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorSettings.cs
│ │ │ │ │ │ │ │ ├── ValidatorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTest.cs
│ │ │ │ │ │ │ │ ├── ValidatorTest.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTestGroup.cs
│ │ │ │ │ │ │ │ └── ValidatorTestGroup.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ │ ├── ValidatorButtonElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorButtonElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorPathsElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorPathsElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorResultsElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorResultsElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTestElement.cs
│ │ │ │ │ │ │ │ ├── ValidatorTestElement.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorTestGroupElement.cs
│ │ │ │ │ │ │ │ └── ValidatorTestGroupElement.cs.meta
│ │ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ │ ├── ValidatorWindow.cs
│ │ │ │ │ │ │ ├── ValidatorWindow.cs.meta
│ │ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ │ ├── ValidatorTestsView.cs
│ │ │ │ │ │ │ │ └── ValidatorTestsView.cs.meta
│ │ │ │ │ │ │ └── Views.meta
│ │ │ │ │ │ ├── UI.meta
│ │ │ │ │ │ ├── Utility/
│ │ │ │ │ │ │ ├── ValidatorUtility.cs
│ │ │ │ │ │ │ └── ValidatorUtility.cs.meta
│ │ │ │ │ │ ├── Utility.meta
│ │ │ │ │ │ ├── ValidatorBase.cs
│ │ │ │ │ │ └── ValidatorBase.cs.meta
│ │ │ │ │ ├── Scripts.meta
│ │ │ │ │ ├── Styles/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── Styles.meta
│ │ │ │ │ ├── Tests/
│ │ │ │ │ │ ├── Generic/
│ │ │ │ │ │ │ ├── Check Animation Clips.asset
│ │ │ │ │ │ │ ├── Check Animation Clips.asset.meta
│ │ │ │ │ │ │ ├── Check Audio Clipping.asset
│ │ │ │ │ │ │ ├── Check Audio Clipping.asset.meta
│ │ │ │ │ │ │ ├── Check Colliders.asset
│ │ │ │ │ │ │ ├── Check Colliders.asset.meta
│ │ │ │ │ │ │ ├── Check Compressed Files.asset
│ │ │ │ │ │ │ ├── Check Compressed Files.asset.meta
│ │ │ │ │ │ │ ├── Check Empty Prefabs.asset
│ │ │ │ │ │ │ ├── Check Empty Prefabs.asset.meta
│ │ │ │ │ │ │ ├── Check File Menu Names.asset
│ │ │ │ │ │ │ ├── Check File Menu Names.asset.meta
│ │ │ │ │ │ │ ├── Check LODs.asset
│ │ │ │ │ │ │ ├── Check LODs.asset.meta
│ │ │ │ │ │ │ ├── Check Line Endings.asset
│ │ │ │ │ │ │ ├── Check Line Endings.asset.meta
│ │ │ │ │ │ │ ├── Check Mesh Prefabs.asset
│ │ │ │ │ │ │ ├── Check Mesh Prefabs.asset.meta
│ │ │ │ │ │ │ ├── Check Missing Components in Assets.asset
│ │ │ │ │ │ │ ├── Check Missing Components in Assets.asset.meta
│ │ │ │ │ │ │ ├── Check Missing Components in Scenes.asset
│ │ │ │ │ │ │ ├── Check Missing Components in Scenes.asset.meta
│ │ │ │ │ │ │ ├── Check Model Import Logs.asset
│ │ │ │ │ │ │ ├── Check Model Import Logs.asset.meta
│ │ │ │ │ │ │ ├── Check Model Orientation.asset
│ │ │ │ │ │ │ ├── Check Model Orientation.asset.meta
│ │ │ │ │ │ │ ├── Check Model Types.asset
│ │ │ │ │ │ │ ├── Check Model Types.asset.meta
│ │ │ │ │ │ │ ├── Check Normal Map Textures.asset
│ │ │ │ │ │ │ ├── Check Normal Map Textures.asset.meta
│ │ │ │ │ │ │ ├── Check Package Naming.asset
│ │ │ │ │ │ │ ├── Check Package Naming.asset.meta
│ │ │ │ │ │ │ ├── Check Particle Systems.asset
│ │ │ │ │ │ │ ├── Check Particle Systems.asset.meta
│ │ │ │ │ │ │ ├── Check Path Lengths.asset
│ │ │ │ │ │ │ ├── Check Path Lengths.asset.meta
│ │ │ │ │ │ │ ├── Check Prefab Transforms.asset
│ │ │ │ │ │ │ ├── Check Prefab Transforms.asset.meta
│ │ │ │ │ │ │ ├── Check Script Compilation.asset
│ │ │ │ │ │ │ ├── Check Script Compilation.asset.meta
│ │ │ │ │ │ │ ├── Check Shader Compilation.asset
│ │ │ │ │ │ │ ├── Check Shader Compilation.asset.meta
│ │ │ │ │ │ │ ├── Check Texture Dimensions.asset
│ │ │ │ │ │ │ ├── Check Texture Dimensions.asset.meta
│ │ │ │ │ │ │ ├── Check Type Namespaces.asset
│ │ │ │ │ │ │ ├── Check Type Namespaces.asset.meta
│ │ │ │ │ │ │ ├── Remove Executable Files.asset
│ │ │ │ │ │ │ ├── Remove Executable Files.asset.meta
│ │ │ │ │ │ │ ├── Remove JPG Files.asset
│ │ │ │ │ │ │ ├── Remove JPG Files.asset.meta
│ │ │ │ │ │ │ ├── Remove JavaScript Files.asset
│ │ │ │ │ │ │ ├── Remove JavaScript Files.asset.meta
│ │ │ │ │ │ │ ├── Remove Lossy Audio Files.asset
│ │ │ │ │ │ │ ├── Remove Lossy Audio Files.asset.meta
│ │ │ │ │ │ │ ├── Remove Mixamo Files.asset
│ │ │ │ │ │ │ ├── Remove Mixamo Files.asset.meta
│ │ │ │ │ │ │ ├── Remove SpeedTree Files.asset
│ │ │ │ │ │ │ ├── Remove SpeedTree Files.asset.meta
│ │ │ │ │ │ │ ├── Remove Video Files.asset
│ │ │ │ │ │ │ └── Remove Video Files.asset.meta
│ │ │ │ │ │ ├── Generic.meta
│ │ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ │ ├── Check Demo Scenes.asset
│ │ │ │ │ │ │ ├── Check Demo Scenes.asset.meta
│ │ │ │ │ │ │ ├── Check Documentation.asset
│ │ │ │ │ │ │ ├── Check Documentation.asset.meta
│ │ │ │ │ │ │ ├── Check Package Size.asset
│ │ │ │ │ │ │ ├── Check Package Size.asset.meta
│ │ │ │ │ │ │ ├── Check Project Template Assets.asset
│ │ │ │ │ │ │ └── Check Project Template Assets.asset.meta
│ │ │ │ │ │ └── UnityPackage.meta
│ │ │ │ │ └── Tests.meta
│ │ │ │ └── Validator.meta
│ │ │ ├── Editor.meta
│ │ │ ├── LICENSE.md
│ │ │ ├── LICENSE.md.meta
│ │ │ ├── package.json
│ │ │ └── package.json.meta
│ │ ├── manifest.json
│ │ └── packages-lock.json
│ ├── ProjectSettings/
│ │ ├── AudioManager.asset
│ │ ├── ClusterInputManager.asset
│ │ ├── DynamicsManager.asset
│ │ ├── EditorBuildSettings.asset
│ │ ├── EditorSettings.asset
│ │ ├── GraphicsSettings.asset
│ │ ├── InputManager.asset
│ │ ├── NavMeshAreas.asset
│ │ ├── PackageManagerSettings.asset
│ │ ├── Physics2DSettings.asset
│ │ ├── PresetManager.asset
│ │ ├── ProjectSettings.asset
│ │ ├── ProjectVersion.txt
│ │ ├── QualitySettings.asset
│ │ ├── TagManager.asset
│ │ ├── TimeManager.asset
│ │ ├── UnityConnectSettings.asset
│ │ ├── VFXManager.asset
│ │ └── XRSettings.asset
│ ├── ShadergraphMarkdown 2019.4.sln
│ ├── Unity.CollabProxy.Editor.csproj
│ ├── Unity.PlasticSCM.Editor.csproj
│ ├── Unity.Rider.Editor.csproj
│ ├── Unity.TextMeshPro.Editor.csproj
│ ├── Unity.TextMeshPro.csproj
│ ├── Unity.Timeline.Editor.csproj
│ ├── Unity.Timeline.csproj
│ ├── Unity.VSCode.Editor.csproj
│ ├── Unity.VisualStudio.Editor.csproj
│ ├── UnityEditor.TestRunner.csproj
│ ├── UnityEditor.UI.csproj
│ ├── UnityEngine.TestRunner.csproj
│ ├── UnityEngine.UI.csproj
│ └── asset-store-tools-editor.csproj
└── ShadergraphMarkdown 6000.2/
├── .vscode/
│ └── settings.json
├── Assembly-CSharp-Editor.csproj
├── Assembly-CSharp.csproj
├── DocCodeExamples.csproj
├── Needle.ShaderGraphMarkdown.Internal.csproj
├── Needle.ShaderGraphMarkdown.csproj
├── Packages/
│ ├── com.unity.asset-store-tools/
│ │ ├── CHANGELOG.md
│ │ ├── CHANGELOG.md.meta
│ │ ├── Editor/
│ │ │ ├── Api/
│ │ │ │ ├── Abstractions/
│ │ │ │ │ ├── AuthenticationBase.cs
│ │ │ │ │ ├── AuthenticationBase.cs.meta
│ │ │ │ │ ├── IAssetStoreApi.cs
│ │ │ │ │ ├── IAssetStoreApi.cs.meta
│ │ │ │ │ ├── IAssetStoreClient.cs
│ │ │ │ │ ├── IAssetStoreClient.cs.meta
│ │ │ │ │ ├── IAuthenticationType.cs
│ │ │ │ │ ├── IAuthenticationType.cs.meta
│ │ │ │ │ ├── IPackageUploader.cs
│ │ │ │ │ ├── IPackageUploader.cs.meta
│ │ │ │ │ ├── PackageUploaderBase.cs
│ │ │ │ │ └── PackageUploaderBase.cs.meta
│ │ │ │ ├── Abstractions.meta
│ │ │ │ ├── ApiUtility.cs
│ │ │ │ ├── ApiUtility.cs.meta
│ │ │ │ ├── AssetStoreApi.cs
│ │ │ │ ├── AssetStoreApi.cs.meta
│ │ │ │ ├── AssetStoreClient.cs
│ │ │ │ ├── AssetStoreClient.cs.meta
│ │ │ │ ├── CloudTokenAuthentication.cs
│ │ │ │ ├── CloudTokenAuthentication.cs.meta
│ │ │ │ ├── CredentialsAuthentication.cs
│ │ │ │ ├── CredentialsAuthentication.cs.meta
│ │ │ │ ├── Models/
│ │ │ │ │ ├── Category.cs
│ │ │ │ │ ├── Category.cs.meta
│ │ │ │ │ ├── Package.cs
│ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ ├── PackageAdditionalData.cs
│ │ │ │ │ ├── PackageAdditionalData.cs.meta
│ │ │ │ │ ├── User.cs
│ │ │ │ │ └── User.cs.meta
│ │ │ │ ├── Models.meta
│ │ │ │ ├── Responses/
│ │ │ │ │ ├── AssetStoreResponse.cs
│ │ │ │ │ ├── AssetStoreResponse.cs.meta
│ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs
│ │ │ │ │ ├── AssetStoreToolsVersionResponse.cs.meta
│ │ │ │ │ ├── AuthenticationResponse.cs
│ │ │ │ │ ├── AuthenticationResponse.cs.meta
│ │ │ │ │ ├── CategoryDataResponse.cs
│ │ │ │ │ ├── CategoryDataResponse.cs.meta
│ │ │ │ │ ├── PackageThumbnailResponse.cs
│ │ │ │ │ ├── PackageThumbnailResponse.cs.meta
│ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs
│ │ │ │ │ ├── PackageUploadedUnityVersionDataResponse.cs.meta
│ │ │ │ │ ├── PackagesAdditionalDataResponse.cs
│ │ │ │ │ ├── PackagesAdditionalDataResponse.cs.meta
│ │ │ │ │ ├── PackagesDataResponse.cs
│ │ │ │ │ ├── PackagesDataResponse.cs.meta
│ │ │ │ │ ├── RefreshedPackageDataResponse.cs
│ │ │ │ │ ├── RefreshedPackageDataResponse.cs.meta
│ │ │ │ │ ├── UploadResponse.cs
│ │ │ │ │ └── UploadResponse.cs.meta
│ │ │ │ ├── Responses.meta
│ │ │ │ ├── SessionAuthentication.cs
│ │ │ │ ├── SessionAuthentication.cs.meta
│ │ │ │ ├── UnityPackageUploader.cs
│ │ │ │ ├── UnityPackageUploader.cs.meta
│ │ │ │ ├── UploadStatus.cs
│ │ │ │ └── UploadStatus.cs.meta
│ │ │ ├── Api.meta
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── AssemblyInfo.cs.meta
│ │ │ ├── AssetStoreTools.cs
│ │ │ ├── AssetStoreTools.cs.meta
│ │ │ ├── AssetStoreToolsWindow.cs
│ │ │ ├── AssetStoreToolsWindow.cs.meta
│ │ │ ├── Constants.cs
│ │ │ ├── Constants.cs.meta
│ │ │ ├── Exporter/
│ │ │ │ ├── Abstractions/
│ │ │ │ │ ├── IPackageExporter.cs
│ │ │ │ │ ├── IPackageExporter.cs.meta
│ │ │ │ │ ├── IPreviewInjector.cs
│ │ │ │ │ ├── IPreviewInjector.cs.meta
│ │ │ │ │ ├── PackageExporterBase.cs
│ │ │ │ │ ├── PackageExporterBase.cs.meta
│ │ │ │ │ ├── PackageExporterSettings.cs
│ │ │ │ │ └── PackageExporterSettings.cs.meta
│ │ │ │ ├── Abstractions.meta
│ │ │ │ ├── DefaultExporterSettings.cs
│ │ │ │ ├── DefaultExporterSettings.cs.meta
│ │ │ │ ├── DefaultPackageExporter.cs
│ │ │ │ ├── DefaultPackageExporter.cs.meta
│ │ │ │ ├── LegacyExporterSettings.cs
│ │ │ │ ├── LegacyExporterSettings.cs.meta
│ │ │ │ ├── LegacyPackageExporter.cs
│ │ │ │ ├── LegacyPackageExporter.cs.meta
│ │ │ │ ├── PackageExporterResult.cs
│ │ │ │ ├── PackageExporterResult.cs.meta
│ │ │ │ ├── PreviewInjector.cs
│ │ │ │ └── PreviewInjector.cs.meta
│ │ │ ├── Exporter.meta
│ │ │ ├── Previews/
│ │ │ │ ├── Scripts/
│ │ │ │ │ ├── Data/
│ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs
│ │ │ │ │ │ ├── CustomPreviewGenerationSettings.cs.meta
│ │ │ │ │ │ ├── FileNameFormat.cs
│ │ │ │ │ │ ├── FileNameFormat.cs.meta
│ │ │ │ │ │ ├── GenerationType.cs
│ │ │ │ │ │ ├── GenerationType.cs.meta
│ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs
│ │ │ │ │ │ ├── NativePreviewGenerationSettings.cs.meta
│ │ │ │ │ │ ├── PreviewDatabase.cs
│ │ │ │ │ │ ├── PreviewDatabase.cs.meta
│ │ │ │ │ │ ├── PreviewFormat.cs
│ │ │ │ │ │ ├── PreviewFormat.cs.meta
│ │ │ │ │ │ ├── PreviewGenerationResult.cs
│ │ │ │ │ │ ├── PreviewGenerationResult.cs.meta
│ │ │ │ │ │ ├── PreviewGenerationSettings.cs
│ │ │ │ │ │ ├── PreviewGenerationSettings.cs.meta
│ │ │ │ │ │ ├── PreviewMetadata.cs
│ │ │ │ │ │ └── PreviewMetadata.cs.meta
│ │ │ │ │ ├── Data.meta
│ │ │ │ │ ├── Generators/
│ │ │ │ │ │ ├── Custom/
│ │ │ │ │ │ │ ├── AudioChannel.cs
│ │ │ │ │ │ │ ├── AudioChannel.cs.meta
│ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs
│ │ │ │ │ │ │ ├── AudioChannelCoordinate.cs.meta
│ │ │ │ │ │ │ ├── Screenshotters/
│ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs
│ │ │ │ │ │ │ │ ├── ISceneScreenshotter.cs.meta
│ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs
│ │ │ │ │ │ │ │ ├── MaterialScreenshotter.cs.meta
│ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs
│ │ │ │ │ │ │ │ ├── MeshScreenshotter.cs.meta
│ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs
│ │ │ │ │ │ │ │ ├── SceneScreenshotterBase.cs.meta
│ │ │ │ │ │ │ │ ├── SceneScreenshotterSettings.cs
│ │ │ │ │ │ │ │ └── SceneScreenshotterSettings.cs.meta
│ │ │ │ │ │ │ ├── Screenshotters.meta
│ │ │ │ │ │ │ ├── TypeGenerators/
│ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── AudioTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── AudioTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── ITypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── MaterialTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── ModelTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── PrefabTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── TextureTypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs
│ │ │ │ │ │ │ │ ├── TextureTypePreviewGenerator.cs.meta
│ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs
│ │ │ │ │ │ │ │ ├── TypeGeneratorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorBase.cs.meta
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromScene.cs.meta
│ │ │ │ │ │ │ │ ├── TypePreviewGeneratorFromSceneSettings.cs
│ │ │ │ │ │ │ │ └── TypePreviewGeneratorFromSceneSettings.cs.meta
│ │ │ │ │ │ │ └── TypeGenerators.meta
│ │ │ │ │ │ ├── Custom.meta
│ │ │ │ │ │ ├── CustomPreviewGenerator.cs
│ │ │ │ │ │ ├── CustomPreviewGenerator.cs.meta
│ │ │ │ │ │ ├── IPreviewGenerator.cs
│ │ │ │ │ │ ├── IPreviewGenerator.cs.meta
│ │ │ │ │ │ ├── NativePreviewGenerator.cs
│ │ │ │ │ │ ├── NativePreviewGenerator.cs.meta
│ │ │ │ │ │ ├── PreviewGeneratorBase.cs
│ │ │ │ │ │ └── PreviewGeneratorBase.cs.meta
│ │ │ │ │ ├── Generators.meta
│ │ │ │ │ ├── Services/
│ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ ├── IPreviewService.cs
│ │ │ │ │ │ ├── IPreviewService.cs.meta
│ │ │ │ │ │ ├── PreviewServiceProvider.cs
│ │ │ │ │ │ └── PreviewServiceProvider.cs.meta
│ │ │ │ │ ├── Services.meta
│ │ │ │ │ ├── UI/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── AssetPreview.cs
│ │ │ │ │ │ │ ├── AssetPreview.cs.meta
│ │ │ │ │ │ │ ├── AssetPreviewCollection.cs
│ │ │ │ │ │ │ ├── AssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ ├── IAssetPreview.cs
│ │ │ │ │ │ │ ├── IAssetPreview.cs.meta
│ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs
│ │ │ │ │ │ │ ├── IAssetPreviewCollection.cs.meta
│ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs
│ │ │ │ │ │ │ ├── IPreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorSettings.cs
│ │ │ │ │ │ │ └── PreviewGeneratorSettings.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ ├── AssetPreviewElement.cs
│ │ │ │ │ │ │ ├── AssetPreviewElement.cs.meta
│ │ │ │ │ │ │ ├── GridListElement.cs
│ │ │ │ │ │ │ ├── GridListElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewCollectionElement.cs
│ │ │ │ │ │ │ ├── PreviewCollectionElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs
│ │ │ │ │ │ │ ├── PreviewGenerateButtonElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs
│ │ │ │ │ │ │ ├── PreviewGeneratorPathsElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs
│ │ │ │ │ │ │ ├── PreviewGeneratorSettingsElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewWindowDescriptionElement.cs
│ │ │ │ │ │ │ └── PreviewWindowDescriptionElement.cs.meta
│ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ ├── PreviewGeneratorWindow.cs
│ │ │ │ │ │ ├── PreviewGeneratorWindow.cs.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── PreviewListView.cs
│ │ │ │ │ │ │ └── PreviewListView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── UI.meta
│ │ │ │ │ ├── Utility/
│ │ │ │ │ │ ├── GraphicsUtility.cs
│ │ │ │ │ │ ├── GraphicsUtility.cs.meta
│ │ │ │ │ │ ├── PreviewConvertUtility.cs
│ │ │ │ │ │ ├── PreviewConvertUtility.cs.meta
│ │ │ │ │ │ ├── PreviewSceneUtility.cs
│ │ │ │ │ │ ├── PreviewSceneUtility.cs.meta
│ │ │ │ │ │ ├── RenderPipeline.cs
│ │ │ │ │ │ ├── RenderPipeline.cs.meta
│ │ │ │ │ │ ├── RenderPipelineUtility.cs
│ │ │ │ │ │ └── RenderPipelineUtility.cs.meta
│ │ │ │ │ └── Utility.meta
│ │ │ │ ├── Scripts.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── Style.uss
│ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ └── Styles.meta
│ │ │ ├── Previews.meta
│ │ │ ├── Unity.AssetStoreTools.Editor.asmdef
│ │ │ ├── Unity.AssetStoreTools.Editor.asmdef.meta
│ │ │ ├── Uploader/
│ │ │ │ ├── Icons/
│ │ │ │ │ ├── account-dark.png.meta
│ │ │ │ │ ├── account-light.png.meta
│ │ │ │ │ ├── open-in-browser.png.meta
│ │ │ │ │ ├── publisher-portal-dark.png.meta
│ │ │ │ │ └── publisher-portal-light.png.meta
│ │ │ │ ├── Icons.meta
│ │ │ │ ├── Scripts/
│ │ │ │ │ ├── Data/
│ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ ├── IPackage.cs
│ │ │ │ │ │ │ ├── IPackage.cs.meta
│ │ │ │ │ │ │ ├── IPackageContent.cs
│ │ │ │ │ │ │ ├── IPackageContent.cs.meta
│ │ │ │ │ │ │ ├── IPackageGroup.cs
│ │ │ │ │ │ │ ├── IPackageGroup.cs.meta
│ │ │ │ │ │ │ ├── IWorkflow.cs
│ │ │ │ │ │ │ ├── IWorkflow.cs.meta
│ │ │ │ │ │ │ ├── IWorkflowServices.cs
│ │ │ │ │ │ │ ├── IWorkflowServices.cs.meta
│ │ │ │ │ │ │ ├── WorkflowBase.cs
│ │ │ │ │ │ │ └── WorkflowBase.cs.meta
│ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ ├── AssetsWorkflow.cs
│ │ │ │ │ │ ├── AssetsWorkflow.cs.meta
│ │ │ │ │ │ ├── HybridPackageWorkflow.cs
│ │ │ │ │ │ ├── HybridPackageWorkflow.cs.meta
│ │ │ │ │ │ ├── Package.cs
│ │ │ │ │ │ ├── Package.cs.meta
│ │ │ │ │ │ ├── PackageContent.cs
│ │ │ │ │ │ ├── PackageContent.cs.meta
│ │ │ │ │ │ ├── PackageGroup.cs
│ │ │ │ │ │ ├── PackageGroup.cs.meta
│ │ │ │ │ │ ├── PackageSorting.cs
│ │ │ │ │ │ ├── PackageSorting.cs.meta
│ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ ├── AssetPath.cs
│ │ │ │ │ │ │ ├── AssetPath.cs.meta
│ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs
│ │ │ │ │ │ │ ├── AssetsWorkflowStateData.cs.meta
│ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs
│ │ │ │ │ │ │ ├── HybridPackageWorkflowState.cs.meta
│ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs
│ │ │ │ │ │ │ ├── UnityPackageWorkflowStateData.cs.meta
│ │ │ │ │ │ │ ├── WorkflowStateData.cs
│ │ │ │ │ │ │ └── WorkflowStateData.cs.meta
│ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ ├── UnityPackageWorkflow.cs
│ │ │ │ │ │ ├── UnityPackageWorkflow.cs.meta
│ │ │ │ │ │ ├── WorkflowServices.cs
│ │ │ │ │ │ └── WorkflowServices.cs.meta
│ │ │ │ │ ├── Data.meta
│ │ │ │ │ ├── Services/
│ │ │ │ │ │ ├── Analytics/
│ │ │ │ │ │ │ ├── AnalyticsService.cs
│ │ │ │ │ │ │ ├── AnalyticsService.cs.meta
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs
│ │ │ │ │ │ │ │ ├── AuthenticationAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── BaseAnalytic.cs
│ │ │ │ │ │ │ │ ├── BaseAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs
│ │ │ │ │ │ │ │ ├── IAssetStoreAnalyticData.cs.meta
│ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs
│ │ │ │ │ │ │ │ ├── PackageUploadAnalytic.cs.meta
│ │ │ │ │ │ │ │ ├── ValidationResultsSerializer.cs
│ │ │ │ │ │ │ │ └── ValidationResultsSerializer.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── IAnalyticsService.cs
│ │ │ │ │ │ │ └── IAnalyticsService.cs.meta
│ │ │ │ │ │ ├── Analytics.meta
│ │ │ │ │ │ ├── Api/
│ │ │ │ │ │ │ ├── AuthenticationService.cs
│ │ │ │ │ │ │ ├── AuthenticationService.cs.meta
│ │ │ │ │ │ │ ├── IAuthenticationService.cs
│ │ │ │ │ │ │ ├── IAuthenticationService.cs.meta
│ │ │ │ │ │ │ ├── IPackageDownloadingService.cs
│ │ │ │ │ │ │ ├── IPackageDownloadingService.cs.meta
│ │ │ │ │ │ │ ├── IPackageUploadingService.cs
│ │ │ │ │ │ │ ├── IPackageUploadingService.cs.meta
│ │ │ │ │ │ │ ├── PackageDownloadingService.cs
│ │ │ │ │ │ │ ├── PackageDownloadingService.cs.meta
│ │ │ │ │ │ │ ├── PackageUploadingService.cs
│ │ │ │ │ │ │ └── PackageUploadingService.cs.meta
│ │ │ │ │ │ ├── Api.meta
│ │ │ │ │ │ ├── Caching/
│ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ └── ICachingService.cs.meta
│ │ │ │ │ │ ├── Caching.meta
│ │ │ │ │ │ ├── IUploaderService.cs
│ │ │ │ │ │ ├── IUploaderService.cs.meta
│ │ │ │ │ │ ├── PackageFactory/
│ │ │ │ │ │ │ ├── IPackageFactoryService.cs
│ │ │ │ │ │ │ ├── IPackageFactoryService.cs.meta
│ │ │ │ │ │ │ ├── PackageFactoryService.cs
│ │ │ │ │ │ │ └── PackageFactoryService.cs.meta
│ │ │ │ │ │ ├── PackageFactory.meta
│ │ │ │ │ │ ├── UploaderServiceProvider.cs
│ │ │ │ │ │ └── UploaderServiceProvider.cs.meta
│ │ │ │ │ ├── Services.meta
│ │ │ │ │ ├── UI/
│ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── ValidationElementBase.cs
│ │ │ │ │ │ │ │ ├── ValidationElementBase.cs.meta
│ │ │ │ │ │ │ │ ├── WorkflowElementBase.cs
│ │ │ │ │ │ │ │ └── WorkflowElementBase.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── AccountToolbar.cs
│ │ │ │ │ │ │ ├── AccountToolbar.cs.meta
│ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs
│ │ │ │ │ │ │ ├── AssetsWorkflowElement.cs.meta
│ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs
│ │ │ │ │ │ │ ├── CurrentProjectValidationElement.cs.meta
│ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs
│ │ │ │ │ │ │ ├── ExternalProjectValidationElement.cs.meta
│ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs
│ │ │ │ │ │ │ ├── HybridPackageWorkflowElement.cs.meta
│ │ │ │ │ │ │ ├── LoadingSpinner.cs
│ │ │ │ │ │ │ ├── LoadingSpinner.cs.meta
│ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs
│ │ │ │ │ │ │ ├── MultiToggleSelectionElement.cs.meta
│ │ │ │ │ │ │ ├── PackageContentElement.cs
│ │ │ │ │ │ │ ├── PackageContentElement.cs.meta
│ │ │ │ │ │ │ ├── PackageElement.cs
│ │ │ │ │ │ │ ├── PackageElement.cs.meta
│ │ │ │ │ │ │ ├── PackageGroupElement.cs
│ │ │ │ │ │ │ ├── PackageGroupElement.cs.meta
│ │ │ │ │ │ │ ├── PackageListToolbar.cs
│ │ │ │ │ │ │ ├── PackageListToolbar.cs.meta
│ │ │ │ │ │ │ ├── PackageUploadElement.cs
│ │ │ │ │ │ │ ├── PackageUploadElement.cs.meta
│ │ │ │ │ │ │ ├── PathSelectionElement.cs
│ │ │ │ │ │ │ ├── PathSelectionElement.cs.meta
│ │ │ │ │ │ │ ├── PreviewGenerationElement.cs
│ │ │ │ │ │ │ ├── PreviewGenerationElement.cs.meta
│ │ │ │ │ │ │ ├── UnityPackageWorkflowElement.cs
│ │ │ │ │ │ │ └── UnityPackageWorkflowElement.cs.meta
│ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── LoginView.cs
│ │ │ │ │ │ │ ├── LoginView.cs.meta
│ │ │ │ │ │ │ ├── PackageListView.cs
│ │ │ │ │ │ │ └── PackageListView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ └── UI.meta
│ │ │ │ ├── Scripts.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── LoginView/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── LoginView.meta
│ │ │ │ │ ├── PackageListView/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ ├── PackageListView.meta
│ │ │ │ │ ├── Style.uss
│ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ ├── Styles.meta
│ │ │ │ ├── UploaderWindow.cs
│ │ │ │ └── UploaderWindow.cs.meta
│ │ │ ├── Uploader.meta
│ │ │ ├── Utility/
│ │ │ │ ├── ASDebug.cs
│ │ │ │ ├── ASDebug.cs.meta
│ │ │ │ ├── ASToolsPreferences.cs
│ │ │ │ ├── ASToolsPreferences.cs.meta
│ │ │ │ ├── ASToolsUpdater.cs
│ │ │ │ ├── ASToolsUpdater.cs.meta
│ │ │ │ ├── CacheUtil.cs
│ │ │ │ ├── CacheUtil.cs.meta
│ │ │ │ ├── FileUtility.cs
│ │ │ │ ├── FileUtility.cs.meta
│ │ │ │ ├── LegacyToolsRemover.cs
│ │ │ │ ├── LegacyToolsRemover.cs.meta
│ │ │ │ ├── PackageUtility.cs
│ │ │ │ ├── PackageUtility.cs.meta
│ │ │ │ ├── ServiceProvider.cs
│ │ │ │ ├── ServiceProvider.cs.meta
│ │ │ │ ├── StyleSelector.cs
│ │ │ │ ├── StyleSelector.cs.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── Updater/
│ │ │ │ │ │ ├── Style.uss
│ │ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ │ └── Updater.meta
│ │ │ │ ├── Styles.meta
│ │ │ │ ├── SymlinkUtil.cs
│ │ │ │ └── SymlinkUtil.cs.meta
│ │ │ ├── Utility.meta
│ │ │ ├── Validator/
│ │ │ │ ├── Icons/
│ │ │ │ │ ├── error.png.meta
│ │ │ │ │ ├── error_d.png.meta
│ │ │ │ │ ├── success.png.meta
│ │ │ │ │ ├── success_d.png.meta
│ │ │ │ │ ├── undefined.png.meta
│ │ │ │ │ ├── undefined_d.png.meta
│ │ │ │ │ ├── warning.png.meta
│ │ │ │ │ └── warning_d.png.meta
│ │ │ │ ├── Icons.meta
│ │ │ │ ├── Scripts/
│ │ │ │ │ ├── Categories/
│ │ │ │ │ │ ├── CategoryEvaluator.cs
│ │ │ │ │ │ ├── CategoryEvaluator.cs.meta
│ │ │ │ │ │ ├── ValidatorCategory.cs
│ │ │ │ │ │ └── ValidatorCategory.cs.meta
│ │ │ │ │ ├── Categories.meta
│ │ │ │ │ ├── CurrentProjectValidator.cs
│ │ │ │ │ ├── CurrentProjectValidator.cs.meta
│ │ │ │ │ ├── Data/
│ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs
│ │ │ │ │ │ ├── CurrentProjectValidationSettings.cs.meta
│ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs
│ │ │ │ │ │ ├── ExternalProjectValidationSettings.cs.meta
│ │ │ │ │ │ ├── MessageActions/
│ │ │ │ │ │ │ ├── HighlightObjectAction.cs
│ │ │ │ │ │ │ ├── HighlightObjectAction.cs.meta
│ │ │ │ │ │ │ ├── IMessageAction.cs
│ │ │ │ │ │ │ ├── IMessageAction.cs.meta
│ │ │ │ │ │ │ ├── OpenAssetAction.cs
│ │ │ │ │ │ │ └── OpenAssetAction.cs.meta
│ │ │ │ │ │ ├── MessageActions.meta
│ │ │ │ │ │ ├── TestResult.cs
│ │ │ │ │ │ ├── TestResult.cs.meta
│ │ │ │ │ │ ├── TestResultMessage.cs
│ │ │ │ │ │ ├── TestResultMessage.cs.meta
│ │ │ │ │ │ ├── TestResultObject.cs
│ │ │ │ │ │ ├── TestResultObject.cs.meta
│ │ │ │ │ │ ├── TestResultStatus.cs
│ │ │ │ │ │ ├── TestResultStatus.cs.meta
│ │ │ │ │ │ ├── ValidationResult.cs
│ │ │ │ │ │ ├── ValidationResult.cs.meta
│ │ │ │ │ │ ├── ValidationSettings.cs
│ │ │ │ │ │ ├── ValidationSettings.cs.meta
│ │ │ │ │ │ ├── ValidationStatus.cs
│ │ │ │ │ │ ├── ValidationStatus.cs.meta
│ │ │ │ │ │ ├── ValidationType.cs
│ │ │ │ │ │ └── ValidationType.cs.meta
│ │ │ │ │ ├── Data.meta
│ │ │ │ │ ├── ExternalProjectValidator.cs
│ │ │ │ │ ├── ExternalProjectValidator.cs.meta
│ │ │ │ │ ├── IValidator.cs
│ │ │ │ │ ├── IValidator.cs.meta
│ │ │ │ │ ├── Services/
│ │ │ │ │ │ ├── CachingService/
│ │ │ │ │ │ │ ├── CachingService.cs
│ │ │ │ │ │ │ ├── CachingService.cs.meta
│ │ │ │ │ │ │ ├── ICachingService.cs
│ │ │ │ │ │ │ ├── ICachingService.cs.meta
│ │ │ │ │ │ │ ├── PreviewDatabaseContractResolver.cs
│ │ │ │ │ │ │ └── PreviewDatabaseContractResolver.cs.meta
│ │ │ │ │ │ ├── CachingService.meta
│ │ │ │ │ │ ├── IValidatorService.cs
│ │ │ │ │ │ ├── IValidatorService.cs.meta
│ │ │ │ │ │ ├── Validation/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs
│ │ │ │ │ │ │ │ ├── IAssetUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs
│ │ │ │ │ │ │ │ ├── IFileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs
│ │ │ │ │ │ │ │ ├── IMeshUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IModelUtilityService.cs
│ │ │ │ │ │ │ │ ├── IModelUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs
│ │ │ │ │ │ │ │ ├── ISceneUtilityService.cs.meta
│ │ │ │ │ │ │ │ ├── IScriptUtilityService.cs
│ │ │ │ │ │ │ │ └── IScriptUtilityService.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── AssetUtilityService.cs
│ │ │ │ │ │ │ ├── AssetUtilityService.cs.meta
│ │ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ │ ├── ArchiveType.cs
│ │ │ │ │ │ │ │ ├── ArchiveType.cs.meta
│ │ │ │ │ │ │ │ ├── AssetEnumerator.cs
│ │ │ │ │ │ │ │ ├── AssetEnumerator.cs.meta
│ │ │ │ │ │ │ │ ├── AssetType.cs
│ │ │ │ │ │ │ │ ├── AssetType.cs.meta
│ │ │ │ │ │ │ │ ├── LogEntry.cs
│ │ │ │ │ │ │ │ └── LogEntry.cs.meta
│ │ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs
│ │ │ │ │ │ │ ├── FileSignatureUtilityService.cs.meta
│ │ │ │ │ │ │ ├── MeshUtilityService.cs
│ │ │ │ │ │ │ ├── MeshUtilityService.cs.meta
│ │ │ │ │ │ │ ├── ModelUtilityService.cs
│ │ │ │ │ │ │ ├── ModelUtilityService.cs.meta
│ │ │ │ │ │ │ ├── SceneUtilityService.cs
│ │ │ │ │ │ │ ├── SceneUtilityService.cs.meta
│ │ │ │ │ │ │ ├── ScriptUtilityService.cs
│ │ │ │ │ │ │ └── ScriptUtilityService.cs.meta
│ │ │ │ │ │ ├── Validation.meta
│ │ │ │ │ │ ├── ValidatorServiceProvider.cs
│ │ │ │ │ │ └── ValidatorServiceProvider.cs.meta
│ │ │ │ │ ├── Services.meta
│ │ │ │ │ ├── Test Definitions/
│ │ │ │ │ │ ├── AutomatedTest.cs
│ │ │ │ │ │ ├── AutomatedTest.cs.meta
│ │ │ │ │ │ ├── GenericTestConfig.cs
│ │ │ │ │ │ ├── GenericTestConfig.cs.meta
│ │ │ │ │ │ ├── ITestConfig.cs
│ │ │ │ │ │ ├── ITestConfig.cs.meta
│ │ │ │ │ │ ├── ITestScript.cs
│ │ │ │ │ │ ├── ITestScript.cs.meta
│ │ │ │ │ │ ├── Scriptable Objects/
│ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs
│ │ │ │ │ │ │ ├── AutomatedTestScriptableObject.cs.meta
│ │ │ │ │ │ │ ├── Editor/
│ │ │ │ │ │ │ │ ├── ValidationTestScriptableObjectInspector.cs
│ │ │ │ │ │ │ │ └── ValidationTestScriptableObjectInspector.cs.meta
│ │ │ │ │ │ │ ├── Editor.meta
│ │ │ │ │ │ │ ├── ValidationTestScriptableObject.cs
│ │ │ │ │ │ │ └── ValidationTestScriptableObject.cs.meta
│ │ │ │ │ │ ├── Scriptable Objects.meta
│ │ │ │ │ │ ├── ValidationTest.cs
│ │ │ │ │ │ └── ValidationTest.cs.meta
│ │ │ │ │ ├── Test Definitions.meta
│ │ │ │ │ ├── Test Methods/
│ │ │ │ │ │ ├── Generic/
│ │ │ │ │ │ │ ├── CheckAnimationClips.cs
│ │ │ │ │ │ │ ├── CheckAnimationClips.cs.meta
│ │ │ │ │ │ │ ├── CheckAudioClipping.cs
│ │ │ │ │ │ │ ├── CheckAudioClipping.cs.meta
│ │ │ │ │ │ │ ├── CheckColliders.cs
│ │ │ │ │ │ │ ├── CheckColliders.cs.meta
│ │ │ │ │ │ │ ├── CheckCompressedFiles.cs
│ │ │ │ │ │ │ ├── CheckCompressedFiles.cs.meta
│ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs
│ │ │ │ │ │ │ ├── CheckEmptyPrefabs.cs.meta
│ │ │ │ │ │ │ ├── CheckFileMenuNames.cs
│ │ │ │ │ │ │ ├── CheckFileMenuNames.cs.meta
│ │ │ │ │ │ │ ├── CheckLODs.cs
│ │ │ │ │ │ │ ├── CheckLODs.cs.meta
│ │ │ │ │ │ │ ├── CheckLineEndings.cs
│ │ │ │ │ │ │ ├── CheckLineEndings.cs.meta
│ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs
│ │ │ │ │ │ │ ├── CheckMeshPrefabs.cs.meta
│ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs
│ │ │ │ │ │ │ ├── CheckMissingComponentsinAssets.cs.meta
│ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs
│ │ │ │ │ │ │ ├── CheckMissingComponentsinScenes.cs.meta
│ │ │ │ │ │ │ ├── CheckModelImportLogs.cs
│ │ │ │ │ │ │ ├── CheckModelImportLogs.cs.meta
│ │ │ │ │ │ │ ├── CheckModelOrientation.cs
│ │ │ │ │ │ │ ├── CheckModelOrientation.cs.meta
│ │ │ │ │ │ │ ├── CheckModelTypes.cs
│ │ │ │ │ │ │ ├── CheckModelTypes.cs.meta
│ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs
│ │ │ │ │ │ │ ├── CheckNormalMapTextures.cs.meta
│ │ │ │ │ │ │ ├── CheckPackageNaming.cs
│ │ │ │ │ │ │ ├── CheckPackageNaming.cs.meta
│ │ │ │ │ │ │ ├── CheckParticleSystems.cs
│ │ │ │ │ │ │ ├── CheckParticleSystems.cs.meta
│ │ │ │ │ │ │ ├── CheckPathLengths.cs
│ │ │ │ │ │ │ ├── CheckPathLengths.cs.meta
│ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs
│ │ │ │ │ │ │ ├── CheckPrefabTransforms.cs.meta
│ │ │ │ │ │ │ ├── CheckScriptCompilation.cs
│ │ │ │ │ │ │ ├── CheckScriptCompilation.cs.meta
│ │ │ │ │ │ │ ├── CheckShaderCompilation.cs
│ │ │ │ │ │ │ ├── CheckShaderCompilation.cs.meta
│ │ │ │ │ │ │ ├── CheckTextureDimensions.cs
│ │ │ │ │ │ │ ├── CheckTextureDimensions.cs.meta
│ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs
│ │ │ │ │ │ │ ├── CheckTypeNamespaces.cs.meta
│ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs
│ │ │ │ │ │ │ ├── RemoveExecutableFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveJPGFiles.cs
│ │ │ │ │ │ │ ├── RemoveJPGFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs
│ │ │ │ │ │ │ ├── RemoveJavaScriptFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs
│ │ │ │ │ │ │ ├── RemoveLossyAudioFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs
│ │ │ │ │ │ │ ├── RemoveMixamoFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs
│ │ │ │ │ │ │ ├── RemoveSpeedTreeFiles.cs.meta
│ │ │ │ │ │ │ ├── RemoveVideoFiles.cs
│ │ │ │ │ │ │ └── RemoveVideoFiles.cs.meta
│ │ │ │ │ │ ├── Generic.meta
│ │ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ │ ├── CheckDemoScenes.cs
│ │ │ │ │ │ │ ├── CheckDemoScenes.cs.meta
│ │ │ │ │ │ │ ├── CheckDocumentation.cs
│ │ │ │ │ │ │ ├── CheckDocumentation.cs.meta
│ │ │ │ │ │ │ ├── CheckPackageSize.cs
│ │ │ │ │ │ │ ├── CheckPackageSize.cs.meta
│ │ │ │ │ │ │ ├── CheckProjectTemplateAssets.cs
│ │ │ │ │ │ │ └── CheckProjectTemplateAssets.cs.meta
│ │ │ │ │ │ └── UnityPackage.meta
│ │ │ │ │ ├── Test Methods.meta
│ │ │ │ │ ├── UI/
│ │ │ │ │ │ ├── Data/
│ │ │ │ │ │ │ ├── Abstractions/
│ │ │ │ │ │ │ │ ├── IValidatorResults.cs
│ │ │ │ │ │ │ │ ├── IValidatorResults.cs.meta
│ │ │ │ │ │ │ │ ├── IValidatorSettings.cs
│ │ │ │ │ │ │ │ ├── IValidatorSettings.cs.meta
│ │ │ │ │ │ │ │ ├── IValidatorTest.cs
│ │ │ │ │ │ │ │ ├── IValidatorTest.cs.meta
│ │ │ │ │ │ │ │ ├── IValidatorTestGroup.cs
│ │ │ │ │ │ │ │ └── IValidatorTestGroup.cs.meta
│ │ │ │ │ │ │ ├── Abstractions.meta
│ │ │ │ │ │ │ ├── Serialization/
│ │ │ │ │ │ │ │ ├── ValidatorStateData.cs
│ │ │ │ │ │ │ │ ├── ValidatorStateData.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs
│ │ │ │ │ │ │ │ ├── ValidatorStateDataContractResolver.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs
│ │ │ │ │ │ │ │ ├── ValidatorStateResults.cs.meta
│ │ │ │ │ │ │ │ ├── ValidatorStateSettings.cs
│ │ │ │ │ │ │ │ └── ValidatorStateSettings.cs.meta
│ │ │ │ │ │ │ ├── Serialization.meta
│ │ │ │ │ │ │ ├── ValidatorResults.cs
│ │ │ │ │ │ │ ├── ValidatorResults.cs.meta
│ │ │ │ │ │ │ ├── ValidatorSettings.cs
│ │ │ │ │ │ │ ├── ValidatorSettings.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTest.cs
│ │ │ │ │ │ │ ├── ValidatorTest.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTestGroup.cs
│ │ │ │ │ │ │ └── ValidatorTestGroup.cs.meta
│ │ │ │ │ │ ├── Data.meta
│ │ │ │ │ │ ├── Elements/
│ │ │ │ │ │ │ ├── ValidatorButtonElement.cs
│ │ │ │ │ │ │ ├── ValidatorButtonElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs
│ │ │ │ │ │ │ ├── ValidatorDescriptionElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorPathsElement.cs
│ │ │ │ │ │ │ ├── ValidatorPathsElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorResultsElement.cs
│ │ │ │ │ │ │ ├── ValidatorResultsElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs
│ │ │ │ │ │ │ ├── ValidatorSettingsElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTestElement.cs
│ │ │ │ │ │ │ ├── ValidatorTestElement.cs.meta
│ │ │ │ │ │ │ ├── ValidatorTestGroupElement.cs
│ │ │ │ │ │ │ └── ValidatorTestGroupElement.cs.meta
│ │ │ │ │ │ ├── Elements.meta
│ │ │ │ │ │ ├── ValidatorWindow.cs
│ │ │ │ │ │ ├── ValidatorWindow.cs.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── ValidatorTestsView.cs
│ │ │ │ │ │ │ └── ValidatorTestsView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── UI.meta
│ │ │ │ │ ├── Utility/
│ │ │ │ │ │ ├── ValidatorUtility.cs
│ │ │ │ │ │ └── ValidatorUtility.cs.meta
│ │ │ │ │ ├── Utility.meta
│ │ │ │ │ ├── ValidatorBase.cs
│ │ │ │ │ └── ValidatorBase.cs.meta
│ │ │ │ ├── Scripts.meta
│ │ │ │ ├── Styles/
│ │ │ │ │ ├── Style.uss
│ │ │ │ │ ├── Style.uss.meta
│ │ │ │ │ ├── ThemeDark.uss
│ │ │ │ │ ├── ThemeDark.uss.meta
│ │ │ │ │ ├── ThemeLight.uss
│ │ │ │ │ └── ThemeLight.uss.meta
│ │ │ │ ├── Styles.meta
│ │ │ │ ├── Tests/
│ │ │ │ │ ├── Generic/
│ │ │ │ │ │ ├── Check Animation Clips.asset
│ │ │ │ │ │ ├── Check Animation Clips.asset.meta
│ │ │ │ │ │ ├── Check Audio Clipping.asset
│ │ │ │ │ │ ├── Check Audio Clipping.asset.meta
│ │ │ │ │ │ ├── Check Colliders.asset
│ │ │ │ │ │ ├── Check Colliders.asset.meta
│ │ │ │ │ │ ├── Check Compressed Files.asset
│ │ │ │ │ │ ├── Check Compressed Files.asset.meta
│ │ │ │ │ │ ├── Check Empty Prefabs.asset
│ │ │ │ │ │ ├── Check Empty Prefabs.asset.meta
│ │ │ │ │ │ ├── Check File Menu Names.asset
│ │ │ │ │ │ ├── Check File Menu Names.asset.meta
│ │ │ │ │ │ ├── Check LODs.asset
│ │ │ │ │ │ ├── Check LODs.asset.meta
│ │ │ │ │ │ ├── Check Line Endings.asset
│ │ │ │ │ │ ├── Check Line Endings.asset.meta
│ │ │ │ │ │ ├── Check Mesh Prefabs.asset
│ │ │ │ │ │ ├── Check Mesh Prefabs.asset.meta
│ │ │ │ │ │ ├── Check Missing Components in Assets.asset
│ │ │ │ │ │ ├── Check Missing Components in Assets.asset.meta
│ │ │ │ │ │ ├── Check Missing Components in Scenes.asset
│ │ │ │ │ │ ├── Check Missing Components in Scenes.asset.meta
│ │ │ │ │ │ ├── Check Model Import Logs.asset
│ │ │ │ │ │ ├── Check Model Import Logs.asset.meta
│ │ │ │ │ │ ├── Check Model Orientation.asset
│ │ │ │ │ │ ├── Check Model Orientation.asset.meta
│ │ │ │ │ │ ├── Check Model Types.asset
│ │ │ │ │ │ ├── Check Model Types.asset.meta
│ │ │ │ │ │ ├── Check Normal Map Textures.asset
│ │ │ │ │ │ ├── Check Normal Map Textures.asset.meta
│ │ │ │ │ │ ├── Check Package Naming.asset
│ │ │ │ │ │ ├── Check Package Naming.asset.meta
│ │ │ │ │ │ ├── Check Particle Systems.asset
│ │ │ │ │ │ ├── Check Particle Systems.asset.meta
│ │ │ │ │ │ ├── Check Path Lengths.asset
│ │ │ │ │ │ ├── Check Path Lengths.asset.meta
│ │ │ │ │ │ ├── Check Prefab Transforms.asset
│ │ │ │ │ │ ├── Check Prefab Transforms.asset.meta
│ │ │ │ │ │ ├── Check Script Compilation.asset
│ │ │ │ │ │ ├── Check Script Compilation.asset.meta
│ │ │ │ │ │ ├── Check Shader Compilation.asset
│ │ │ │ │ │ ├── Check Shader Compilation.asset.meta
│ │ │ │ │ │ ├── Check Texture Dimensions.asset
│ │ │ │ │ │ ├── Check Texture Dimensions.asset.meta
│ │ │ │ │ │ ├── Check Type Namespaces.asset
│ │ │ │ │ │ ├── Check Type Namespaces.asset.meta
│ │ │ │ │ │ ├── Remove Executable Files.asset
│ │ │ │ │ │ ├── Remove Executable Files.asset.meta
│ │ │ │ │ │ ├── Remove JPG Files.asset
│ │ │ │ │ │ ├── Remove JPG Files.asset.meta
│ │ │ │ │ │ ├── Remove JavaScript Files.asset
│ │ │ │ │ │ ├── Remove JavaScript Files.asset.meta
│ │ │ │ │ │ ├── Remove Lossy Audio Files.asset
│ │ │ │ │ │ ├── Remove Lossy Audio Files.asset.meta
│ │ │ │ │ │ ├── Remove Mixamo Files.asset
│ │ │ │ │ │ ├── Remove Mixamo Files.asset.meta
│ │ │ │ │ │ ├── Remove SpeedTree Files.asset
│ │ │ │ │ │ ├── Remove SpeedTree Files.asset.meta
│ │ │ │ │ │ ├── Remove Video Files.asset
│ │ │ │ │ │ └── Remove Video Files.asset.meta
│ │ │ │ │ ├── Generic.meta
│ │ │ │ │ ├── UnityPackage/
│ │ │ │ │ │ ├── Check Demo Scenes.asset
│ │ │ │ │ │ ├── Check Demo Scenes.asset.meta
│ │ │ │ │ │ ├── Check Documentation.asset
│ │ │ │ │ │ ├── Check Documentation.asset.meta
│ │ │ │ │ │ ├── Check Package Size.asset
│ │ │ │ │ │ ├── Check Package Size.asset.meta
│ │ │ │ │ │ ├── Check Project Template Assets.asset
│ │ │ │ │ │ └── Check Project Template Assets.asset.meta
│ │ │ │ │ └── UnityPackage.meta
│ │ │ │ └── Tests.meta
│ │ │ └── Validator.meta
│ │ ├── Editor.meta
│ │ ├── LICENSE.md
│ │ ├── LICENSE.md.meta
│ │ ├── package.json
│ │ └── package.json.meta
│ ├── manifest.json
│ └── packages-lock.json
├── ProjectSettings/
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── MemorySettings.asset
│ ├── MultiplayerManager.asset
│ ├── NavMeshAreas.asset
│ ├── PackageManagerSettings.asset
│ ├── Physics2DSettings.asset
│ ├── PresetManager.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── ShaderGraphMarkdownSettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ ├── UnityConnectSettings.asset
│ ├── VFXManager.asset
│ ├── VersionControlSettings.asset
│ └── XRSettings.asset
├── ShadergraphMarkdown 2019.4.sln
├── ShadergraphMarkdown 6000.2.sln
├── Unity.AI.Navigation.Editor.ConversionSystem.csproj
├── Unity.AI.Navigation.Editor.Tests.csproj
├── Unity.AI.Navigation.Editor.csproj
├── Unity.AI.Navigation.LegacyOffMeshLink.Tests.csproj
├── Unity.AI.Navigation.Tests.EditorInPlaymode.csproj
├── Unity.AI.Navigation.Tests.csproj
├── Unity.AI.Navigation.Updater.csproj
├── Unity.AI.Navigation.csproj
├── Unity.CollabProxy.Editor.csproj
├── Unity.PlasticSCM.Editor.csproj
├── Unity.Rider.Editor.csproj
├── Unity.TextMeshPro.Editor.csproj
├── Unity.TextMeshPro.csproj
├── Unity.Timeline.Editor.csproj
├── Unity.Timeline.csproj
├── Unity.VSCode.Editor.csproj
├── Unity.VisualStudio.Editor.csproj
├── UnityEditor.TestRunner.csproj
├── UnityEditor.UI.csproj
├── UnityEngine.TestRunner.csproj
├── UnityEngine.UI.csproj
├── UserSettings/
│ ├── EditorUserSettings.asset
│ ├── Layouts/
│ │ └── default-6000.dwlt
│ └── Search.settings
└── asset-store-tools-editor.csproj
Showing preview only (389K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3441 symbols across 559 files)
FILE: package/Editor/Drawers/GradientDrawer.cs
class GradientDrawer (line 3) | public class GradientDrawer : GradientGeneratorDrawer
FILE: package/Editor/Drawers/GradientGeneratorDrawer.cs
class GradientGeneratorDrawer (line 8) | public class GradientGeneratorDrawer : MarkdownMaterialPropertyDrawer
method OnDrawerGUI (line 14) | public override void OnDrawerGUI(MaterialEditor materialEditor, Materi...
FILE: package/Editor/Drawers/InlineTextureDrawer.cs
class InlineTextureDrawer (line 9) | public class InlineTextureDrawer : MarkdownMaterialPropertyDrawer
method OnDrawerGUI (line 11) | public override void OnDrawerGUI(MaterialEditor materialEditor, Materi...
method OnDrawerGUI (line 37) | internal void OnDrawerGUI(MaterialEditor materialEditor, MaterialPrope...
method GetReferencedProperties (line 87) | public override IEnumerable<MaterialProperty> GetReferencedProperties(...
FILE: package/Editor/Drawers/MarkdownMaterialPropertyDrawer.cs
class MarkdownMaterialPropertyDrawer (line 9) | public abstract class MarkdownMaterialPropertyDrawer : ScriptableObject
type DrawerParameters (line 11) | public readonly struct DrawerParameters
method ToString (line 13) | public override string ToString()
method DrawerParameters (line 23) | public DrawerParameters(string[] parts)
method DrawerParameters (line 30) | public DrawerParameters(string[] parts, string tooltip) : this(parts)
method DrawerParameters (line 35) | public DrawerParameters(string[] parts, string tooltip, bool showPro...
method Get (line 44) | public string Get(int i, string defaultValue)
method Get (line 53) | public MaterialProperty Get(int i, MaterialProperty[] properties)
method OnDrawerGUI (line 66) | public abstract void OnDrawerGUI(MaterialEditor materialEditor, Materi...
method OnInlineDrawerGUI (line 68) | public virtual void OnInlineDrawerGUI(Rect rect, MaterialEditor materi...
method GetReferencedProperties (line 75) | public virtual IEnumerable<MaterialProperty> GetReferencedProperties(M...
method ToString (line 80) | public override string ToString()
FILE: package/Editor/Drawers/MinMaxDrawer.cs
class MinMaxDrawer (line 9) | public class MinMaxDrawer : MarkdownMaterialPropertyDrawer
method GetValue (line 12) | float GetValue(MaterialProperty property, char swizzle)
method SetValue (line 26) | void SetValue(MaterialProperty property, char swizzle, float value)
method GetValue (line 44) | float GetValue(MaterialProperty property, char swizzle)
method SetValue (line 58) | void SetValue(MaterialProperty property, char swizzle, float value)
method GetValue (line 78) | float GetValue(Vector4 vector, char swizzle)
method SetValue (line 90) | void SetValue(ref Vector4 vector, char swizzle, float value)
method GetPropertyNameAndSwizzle (line 102) | void GetPropertyNameAndSwizzle(string parameterName, out string proper...
method OnDrawerGUI (line 120) | public override void OnDrawerGUI(MaterialEditor materialEditor, Materi...
method OnInlineDrawerGUI (line 226) | public override void OnInlineDrawerGUI(Rect rect, MaterialEditor mater...
method GetReferencedProperties (line 234) | public override IEnumerable<MaterialProperty> GetReferencedProperties(...
FILE: package/Editor/Drawers/MultiPropertyDrawer.cs
class MultiPropertyDrawer (line 7) | public class MultiPropertyDrawer : MarkdownMaterialPropertyDrawer
method OnDrawerGUI (line 9) | public override void OnDrawerGUI(MaterialEditor materialEditor, Materi...
method GetReferencedProperties (line 20) | public override IEnumerable<MaterialProperty> GetReferencedProperties(...
method OnInlineDrawerGUI (line 30) | public override void OnInlineDrawerGUI(Rect rect, MaterialEditor mater...
FILE: package/Editor/Drawers/VectorSliderDrawer.cs
class VectorSliderDrawer (line 8) | public class VectorSliderDrawer : MarkdownMaterialPropertyDrawer
method OnDrawerGUI (line 14) | public override void OnDrawerGUI(MaterialEditor materialEditor, Materi...
method OnDrawerGUI (line 60) | public void OnDrawerGUI(MaterialEditor materialEditor, MaterialPropert...
method OverridePropertyColor (line 117) | bool OverridePropertyColor(MaterialEditor editor, string path, out Col...
method GetReferencedProperties (line 144) | public override IEnumerable<MaterialProperty> GetReferencedProperties(...
FILE: package/Editor/Extensions/LogicExpressionParser.cs
type ILogicResult (line 50) | public interface ILogicResult
method GetResult (line 52) | bool GetResult();
type INumberProvider (line 54) | public interface INumberProvider
method GetNumber (line 56) | double GetNumber();
type ICommandParser (line 58) | public interface ICommandParser
method Parse (line 60) | bool Parse(Parser aParser, string aCommand, out ValueProvider aResult);
class CombineAnd (line 64) | public class CombineAnd : ILogicResult
method GetResult (line 68) | public bool GetResult()
class CombineOr (line 76) | public class CombineOr : ILogicResult
method GetResult (line 80) | public bool GetResult()
class CombineXor (line 88) | public class CombineXor : ILogicResult
method GetResult (line 92) | public bool GetResult()
class CombineNot (line 100) | public class CombineNot : ILogicResult
method GetResult (line 103) | public bool GetResult() { return !input.GetResult(); }
class OperationAdd (line 109) | public class OperationAdd : INumberProvider
method GetNumber (line 113) | public double GetNumber()
method OperationAdd (line 120) | public OperationAdd(params INumberProvider[] aInputs)
class OperationNegate (line 133) | public class OperationNegate : INumberProvider
method GetNumber (line 136) | public double GetNumber()
method OperationNegate (line 140) | public OperationNegate(INumberProvider aInput)
class OperationProduct (line 146) | public class OperationProduct : INumberProvider
method GetNumber (line 150) | public double GetNumber()
method OperationProduct (line 157) | public OperationProduct(params INumberProvider[] aInputs)
class OperationReciprocal (line 171) | public class OperationReciprocal : INumberProvider
method GetNumber (line 174) | public double GetNumber()
method OperationReciprocal (line 178) | public OperationReciprocal(INumberProvider aInput)
class OperationPower (line 184) | public class OperationPower : INumberProvider
method GetNumber (line 188) | public double GetNumber()
method OperationPower (line 192) | public OperationPower(INumberProvider aValue, INumberProvider aPower)
class CustomFunction (line 198) | public class CustomFunction : INumberProvider
method CustomFunction (line 202) | public CustomFunction(Func<ParameterList, double> aFunc, ParameterList...
method GetNumber (line 207) | public double GetNumber()
class CompareStatement (line 218) | public abstract class CompareStatement : ILogicResult
method GetResult (line 220) | public bool GetResult() { return Compare(op1.GetNumber(), op2.GetNumb...
method Compare (line 223) | protected abstract bool Compare(double aOp1, double aOp2);
class CompareEqual (line 225) | public class CompareEqual : CompareStatement
method Compare (line 227) | protected override bool Compare(double aOp1, double aOp2) { return aOp...
class CompareNotEqual (line 229) | public class CompareNotEqual : CompareStatement
method Compare (line 231) | protected override bool Compare(double aOp1, double aOp2) { return aOp...
class CompareGreater (line 233) | public class CompareGreater : CompareStatement
method Compare (line 235) | protected override bool Compare(double aOp1, double aOp2) { return aOp...
class CompareGreaterOrEqual (line 237) | public class CompareGreaterOrEqual : CompareStatement
method Compare (line 239) | protected override bool Compare(double aOp1, double aOp2) { return aOp...
class CompareLower (line 241) | public class CompareLower : CompareStatement
method Compare (line 243) | protected override bool Compare(double aOp1, double aOp2) { return aOp...
class CompareLowerOrEqual (line 245) | public class CompareLowerOrEqual : CompareStatement
method Compare (line 247) | protected override bool Compare(double aOp1, double aOp2) { return aOp...
class ConstantNumber (line 252) | public class ConstantNumber : INumberProvider
method GetNumber (line 255) | public double GetNumber() { return constantValue; }
class ConstantBool (line 257) | public class ConstantBool : ILogicResult
method GetResult (line 260) | public bool GetResult() { return constantValue; }
class DelegateNumber (line 262) | public class DelegateNumber : INumberProvider
method GetNumber (line 265) | public double GetNumber() { return callback(); }
class DelegateBool (line 267) | public class DelegateBool : ILogicResult
method GetResult (line 270) | public bool GetResult() { return callback(); }
class NumberToBool (line 272) | public class NumberToBool : ILogicResult
method GetResult (line 275) | public bool GetResult() { return val.GetNumber() > 0; }
class BoolToNumber (line 277) | public class BoolToNumber : INumberProvider
method GetNumber (line 280) | public double GetNumber() { return val.GetResult() ? 1d : 0d; }
class ValueProvider (line 283) | public class ValueProvider : INumberProvider, ILogicResult
method GetNumber (line 287) | public virtual double GetNumber()
method GetResult (line 295) | public virtual bool GetResult()
method Set (line 303) | public virtual void Set(bool aValue)
method Set (line 312) | public virtual void Set(double aValue)
method Set (line 321) | public virtual void Set(Func<bool> aValue)
method Set (line 330) | public virtual void Set(Func<double> aValue)
class ExpressionVariable (line 341) | public class ExpressionVariable : ValueProvider
method ExpressionVariable (line 344) | public ExpressionVariable(string aName)
class ParameterList (line 350) | public class ParameterList : INumberProvider
method ParameterList (line 353) | public ParameterList() { }
method ParameterList (line 354) | public ParameterList(INumberProvider aNumber)
method GetNumber (line 358) | public double GetNumber()
method Exists (line 373) | public bool Exists(int aIndex)
class LogicExpression (line 379) | public class LogicExpression : ILogicResult
method GetResult (line 381) | public bool GetResult() { return expressionTree.GetResult(); }
method LogicExpression (line 392) | public LogicExpression(ILogicResult aExpressionTree, ExpressionContext...
class NumberExpression (line 399) | public class NumberExpression : INumberProvider
method GetNumber (line 401) | public double GetNumber() { return expressionTree.GetNumber(); }
method NumberExpression (line 412) | public NumberExpression(INumberProvider aExpressionTree, ExpressionCon...
class ExpressionContext (line 422) | public class ExpressionContext
method ExpressionContext (line 426) | public ExpressionContext() : this(true) { }
method ExpressionContext (line 427) | public ExpressionContext(bool aAddDefaultConstants)
method AddMathConstants (line 432) | public void AddMathConstants()
method FindVariable (line 439) | public virtual ExpressionVariable FindVariable(string aVarName)
method GetVariable (line 448) | public virtual ExpressionVariable GetVariable(string aVarName)
class ParsingContext (line 467) | public class ParsingContext
method ParsingContext (line 473) | public ParsingContext() : this(true) { }
method ParsingContext (line 474) | public ParsingContext(bool aAddMathMethods)
method AddMathFunctions (line 479) | public void AddMathFunctions()
method FindClosingBracket (line 522) | public static int FindClosingBracket(string aText, int aStart, char aO...
method SubstitudeBracket (line 536) | private void SubstitudeBracket(ref string aExpression, int aIndex)
method SubstitudeCommand (line 548) | private void SubstitudeCommand(Parser aParser, ref string aExpression,...
method ParseCommand (line 561) | protected virtual ValueProvider ParseCommand(Parser aParser, string aC...
method Preprocess (line 572) | public virtual void Preprocess(Parser aParser, ref string aExpression)
method ParseToken (line 588) | private bool ParseToken(ref string aExpression, out char aTokenType, o...
method GetBracket (line 608) | public string GetBracket(ref string aExpression)
method GetCommand (line 616) | public ValueProvider GetCommand(ref string aExpression)
method GetFunction (line 625) | public Func<ParameterList, double> GetFunction(string fName)
method AddFunction (line 632) | public void AddFunction(string aName, Func<ParameterList, double> aFunc)
class Parser (line 642) | public class Parser
method Parser (line 649) | public Parser() : this(new ParsingContext(), new ExpressionContext()) { }
method Parser (line 650) | public Parser(ParsingContext aParsingContext) : this(aParsingContext, ...
method Parser (line 651) | public Parser(ParsingContext aParsingContext, ExpressionContext context)
method ParseLogicResult (line 657) | private ILogicResult ParseLogicResult(string aExpression, int aMaxRecu...
method ParseNumber (line 827) | private INumberProvider ParseNumber(string aExpression, int aMaxRecurs...
method Parse (line 954) | public LogicExpression Parse(string aExpressionString, ExpressionConte...
method ParseNumber (line 966) | public NumberExpression ParseNumber(string aExpressionString, Expressi...
method ValidIdentifier (line 978) | private static bool ValidIdentifier(string aExpression)
class ParseException (line 997) | public class ParseException : Exception
method ParseException (line 999) | public ParseException(string aMessage) : base(aMessage) { }
FILE: package/Editor/Extensions/ShaderRefactoringWindow.cs
class ShaderRefactoringWindow (line 17) | public class ShaderRefactoringWindow : EditorWindow
method ShowWindow (line 21) | [MenuItem("Window/Needle/Refactor Shader Properties")]
method ShowButton (line 28) | private void ShowButton(Rect rect)
method ShowFromContextMenu (line 35) | [MenuItem("CONTEXT/Material/Refactor Shader Properties", false, 701)]
method Show (line 53) | public static void Show(string shaderAssetPath, string inputReferenceN...
method GetAllAssets (line 73) | private static List<T> GetAllAssets<T>() where T:UnityEngine.Object
class StringPropertyFieldWithDropdown (line 84) | class StringPropertyFieldWithDropdown : VisualElement
method StringPropertyFieldWithDropdown (line 86) | public StringPropertyFieldWithDropdown(ShaderRefactoringWindow windo...
method AddPropertyItem (line 124) | private void AddPropertyItem()
method CreateGUI (line 129) | private void CreateGUI()
method FindAnimationClips (line 412) | private void FindAnimationClips()
method FindAnimationClips (line 417) | private void FindAnimationClips(List<ShaderPropertyRefactoringData> dat)
method FindScripts (line 445) | private void FindScripts()
method FindScripts (line 453) | private void FindScripts(ShaderPropertyRefactoringData data)
method FindMaterials (line 483) | void FindMaterials()
method FindMaterials (line 491) | private void FindMaterials(ShaderPropertyRefactoringData data)
method FixMaterialsAndShaders (line 512) | private void FixMaterialsAndShaders()
method FixMaterialsAndShaders (line 517) | private void FixMaterialsAndShaders(Shader sourceShader, List<ShaderPr...
method FixAnimationClips (line 705) | private void FixAnimationClips()
method FixAnimationClips (line 710) | private void FixAnimationClips(List<ShaderPropertyRefactoringData> dat)
method FixScripts (line 775) | private void FixScripts()
method ObjectNames (line 805) | private static string ObjectNames<T>(IReadOnlyCollection<T> objects, b...
class ShaderRefactoringData (line 820) | [Serializable]
class ShaderPropertyRefactoringData (line 830) | [Serializable]
FILE: package/Editor/Internal/Common/CommonInternalExtensions.cs
class CommonInternalExtensions (line 8) | public static class CommonInternalExtensions
method ShaderPropertyWithTooltip (line 10) | public static void ShaderPropertyWithTooltip(this MaterialEditor mater...
method _VectorProperty (line 37) | public static Vector4 _VectorProperty(Rect position, MaterialProperty ...
method TexturePropertyWithTooltip (line 69) | public static void TexturePropertyWithTooltip(this MaterialEditor mate...
FILE: package/Editor/Internal/HDRP/MarkdownHDExtensions.cs
class MarkdownHDExtensions (line 22) | public static class MarkdownHDExtensions
method RegisterMarkdownHelpers (line 32) | [InitializeOnLoadMethod]
method SetDefaultCustomInspector (line 43) | static bool SetDefaultCustomInspector(Target target, string customInsp...
method GetDefaultCustomInspectorFromGraphData (line 58) | static string GetDefaultCustomInspectorFromGraphData(GraphData graphData)
method RemoveShaderGraphUIBlock (line 115) | public static void RemoveShaderGraphUIBlock(ShaderGUI baseShaderGui)
FILE: package/Editor/Internal/ShaderGraph/Experimental/PropertyManipulation.cs
method RemoveAllPropertiesValidate (line 19) | [MenuItem("internal:CONTEXT/Shader/Remove All Properties", true)]
method RemoveAllProperties (line 25) | [MenuItem("internal:CONTEXT/Shader/Remove All Properties", false)]
method AddTestPropertyValidate (line 48) | [MenuItem("internal:CONTEXT/Shader/Add Test Property", true)]
method AddTestProperty (line 54) | [MenuItem("internal:CONTEXT/Shader/Add Test Properties", false)]
method AddPropertiesWizardValidate (line 69) | [MenuItem("CONTEXT/Shader/Add Properties Wizard", true)]
method AddPropertiesWizard (line 75) | [MenuItem("CONTEXT/Shader/Add Properties Wizard", false)]
method RegisterBaseTypeMap (line 83) | [InitializeOnLoadMethod]
method RegisterTypeMap (line 90) | public static void RegisterTypeMap(Dictionary<Type,Type> typeToPropertyT...
method AddMaterialKeyword (line 122) | public static void AddMaterialKeyword<T>(Shader shader, string displayNa...
class PropertyWizard (line 256) | [Serializable]
method OnEnable (line 268) | private void OnEnable()
class ShaderProperty (line 278) | [Serializable]
type DrawMode (line 290) | enum DrawMode
method OnGUI (line 296) | void OnGUI()
FILE: package/Editor/Internal/ShaderGraph/MarkdownSGExtensions.cs
class MarkdownSGExtensions (line 31) | public static partial class MarkdownSGExtensions
method RegisterMarkdownHelpers (line 34) | [InitializeOnLoadMethod]
method SetDefaultCustomInspector (line 40) | static bool SetDefaultCustomInspector(Target target, string customInsp...
method GetGraphData (line 55) | internal static GraphData GetGraphData(AssetImporter importer, bool in...
method GetGraphData (line 86) | internal static GraphData GetGraphData(Shader shader, bool initializeG...
method WriteShaderGraphToDisk (line 97) | internal static void WriteShaderGraphToDisk(Shader shader, GraphData g...
method GetDefaultCustomInspectorFromShader (line 107) | public static string GetDefaultCustomInspectorFromShader(Shader shader)
method ToggleShaderGraphMarkdownValidate (line 152) | [MenuItem("CONTEXT/Material/Toggle ShaderGraph Markdown", true)]
method ToggleShaderGraphMarkdown (line 160) | [MenuItem("CONTEXT/Material/Toggle ShaderGraph Markdown", false, 700)]
method RegisterCustomInspectorGetter (line 198) | internal static void RegisterCustomInspectorGetter(Func<GraphData, str...
method RegisterCustomBaseShaderGUI (line 205) | public static void RegisterCustomBaseShaderGUI(Func<Shader, string> func)
method RegisterCustomInspectorSetter (line 213) | internal static void RegisterCustomInspectorSetter(Func<Target, string...
method GetInputRowDictionaryFromController (line 223) | public static Dictionary<ShaderInput, VisualElement> GetInputRowDictio...
method GetBlackboardElements (line 245) | public static List<VisualElement> GetBlackboardElements(VisualElement ...
method GetBlackboardFieldText (line 257) | public static string GetBlackboardFieldText(VisualElement fieldView)
method SetBlackboardFieldTypeText (line 266) | public static void SetBlackboardFieldTypeText(VisualElement fieldView,...
method ElementIsBlackboardRow (line 274) | public static bool ElementIsBlackboardRow(VisualElement element)
method CreateShaderGUI (line 285) | public static ShaderGUI CreateShaderGUI(string defaultCustomInspector)
method CollectCategories (line 295) | public static IEnumerable<(string categoryName, int categoryHash, IEnu...
class WrappedShaderKeyword (line 314) | public class WrappedShaderKeyword
method FindKeywordData (line 319) | public static WrappedShaderKeyword FindKeywordData(Shader shader, stri...
method DrawShaderKeywordProperty (line 336) | public static void DrawShaderKeywordProperty(MaterialEditor editor, Wr...
method GetShaderPathForWindow (line 380) | public static string GetShaderPathForWindow(EditorWindow wnd)
method IsSubGraph (line 386) | public static bool IsSubGraph(EditorWindow wnd)
FILE: package/Editor/Internal/URP/MarkdownURPExtensions.cs
class MarkdownURPExtensions (line 15) | public static class MarkdownURPExtensions
method RegisterMarkdownHelpers (line 17) | [InitializeOnLoadMethod]
type MaterialHeaderScopeItem (line 27) | internal struct MaterialHeaderScopeItem
class MarkdownShaderGraphLitGUI (line 34) | internal class MarkdownShaderGraphLitGUI : ShaderGraphLitGUI
method OnOpenGUI (line 37) | public override void OnOpenGUI(Material material, MaterialEditor mat...
class MarkdownShaderGraphUnlitGUI (line 47) | internal class MarkdownShaderGraphUnlitGUI : ShaderGraphUnlitGUI
method OnOpenGUI (line 50) | public override void OnOpenGUI(Material material, MaterialEditor mat...
method GetDefaultCustomInspectorFromGraphData (line 61) | private static string GetDefaultCustomInspectorFromGraphData(GraphData...
method SetDefaultCustomInspector (line 83) | static bool SetDefaultCustomInspector(Target target, string customInsp...
FILE: package/Editor/MarkdownShaderGUI.cs
class EditorHeaderNeedleIcon (line 34) | [InitializeOnLoadAttribute]
method EditorHeaderNeedleIcon (line 37) | static EditorHeaderNeedleIcon()
method DisplayLogoInHeader (line 42) | static void DisplayLogoInHeader(Editor editor)
class HeaderGroup (line 69) | private class HeaderGroup
method HeaderGroup (line 79) | public HeaderGroup(string displayName, string condition = null, int ha...
type MarkdownProperty (line 113) | internal enum MarkdownProperty
method GetMarkdownTypeUncached (line 137) | private static MarkdownProperty GetMarkdownTypeUncached(string display)
method GetMarkdownType (line 157) | internal static MarkdownProperty GetMarkdownType(string display)
method GetIndentLevel (line 165) | internal static int GetIndentLevel(string display)
method FindKeywordProperty (line 221) | private static MaterialProperty FindKeywordProperty(string keywordRef, M...
method GetCachedDrawer (line 233) | internal static MarkdownMaterialPropertyDrawer GetCachedDrawer(string ob...
method OnClosed (line 268) | public override void OnClosed(Material material)
method UseTooltip (line 284) | private string UseTooltip()
FILE: package/Editor/Needle/MarkdownNeedleIcons.cs
class MarkdownNeedleIcons (line 6) | internal static class MarkdownNeedleIcons
method DrawGUILogo (line 65) | public static void DrawGUILogo()
FILE: package/Editor/Settings/ShaderGraphMarkdownSettings.cs
class ShaderGraphMarkdownSettingsProvider (line 12) | internal class ShaderGraphMarkdownSettingsProvider : SettingsProvider
method OnGUI (line 17) | public override void OnGUI(string searchContext)
method CreateShaderGraphMarkdownSettingsProvider (line 40) | [SettingsProvider]
method ShaderGraphMarkdownSettingsProvider (line 48) | public ShaderGraphMarkdownSettingsProvider(string path, SettingsScope ...
class ShaderGraphMarkdownSettings (line 51) | [FilePath("ProjectSettings/ShaderGraphMarkdownSettings.asset", FilePathA...
method Save (line 60) | public void Save() => Save(true);
class ScriptableSingleton (line 65) | internal class ScriptableSingleton<T> : ScriptableObject where T : Scrip...
method ScriptableSingleton (line 74) | protected ScriptableSingleton() {
method CreateAndLoad (line 84) | private static void CreateAndLoad() {
method Save (line 101) | protected virtual void Save(bool saveAsText) {
method GetFilePath (line 118) | protected static string GetFilePath() {
class FilePathAttribute (line 127) | [System.AttributeUsage(System.AttributeTargets.Class)]
type Location (line 130) | public enum Location {
method FilePathAttribute (line 137) | public FilePathAttribute(string relativePath, FilePathAttribute.Locati...
FILE: package/Editor/ShaderGraphPropertyUI.cs
class ShaderGraphPropertyUI (line 16) | internal static class ShaderGraphPropertyUI
method Init (line 18) | [InitializeOnLoadMethod]
method EditorUpdate (line 28) | private static void EditorUpdate()
method MenuPopulateEvent (line 251) | private static void MenuPopulateEvent(ContextualMenuPopulateEvent evt)
method ReferenceNameLooksLikeADefaultReference (line 261) | private static bool ReferenceNameLooksLikeADefaultReference(string ref...
FILE: package/Editor/Shims/CoreEditorUtilsShims.cs
class CoreEditorUtils (line 9) | internal static class CoreEditorUtils
method DrawSplitter (line 11) | public static void DrawSplitter(bool isBoxed = false)
method DrawHeaderFoldout (line 34) | public static bool DrawHeaderFoldout(string title, bool state)
class CoreEditorUtilsShim (line 75) | internal static class CoreEditorUtilsShim
class CoreEditorStyles (line 77) | private static class CoreEditorStyles
method CoreEditorStyles (line 83) | static CoreEditorStyles()
method DrawHeaderFoldout (line 106) | public static bool DrawHeaderFoldout(GUIContent title, bool state, boo...
method ShowHelpButton (line 184) | static void ShowHelpButton(Rect contextMenuRect, string documentationU...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/AuthenticationBase.cs
class AuthenticationBase (line 12) | internal abstract class AuthenticationBase : IAuthenticationType
method GetAuthenticationContent (line 17) | protected FormUrlEncodedContent GetAuthenticationContent(params KeyVal...
method ParseResponse (line 32) | protected AuthenticationResponse ParseResponse(HttpResponseMessage res...
method Authenticate (line 46) | public abstract Task<AuthenticationResponse> Authenticate(IAssetStoreC...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAssetStoreApi.cs
type IAssetStoreApi (line 9) | internal interface IAssetStoreApi
method GetLatestAssetStoreToolsVersion (line 11) | Task<AssetStoreToolsVersionResponse> GetLatestAssetStoreToolsVersion(C...
method Authenticate (line 12) | Task<AuthenticationResponse> Authenticate(IAuthenticationType authenti...
method Deauthenticate (line 13) | void Deauthenticate();
method GetPackages (line 14) | Task<PackagesDataResponse> GetPackages(CancellationToken cancellationT...
method GetCategories (line 15) | Task<CategoryDataResponse> GetCategories(CancellationToken cancellatio...
method GetPackageThumbnail (line 16) | Task<PackageThumbnailResponse> GetPackageThumbnail(Package package, Ca...
method RefreshPackageMetadata (line 17) | Task<RefreshedPackageDataResponse> RefreshPackageMetadata(Package pack...
method GetPackageUploadedVersions (line 18) | Task<PackageUploadedUnityVersionDataResponse> GetPackageUploadedVersio...
method UploadPackage (line 19) | Task<PackageUploadResponse> UploadPackage(IPackageUploader uploader, I...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAssetStoreClient.cs
type IAssetStoreClient (line 8) | internal interface IAssetStoreClient
method SetSessionId (line 10) | void SetSessionId(string sessionId);
method ClearSessionId (line 11) | void ClearSessionId();
method Get (line 13) | Task<HttpResponseMessage> Get(Uri uri, CancellationToken cancellationT...
method Post (line 14) | Task<HttpResponseMessage> Post(Uri uri, HttpContent content, Cancellat...
method Put (line 15) | Task<HttpResponseMessage> Put(Uri uri, HttpContent content, Cancellati...
method Send (line 16) | Task<HttpResponseMessage> Send(HttpRequestMessage request, Cancellatio...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAuthenticationType.cs
type IAuthenticationType (line 7) | internal interface IAuthenticationType
method Authenticate (line 9) | Task<AuthenticationResponse> Authenticate(IAssetStoreClient client, Ca...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IPackageUploader.cs
type IPackageUploader (line 8) | internal interface IPackageUploader
method Upload (line 10) | Task<PackageUploadResponse> Upload(IAssetStoreClient client, IProgress...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/PackageUploaderBase.cs
class PackageUploaderBase (line 10) | internal abstract class PackageUploaderBase : IPackageUploader
method ValidateSettings (line 15) | protected abstract void ValidateSettings();
method Upload (line 16) | public abstract Task<PackageUploadResponse> Upload(IAssetStoreClient c...
method EnsureSuccessResponse (line 18) | protected void EnsureSuccessResponse(HttpResponseMessage response)
method WaitForUploadCompletion (line 30) | protected void WaitForUploadCompletion(Task<HttpResponseMessage> respo...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/ApiUtility.cs
class ApiUtility (line 10) | internal class ApiUtility
method CreateUri (line 12) | public static Uri CreateUri(string url, bool includeDefaultAssetStoreQ...
method CreateUri (line 13) | public static Uri CreateUri(string url, IDictionary<string, string> qu...
method CombinePackageData (line 40) | public static List<Package> CombinePackageData(List<Package> mainPacka...
method GetLicenseHash (line 66) | public static string GetLicenseHash()
method GetHardwareHash (line 71) | public static string GetHardwareHash()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/AssetStoreApi.cs
class AssetStoreApi (line 11) | internal class AssetStoreApi : IAssetStoreApi
method AssetStoreApi (line 15) | public AssetStoreApi(IAssetStoreClient client)
method GetLatestAssetStoreToolsVersion (line 20) | public async Task<AssetStoreToolsVersionResponse> GetLatestAssetStoreT...
method Authenticate (line 41) | public async Task<AuthenticationResponse> Authenticate(IAuthentication...
method Deauthenticate (line 63) | public void Deauthenticate()
method GetPackages (line 68) | public async Task<PackagesDataResponse> GetPackages(CancellationToken ...
method GetPackageDataMain (line 95) | private async Task<PackagesDataResponse> GetPackageDataMain(Cancellati...
method GetPackageDataExtra (line 118) | private async Task<PackagesAdditionalDataResponse> GetPackageDataExtra...
method GetCategories (line 141) | public async Task<CategoryDataResponse> GetCategories(CancellationToke...
method GetPackageThumbnail (line 164) | public async Task<PackageThumbnailResponse> GetPackageThumbnail(Packag...
method RefreshPackageMetadata (line 189) | public async Task<RefreshedPackageDataResponse> RefreshPackageMetadata...
method GetPackageUploadedVersions (line 229) | public async Task<PackageUploadedUnityVersionDataResponse> GetPackageU...
method UploadPackage (line 252) | public async Task<PackageUploadResponse> UploadPackage(IPackageUploade...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/AssetStoreClient.cs
class AssetStoreClient (line 9) | internal class AssetStoreClient : IAssetStoreClient
method AssetStoreClient (line 13) | public AssetStoreClient()
method SetSessionId (line 22) | public void SetSessionId(string sessionId)
method ClearSessionId (line 30) | public void ClearSessionId()
method Get (line 35) | public Task<HttpResponseMessage> Get(Uri uri, CancellationToken cancel...
method Post (line 40) | public Task<HttpResponseMessage> Post(Uri uri, HttpContent content, Ca...
method Put (line 45) | public Task<HttpResponseMessage> Put(Uri uri, HttpContent content, Can...
method Send (line 50) | public Task<HttpResponseMessage> Send(HttpRequestMessage request, Canc...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/CloudTokenAuthentication.cs
class CloudTokenAuthentication (line 8) | internal class CloudTokenAuthentication : AuthenticationBase
method CloudTokenAuthentication (line 10) | public CloudTokenAuthentication(string cloudToken)
method Authenticate (line 17) | public override async Task<AuthenticationResponse> Authenticate(IAsset...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/CredentialsAuthentication.cs
class CredentialsAuthentication (line 8) | internal class CredentialsAuthentication : AuthenticationBase
method CredentialsAuthentication (line 10) | public CredentialsAuthentication(string email, string password)
method Authenticate (line 18) | public override async Task<AuthenticationResponse> Authenticate(IAsset...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/Category.cs
class Category (line 6) | internal class Category
class AssetStoreCategoryResolver (line 12) | public class AssetStoreCategoryResolver : DefaultContractResolver
method AssetStoreCategoryResolver (line 16) | public AssetStoreCategoryResolver()
method ResolvePropertyName (line 24) | protected override string ResolvePropertyName(string propertyName)
class CachedCategoryResolver (line 33) | public class CachedCategoryResolver : DefaultContractResolver
method CachedCategoryResolver (line 40) | private CachedCategoryResolver()
method ResolvePropertyName (line 49) | protected override string ResolvePropertyName(string propertyName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/Package.cs
class Package (line 6) | internal class Package
class AssetStorePackageResolver (line 21) | public class AssetStorePackageResolver : DefaultContractResolver
method AssetStorePackageResolver (line 28) | private AssetStorePackageResolver()
method ResolvePropertyName (line 41) | protected override string ResolvePropertyName(string propertyName)
class CachedPackageResolver (line 50) | public class CachedPackageResolver : DefaultContractResolver
method CachedPackageResolver (line 57) | private CachedPackageResolver()
method ResolvePropertyName (line 71) | protected override string ResolvePropertyName(string propertyName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/PackageAdditionalData.cs
class PackageAdditionalData (line 6) | internal class PackageAdditionalData
class AssetStorePackageResolver (line 16) | public class AssetStorePackageResolver : DefaultContractResolver
method AssetStorePackageResolver (line 23) | private AssetStorePackageResolver()
method ResolvePropertyName (line 32) | protected override string ResolvePropertyName(string propertyName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/User.cs
class User (line 6) | internal class User
method ToString (line 15) | public override string ToString()
class AssetStoreUserResolver (line 26) | public class AssetStoreUserResolver : DefaultContractResolver
method AssetStoreUserResolver (line 33) | private AssetStoreUserResolver()
method ResolvePropertyName (line 42) | protected override string ResolvePropertyName(string propertyName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/AssetStoreResponse.cs
class AssetStoreResponse (line 10) | internal class AssetStoreResponse
method AssetStoreResponse (line 16) | public AssetStoreResponse() { }
method AssetStoreResponse (line 18) | public AssetStoreResponse(Exception e) : this()
method ValidateAssetStoreResponse (line 23) | protected void ValidateAssetStoreResponse(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/AssetStoreToolsVersionResponse.cs
class AssetStoreToolsVersionResponse (line 7) | internal class AssetStoreToolsVersionResponse : AssetStoreResponse
method AssetStoreToolsVersionResponse (line 11) | public AssetStoreToolsVersionResponse() : base() { }
method AssetStoreToolsVersionResponse (line 12) | public AssetStoreToolsVersionResponse(Exception e) : base(e) { }
method AssetStoreToolsVersionResponse (line 14) | public AssetStoreToolsVersionResponse(string json)
method ParseVersion (line 29) | private void ParseVersion(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/AuthenticationResponse.cs
class AuthenticationResponse (line 9) | internal class AuthenticationResponse : AssetStoreResponse
method AuthenticationResponse (line 13) | public AuthenticationResponse() : base() { }
method AuthenticationResponse (line 15) | public AuthenticationResponse(Exception e) : base(e) { }
method AuthenticationResponse (line 17) | public AuthenticationResponse(HttpStatusCode statusCode, HttpRequestEx...
method AuthenticationResponse (line 37) | public AuthenticationResponse(string json)
method ValidateLoginData (line 58) | private void ValidateLoginData()
method ValidatePublisher (line 67) | private void ValidatePublisher()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/CategoryDataResponse.cs
class CategoryDataResponse (line 9) | internal class CategoryDataResponse : AssetStoreResponse
method CategoryDataResponse (line 13) | public CategoryDataResponse() : base() { }
method CategoryDataResponse (line 14) | public CategoryDataResponse(Exception e) : base(e) { }
method CategoryDataResponse (line 16) | public CategoryDataResponse(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/PackageThumbnailResponse.cs
class PackageThumbnailResponse (line 6) | internal class PackageThumbnailResponse : AssetStoreResponse
method PackageThumbnailResponse (line 9) | public PackageThumbnailResponse() : base() { }
method PackageThumbnailResponse (line 10) | public PackageThumbnailResponse(Exception e) : base(e) { }
method PackageThumbnailResponse (line 12) | public PackageThumbnailResponse(byte[] textureBytes)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/PackageUploadedUnityVersionDataResponse.cs
class PackageUploadedUnityVersionDataResponse (line 8) | internal class PackageUploadedUnityVersionDataResponse : AssetStoreResponse
method PackageUploadedUnityVersionDataResponse (line 12) | public PackageUploadedUnityVersionDataResponse() : base() { }
method PackageUploadedUnityVersionDataResponse (line 13) | public PackageUploadedUnityVersionDataResponse(Exception e) : base(e) { }
method PackageUploadedUnityVersionDataResponse (line 15) | public PackageUploadedUnityVersionDataResponse(string json)
method ParseVersionData (line 30) | private void ParseVersionData(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/PackagesAdditionalDataResponse.cs
class PackagesAdditionalDataResponse (line 9) | internal class PackagesAdditionalDataResponse : AssetStoreResponse
method PackagesAdditionalDataResponse (line 13) | public PackagesAdditionalDataResponse() : base() { }
method PackagesAdditionalDataResponse (line 14) | public PackagesAdditionalDataResponse(Exception e) : base(e) { }
method PackagesAdditionalDataResponse (line 16) | public PackagesAdditionalDataResponse(string json)
method ParseExtraData (line 31) | private void ParseExtraData(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/PackagesDataResponse.cs
class PackagesDataResponse (line 9) | internal class PackagesDataResponse : AssetStoreResponse
method PackagesDataResponse (line 13) | public PackagesDataResponse() : base() { }
method PackagesDataResponse (line 14) | public PackagesDataResponse(Exception e) : base(e) { }
method PackagesDataResponse (line 16) | public PackagesDataResponse(string json)
method ParseMainData (line 31) | private void ParseMainData(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/RefreshedPackageDataResponse.cs
class RefreshedPackageDataResponse (line 6) | internal class RefreshedPackageDataResponse : AssetStoreResponse
method RefreshedPackageDataResponse (line 9) | public RefreshedPackageDataResponse() { }
method RefreshedPackageDataResponse (line 10) | public RefreshedPackageDataResponse(Exception e) : base(e) { }
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Responses/UploadResponse.cs
class PackageUploadResponse (line 5) | internal class PackageUploadResponse : AssetStoreResponse
method PackageUploadResponse (line 9) | public PackageUploadResponse() : base() { }
method PackageUploadResponse (line 10) | public PackageUploadResponse(Exception e) : base(e) { }
method PackageUploadResponse (line 12) | public PackageUploadResponse(string json)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/SessionAuthentication.cs
class SessionAuthentication (line 8) | internal class SessionAuthentication : AuthenticationBase
method SessionAuthentication (line 10) | public SessionAuthentication(string sessionId)
method Authenticate (line 17) | public override async Task<AuthenticationResponse> Authenticate(IAsset...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/UnityPackageUploader.cs
class UnityPackageUploadSettings (line 11) | internal class UnityPackageUploadSettings
class UnityPackageUploader (line 20) | internal class UnityPackageUploader : PackageUploaderBase
method UnityPackageUploader (line 25) | public UnityPackageUploader(UnityPackageUploadSettings settings)
method ValidateSettings (line 30) | protected override void ValidateSettings()
method Upload (line 43) | public override async Task<PackageUploadResponse> Upload(IAssetStoreCl...
method UploadTask (line 67) | private PackageUploadResponse UploadTask(IAssetStoreClient client, IPr...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/UploadStatus.cs
type UploadStatus (line 3) | internal enum UploadStatus
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/AssetStoreTools.cs
class AssetStoreTools (line 13) | internal static class AssetStoreTools
method ShowAssetStoreToolsUploader (line 15) | [MenuItem("Tools/Asset Store/Uploader", false, 0)]
method ShowAssetStoreToolsValidator (line 23) | [MenuItem("Tools/Asset Store/Validator", false, 1)]
method ShowAssetStoreToolsValidator (line 31) | public static void ShowAssetStoreToolsValidator(ValidationSettings set...
method ShowAssetStoreToolsPreviewGenerator (line 37) | [MenuItem("Tools/Asset Store/Preview Generator", false, 2)]
method ShowAssetStoreToolsPreviewGenerator (line 45) | public static void ShowAssetStoreToolsPreviewGenerator(PreviewGenerati...
method OpenPublisherPortal (line 51) | [MenuItem("Tools/Asset Store/Publisher Portal", false, 20)]
method OpenSubmissionGuidelines (line 57) | [MenuItem("Tools/Asset Store/Submission Guidelines", false, 21)]
method OpenFeedback (line 63) | [MenuItem("Tools/Asset Store/Provide Feedback", false, 22)]
method OpenUpdateChecker (line 69) | [MenuItem("Tools/Asset Store/Check for Updates", false, 45)]
method OpenSettings (line 76) | [MenuItem("Tools/Asset Store/Settings", false, 50)]
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/AssetStoreToolsWindow.cs
class AssetStoreToolsWindow (line 6) | internal abstract class AssetStoreToolsWindow : EditorWindow
method DefaultInit (line 10) | private void DefaultInit()
method Init (line 16) | protected abstract void Init();
method OnEnable (line 18) | private void OnEnable()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Constants.cs
class Constants (line 10) | internal class Constants
method GetArgument (line 19) | private static bool GetArgument(string argumentName, out string argume...
class Api (line 39) | public class Api
method GetPackageUploadedVersionsUrl (line 55) | public static string GetPackageUploadedVersionsUrl(string packageId,...
method UploadUnityPackageUrl (line 57) | public static string UploadUnityPackageUrl(string versionId) =>
method DefaultAssetStoreQuery (line 60) | public static IDictionary<string, string> DefaultAssetStoreQuery()
class Updater (line 71) | public class Updater
class Cache (line 76) | public class Cache
method PackageThumbnailFileName (line 86) | public static string PackageThumbnailFileName(string packageId) => $...
method WorkflowStateDataFileName (line 87) | public static string WorkflowStateDataFileName(string packageId) => ...
class Uploader (line 90) | public class Uploader
class Analytics (line 97) | public class Analytics
class AuthenticationAnalytics (line 103) | public class AuthenticationAnalytics
class PackageUploadAnalytics (line 109) | public class PackageUploadAnalytics
class Validator (line 117) | public class Validator
class Tests (line 122) | public class Tests
class Previews (line 132) | public class Previews
class Native (line 139) | public class Native
class Custom (line 148) | public class Custom
class WindowStyles (line 164) | public class WindowStyles
class Debug (line 173) | public class Debug
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/Abstractions/IPackageExporter.cs
type IPackageExporter (line 5) | internal interface IPackageExporter
method Export (line 9) | Task<PackageExporterResult> Export();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/Abstractions/IPreviewInjector.cs
type IPreviewInjector (line 3) | internal interface IPreviewInjector
method Inject (line 5) | void Inject(string temporaryPackagePath);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/Abstractions/PackageExporterBase.cs
class PackageExporterBase (line 11) | internal abstract class PackageExporterBase : IPackageExporter
method PackageExporterBase (line 23) | public PackageExporterBase(PackageExporterSettings settings)
method Export (line 28) | public async Task<PackageExporterResult> Export()
method ValidateSettings (line 42) | protected virtual void ValidateSettings()
method ExportImpl (line 54) | protected abstract Task<PackageExporterResult> ExportImpl();
method GetAssetPaths (line 56) | protected string[] GetAssetPaths(string rootPath)
method GetAssetGuid (line 77) | protected string GetAssetGuid(string assetPath, bool generateIfPlugin,...
method PathBelongsToPlugin (line 124) | private bool PathBelongsToPlugin(string assetPath)
method PostExportCleanup (line 129) | protected virtual void PostExportCleanup()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/Abstractions/PackageExporterSettings.cs
class PackageExporterSettings (line 3) | internal abstract class PackageExporterSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/DefaultExporterSettings.cs
class DefaultExporterSettings (line 5) | internal class DefaultExporterSettings : PackageExporterSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/DefaultPackageExporter.cs
class DefaultPackageExporter (line 16) | internal class DefaultPackageExporter : PackageExporterBase
method DefaultPackageExporter (line 22) | public DefaultPackageExporter(DefaultExporterSettings settings) : base...
method ValidateSettings (line 27) | protected override void ValidateSettings()
method ExportImpl (line 35) | protected override async Task<PackageExporterResult> ExportImpl()
method Export (line 40) | private new async Task<PackageExporterResult> Export()
method GetTemporaryExportPath (line 80) | private string GetTemporaryExportPath()
method CreateTempPackageStructure (line 85) | private void CreateTempPackageStructure(string tempOutputPath)
method GetPathGuidPairs (line 156) | private Dictionary<string, string> GetPathGuidPairs(string[] exportPaths)
method GeneratePreviews (line 177) | private async Task<PreviewGenerationResult> GeneratePreviews()
method InjectPreviews (line 200) | private void InjectPreviews(PreviewGenerationResult result, string tem...
method CreateUnityPackage (line 209) | private void CreateUnityPackage(string pathToArchive, string outputPath)
method CreateUnityPackageUniversal (line 228) | private void CreateUnityPackageUniversal(string pathToArchive, string ...
method CreateUnityPackageOsxLinux (line 252) | private void CreateUnityPackageOsxLinux(string pathToArchive, string o...
method StartProcess (line 272) | private int StartProcess(string processPath, string arguments, string ...
method PostExportCleanup (line 295) | protected override void PostExportCleanup()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/LegacyExporterSettings.cs
class LegacyExporterSettings (line 3) | internal class LegacyExporterSettings : PackageExporterSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/LegacyPackageExporter.cs
class LegacyPackageExporter (line 11) | internal class LegacyPackageExporter : PackageExporterBase
method LegacyPackageExporter (line 18) | public LegacyPackageExporter(LegacyExporterSettings settings) : base(s...
method ValidateSettings (line 23) | protected override void ValidateSettings()
method ExportImpl (line 31) | protected override async Task<PackageExporterResult> ExportImpl()
method Export (line 36) | private async new Task<PackageExporterResult> Export()
method GetGuids (line 85) | private string[] GetGuids(string[] exportPaths, out bool onlyFolders)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/PackageExporterResult.cs
class PackageExporterResult (line 6) | internal class PackageExporterResult
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Exporter/PreviewInjector.cs
class PreviewInjector (line 8) | internal class PreviewInjector : IPreviewInjector
method PreviewInjector (line 12) | public PreviewInjector(PreviewGenerationResult result)
method Inject (line 17) | public void Inject(string temporaryPackagePath)
method InjectFilesIntoGuidFolders (line 26) | private void InjectFilesIntoGuidFolders(IEnumerable<PreviewMetadata> p...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/CustomPreviewGenerationSettings.cs
class CustomPreviewGenerationSettings (line 5) | internal class CustomPreviewGenerationSettings : PreviewGenerationSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/FileNameFormat.cs
type FileNameFormat (line 3) | internal enum FileNameFormat
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/GenerationType.cs
type GenerationType (line 3) | internal enum GenerationType
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/NativePreviewGenerationSettings.cs
class NativePreviewGenerationSettings (line 3) | internal class NativePreviewGenerationSettings : PreviewGenerationSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/PreviewDatabase.cs
class PreviewDatabase (line 5) | internal class PreviewDatabase
method PreviewDatabase (line 9) | public PreviewDatabase()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/PreviewFormat.cs
type PreviewFormat (line 3) | internal enum PreviewFormat
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/PreviewGenerationResult.cs
class PreviewGenerationResult (line 6) | internal class PreviewGenerationResult
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/PreviewGenerationSettings.cs
class PreviewGenerationSettings (line 3) | internal abstract class PreviewGenerationSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Data/PreviewMetadata.cs
class PreviewMetadata (line 5) | internal class PreviewMetadata
method Exists (line 12) | public bool Exists()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/AudioChannel.cs
class AudioChannel (line 7) | internal class AudioChannel
method AudioChannel (line 17) | public AudioChannel(int minY, int maxY, List<float> samples)
method GetCoordinateData (line 28) | public IEnumerable<AudioChannelCoordinate> GetCoordinateData(int desir...
method CreateChunk (line 57) | private IEnumerable<float> CreateChunk(int startIndex, int endIndex)
method DownsampleMax (line 71) | private void DownsampleMax(IEnumerable<float> samples, out float value...
method SampleToCoordinate (line 92) | private int SampleToCoordinate(float sample)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/AudioChannelCoordinate.cs
type AudioChannelCoordinate (line 3) | internal struct AudioChannelCoordinate
method AudioChannelCoordinate (line 10) | public AudioChannelCoordinate(int x, int yBaseline, int yAboveBaseline...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/Screenshotters/ISceneScreenshotter.cs
type ISceneScreenshotter (line 5) | internal interface ISceneScreenshotter
method Screenshot (line 9) | string Screenshot(string outputPath);
method Screenshot (line 10) | string Screenshot(GameObject target, string outputPath);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/Screenshotters/MaterialScreenshotter.cs
class MaterialScreenshotter (line 5) | internal class MaterialScreenshotter : SceneScreenshotterBase
method MaterialScreenshotter (line 7) | public MaterialScreenshotter(SceneScreenshotterSettings settings) : ba...
method PositionCamera (line 9) | public override void PositionCamera(GameObject target)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/Screenshotters/MeshScreenshotter.cs
class MeshScreenshotter (line 5) | internal class MeshScreenshotter : SceneScreenshotterBase
method MeshScreenshotter (line 7) | public MeshScreenshotter(SceneScreenshotterSettings settings) : base(s...
method PositionCamera (line 9) | public override void PositionCamera(GameObject target)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/Screenshotters/SceneScreenshotterBase.cs
class SceneScreenshotterBase (line 10) | internal abstract class SceneScreenshotterBase : ISceneScreenshotter
method SceneScreenshotterBase (line 17) | public SceneScreenshotterBase(SceneScreenshotterSettings settings)
method GetCamera (line 22) | private Camera GetCamera()
method ValidateSettings (line 36) | public virtual void ValidateSettings()
method PositionCamera (line 54) | public abstract void PositionCamera(GameObject target);
method Screenshot (line 56) | public string Screenshot(string outputPath)
method Screenshot (line 73) | public string Screenshot(GameObject target, string outputPath)
method PositionLighting (line 80) | private void PositionLighting(GameObject target)
method GetGlobalBounds (line 92) | protected Bounds GetGlobalBounds(IEnumerable<Renderer> renderers)
method GetNormalizedBounds (line 112) | protected Bounds GetNormalizedBounds(Bounds bounds)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/Screenshotters/SceneScreenshotterSettings.cs
class SceneScreenshotterSettings (line 5) | internal class SceneScreenshotterSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/AudioTypeGeneratorSettings.cs
class AudioTypeGeneratorSettings (line 6) | internal class AudioTypeGeneratorSettings : TypeGeneratorSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/AudioTypePreviewGenerator.cs
class AudioTypePreviewGenerator (line 13) | internal class AudioTypePreviewGenerator : TypePreviewGeneratorBase
method AudioTypePreviewGenerator (line 20) | public AudioTypePreviewGenerator(AudioTypeGeneratorSettings settings) ...
method ValidateSettings (line 25) | public override void ValidateSettings()
method CollectAssets (line 36) | protected override IEnumerable<UnityEngine.Object> CollectAssets()
method IsLoadTypeSupported (line 61) | private bool IsLoadTypeSupported(AudioClip audioClip)
method GenerateImpl (line 69) | protected override async Task<List<PreviewMetadata>> GenerateImpl(IEnu...
method GenerateAudioClipTexture (line 93) | private Texture2D GenerateAudioClipTexture(AudioClip audioClip)
method FillTextureBackground (line 121) | private void FillTextureBackground()
method FillTextureForeground (line 132) | private void FillTextureForeground(AudioClip audioClip)
method CreateChannels (line 142) | private List<AudioChannel> CreateChannels(AudioClip audioClip)
method GetChannelSamples (line 160) | private List<List<float>> GetChannelSamples(AudioClip audioClip)
method DrawChannel (line 184) | private void DrawChannel(AudioChannel channel)
method DrawVerticalColumn (line 194) | private void DrawVerticalColumn(int x, int yBaseline, int y1, int y2, ...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/ITypePreviewGenerator.cs
type ITypePreviewGenerator (line 8) | internal interface ITypePreviewGenerator
method Generate (line 14) | Task<List<PreviewMetadata>> Generate();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/MaterialTypePreviewGenerator.cs
class MaterialTypePreviewGenerator (line 11) | internal class MaterialTypePreviewGenerator : TypePreviewGeneratorFromScene
method MaterialTypePreviewGenerator (line 15) | public MaterialTypePreviewGenerator(TypePreviewGeneratorFromSceneSetti...
method CollectAssets (line 17) | protected override IEnumerable<UnityEngine.Object> CollectAssets()
method GeneratePreviewsInScene (line 42) | protected override async Task<List<PreviewMetadata>> GeneratePreviewsI...
method IsShaderInvalid (line 74) | private bool IsShaderInvalid(Shader shader)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/ModelTypePreviewGenerator.cs
class ModelTypePreviewGenerator (line 11) | internal class ModelTypePreviewGenerator : TypePreviewGeneratorFromScene
method ModelTypePreviewGenerator (line 15) | public ModelTypePreviewGenerator(TypePreviewGeneratorFromSceneSettings...
method CollectAssets (line 17) | protected override IEnumerable<UnityEngine.Object> CollectAssets()
method GeneratePreviewsInScene (line 40) | protected override async Task<List<PreviewMetadata>> GeneratePreviewsI...
method ReplaceShaders (line 71) | private void ReplaceShaders(GameObject go, Shader shader)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/PrefabTypePreviewGenerator.cs
class PrefabTypePreviewGenerator (line 11) | internal class PrefabTypePreviewGenerator : TypePreviewGeneratorFromScene
method PrefabTypePreviewGenerator (line 15) | public PrefabTypePreviewGenerator(TypePreviewGeneratorFromSceneSetting...
method CollectAssets (line 17) | protected override IEnumerable<UnityEngine.Object> CollectAssets()
method GeneratePreviewsInScene (line 40) | protected override async Task<List<PreviewMetadata>> GeneratePreviewsI...
method ReplaceMissingShaders (line 74) | private void ReplaceMissingShaders(GameObject go, Shader objectShader,...
method HandleParticleSystems (line 98) | private void HandleParticleSystems(GameObject go)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/TextureTypeGeneratorSettings.cs
class TextureTypeGeneratorSettings (line 5) | internal class TextureTypeGeneratorSettings : TypeGeneratorSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/TextureTypePreviewGenerator.cs
class TextureTypePreviewGenerator (line 13) | internal class TextureTypePreviewGenerator : TypePreviewGeneratorBase
method TextureTypePreviewGenerator (line 19) | public TextureTypePreviewGenerator(TextureTypeGeneratorSettings settin...
method ValidateSettings (line 24) | public override void ValidateSettings()
method CollectAssets (line 35) | protected override IEnumerable<UnityEngine.Object> CollectAssets()
method GenerateImpl (line 54) | protected override async Task<List<PreviewMetadata>> GenerateImpl(IEnu...
method CalculateTextureSize (line 91) | private void CalculateTextureSize(Texture2D texture, out int width, ou...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/TypeGeneratorSettings.cs
class TypeGeneratorSettings (line 5) | internal abstract class TypeGeneratorSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/TypePreviewGeneratorBase.cs
class TypePreviewGeneratorBase (line 12) | internal abstract class TypePreviewGeneratorBase : ITypePreviewGenerator
method TypePreviewGeneratorBase (line 18) | public TypePreviewGeneratorBase(TypeGeneratorSettings settings)
method ValidateSettings (line 23) | public virtual void ValidateSettings()
method Generate (line 39) | public async Task<List<PreviewMetadata>> Generate()
method CollectAssets (line 53) | protected abstract IEnumerable<UnityEngine.Object> CollectAssets();
method FilterIgnoredAssets (line 55) | private IEnumerable<UnityEngine.Object> FilterIgnoredAssets(IEnumerabl...
method GenerateImpl (line 75) | protected abstract Task<List<PreviewMetadata>> GenerateImpl(IEnumerabl...
method ObjectToMetadata (line 77) | protected PreviewMetadata ObjectToMetadata(UnityEngine.Object obj, str...
method GenerateOutputPathWithoutExtension (line 91) | protected string GenerateOutputPathWithoutExtension(UnityEngine.Object...
method GenerateOutputPathWithExtension (line 101) | protected string GenerateOutputPathWithExtension(UnityEngine.Object as...
method PrepareOutputFolder (line 109) | private void PrepareOutputFolder(string outputPath, bool cleanup)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/TypePreviewGeneratorFromScene.cs
class TypePreviewGeneratorFromScene (line 13) | internal abstract class TypePreviewGeneratorFromScene : TypePreviewGener...
method TypePreviewGeneratorFromScene (line 19) | public TypePreviewGeneratorFromScene(TypePreviewGeneratorFromSceneSett...
method ValidateSettings (line 24) | public override void ValidateSettings()
method GenerateImpl (line 32) | protected sealed override async Task<List<PreviewMetadata>> GenerateIm...
method GeneratePreviewsInScene (line 52) | protected abstract Task<List<PreviewMetadata>> GeneratePreviewsInScene...
method SceneOpenedDuringGeneration (line 54) | private void SceneOpenedDuringGeneration(Scene _, OpenSceneMode __)
method ThrowIfSceneChanged (line 60) | protected void ThrowIfSceneChanged()
method GetDefaultObjectShader (line 66) | protected Shader GetDefaultObjectShader()
method GetDefaultParticleShader (line 81) | protected Shader GetDefaultParticleShader()
method GetDefaultTextureShader (line 96) | protected Shader GetDefaultTextureShader()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/Custom/TypeGenerators/TypePreviewGeneratorFromSceneSettings.cs
class TypePreviewGeneratorFromSceneSettings (line 5) | internal class TypePreviewGeneratorFromSceneSettings : TypeGeneratorSett...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/CustomPreviewGenerator.cs
class CustomPreviewGenerator (line 13) | internal class CustomPreviewGenerator : PreviewGeneratorBase
method CustomPreviewGenerator (line 19) | public CustomPreviewGenerator(CustomPreviewGenerationSettings settings)
method Validate (line 25) | protected override void Validate()
method GenerateImpl (line 45) | protected override async Task<PreviewGenerationResult> GenerateImpl()
method GetExistingPreviews (line 96) | private IEnumerable<PreviewMetadata> GetExistingPreviews()
method CreateGenerators (line 108) | private IEnumerable<ITypePreviewGenerator> CreateGenerators(IEnumerabl...
method CreateAudioPreviewGenerator (line 124) | private ITypePreviewGenerator CreateAudioPreviewGenerator(string[] ign...
method CreateMaterialPreviewGenerator (line 142) | private ITypePreviewGenerator CreateMaterialPreviewGenerator(string[] ...
method CreateModelPreviewGenerator (line 148) | private ITypePreviewGenerator CreateModelPreviewGenerator(string[] ign...
method CreatePrefabPreviewGenerator (line 154) | private ITypePreviewGenerator CreatePrefabPreviewGenerator(string[] ig...
method CreateTexturePreviewGenerator (line 160) | private ITypePreviewGenerator CreateTexturePreviewGenerator(string[] i...
method CreateSceneGeneratorSettings (line 176) | private TypePreviewGeneratorFromSceneSettings CreateSceneGeneratorSett...
method CreateScreenshotterSettings (line 190) | private SceneScreenshotterSettings CreateScreenshotterSettings()
method ReportProgress (line 205) | private void ReportProgress(int currentGenerator, int totalGenerators,...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/IPreviewGenerator.cs
type IPreviewGenerator (line 7) | internal interface IPreviewGenerator
method Generate (line 13) | Task<PreviewGenerationResult> Generate();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/NativePreviewGenerator.cs
class NativePreviewGenerator (line 15) | internal class NativePreviewGenerator : PreviewGeneratorBase
method NativePreviewGenerator (line 28) | public NativePreviewGenerator(NativePreviewGenerationSettings settings)
method Validate (line 34) | protected override void Validate()
method GenerateImpl (line 42) | protected override async Task<PreviewGenerationResult> GenerateImpl()
method GetObjectsRequiringPreviews (line 97) | private List<PreviewMetadata> GetObjectsRequiringPreviews(string[] inp...
method FilterObjects (line 118) | private void FilterObjects(List<PreviewMetadata> objects, List<Preview...
method ShouldHavePreview (line 144) | private bool ShouldHavePreview(UnityEngine.Object asset)
method WritePreviewToDisk (line 169) | private PreviewMetadata WritePreviewToDisk(PreviewMetadata metadata, T...
method WritePreviewsWithoutWaiting (line 188) | private void WritePreviewsWithoutWaiting(List<PreviewMetadata> objects...
method GetAssetPreviewFromGuid (line 203) | private Texture2D GetAssetPreviewFromGuid(string guid)
method WaitAndWritePreviewsChunked (line 211) | private async Task WaitAndWritePreviewsChunked(List<PreviewMetadata> o...
method WaitAndWritePreviews (line 237) | private async Task WaitAndWritePreviews(List<PreviewMetadata> objects,...
method WaitAndWritePreviewIteration (line 290) | private async Task WaitAndWritePreviewIteration(List<PreviewMetadata> ...
method WaitForEndOfFrame (line 338) | private async Task WaitForEndOfFrame(double atLeastSeconds)
method WaitForEndOfFrame (line 347) | private async Task WaitForEndOfFrame()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/PreviewGeneratorBase.cs
class PreviewGeneratorBase (line 8) | internal abstract class PreviewGeneratorBase : IPreviewGenerator
method PreviewGeneratorBase (line 15) | public PreviewGeneratorBase(PreviewGenerationSettings settings)
method Generate (line 21) | public async Task<PreviewGenerationResult> Generate()
method Validate (line 34) | protected virtual void Validate()
method GenerateImpl (line 43) | protected abstract Task<PreviewGenerationResult> GenerateImpl();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Services/Caching/CachingService.cs
class CachingService (line 12) | internal class CachingService : ICachingService
method CacheMetadata (line 14) | public void CacheMetadata(IEnumerable<PreviewMetadata> previews)
method GetCachedMetadata (line 28) | public bool GetCachedMetadata(out PreviewDatabase previewDatabase)
method UpdatePreviewDatabase (line 51) | private PreviewDatabase UpdatePreviewDatabase(IEnumerable<PreviewMetad...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Services/Caching/ICachingService.cs
type ICachingService (line 6) | internal interface ICachingService : IPreviewService
method CacheMetadata (line 8) | void CacheMetadata(IEnumerable<PreviewMetadata> previews);
method GetCachedMetadata (line 9) | bool GetCachedMetadata(out PreviewDatabase previewDatabase);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Services/IPreviewService.cs
type IPreviewService (line 3) | public interface IPreviewService { }
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Services/PreviewServiceProvider.cs
class PreviewServiceProvider (line 5) | internal class PreviewServiceProvider : ServiceProvider<IPreviewService>
method PreviewServiceProvider (line 10) | private PreviewServiceProvider() { }
method RegisterServices (line 12) | protected override void RegisterServices()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Data/AssetPreview.cs
class AssetPreview (line 10) | internal class AssetPreview : IAssetPreview
method AssetPreview (line 21) | public AssetPreview(PreviewMetadata metadata)
method GetAssetPath (line 26) | public string GetAssetPath()
method LoadImage (line 32) | public async Task LoadImage(Action<Texture2D> onSuccess)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Data/AssetPreviewCollection.cs
class AssetPreviewCollection (line 7) | internal class AssetPreviewCollection : IAssetPreviewCollection
method AssetPreviewCollection (line 14) | public AssetPreviewCollection()
method GetGenerationType (line 19) | public GenerationType GetGenerationType()
method GetPreviews (line 24) | public IEnumerable<IAssetPreview> GetPreviews()
method Refresh (line 29) | public void Refresh(GenerationType generationType, IEnumerable<Preview...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Data/IAssetPreview.cs
type IAssetPreview (line 7) | internal interface IAssetPreview
method GetAssetPath (line 10) | string GetAssetPath();
method LoadImage (line 11) | Task LoadImage(Action<Texture2D> onSuccess);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Data/IAssetPreviewCollection.cs
type IAssetPreviewCollection (line 7) | internal interface IAssetPreviewCollection
method GetGenerationType (line 11) | GenerationType GetGenerationType();
method GetPreviews (line 12) | IEnumerable<IAssetPreview> GetPreviews();
method Refresh (line 13) | void Refresh(GenerationType generationType, IEnumerable<PreviewMetadat...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Data/IPreviewGeneratorSettings.cs
type IPreviewGeneratorSettings (line 8) | internal interface IPreviewGeneratorSettings
method LoadSettings (line 13) | void LoadSettings(PreviewGenerationSettings settings);
method GetGenerationType (line 15) | GenerationType GetGenerationType();
method SetGenerationType (line 16) | void SetGenerationType(GenerationType type);
method GetAvailableGenerationTypes (line 17) | List<GenerationType> GetAvailableGenerationTypes();
method GetGenerationPaths (line 19) | List<string> GetGenerationPaths();
method AddGenerationPath (line 20) | void AddGenerationPath(string path);
method RemoveGenerationPath (line 21) | void RemoveGenerationPath(string path);
method ClearGenerationPaths (line 22) | void ClearGenerationPaths();
method IsGenerationPathValid (line 23) | bool IsGenerationPathValid(string path, out string error);
method CreateGenerator (line 25) | IPreviewGenerator CreateGenerator();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Data/PreviewGeneratorSettings.cs
class PreviewGeneratorSettings (line 12) | internal class PreviewGeneratorSettings : IPreviewGeneratorSettings
method PreviewGeneratorSettings (line 26) | public PreviewGeneratorSettings()
method LoadSettings (line 32) | public void LoadSettings(PreviewGenerationSettings settings)
method GetGenerationType (line 55) | public GenerationType GetGenerationType()
method SetGenerationType (line 60) | public void SetGenerationType(GenerationType type)
method GetAvailableGenerationTypes (line 66) | public List<GenerationType> GetAvailableGenerationTypes()
method GetGenerationPaths (line 71) | public List<string> GetGenerationPaths()
method AddGenerationPath (line 76) | public void AddGenerationPath(string path)
method RemoveGenerationPath (line 105) | public void RemoveGenerationPath(string path)
method ClearGenerationPaths (line 115) | public void ClearGenerationPaths()
method IsGenerationPathValid (line 125) | public bool IsGenerationPathValid(string path, out string error)
method CreateGenerator (line 160) | public IPreviewGenerator CreateGenerator()
method CreateNativeGenerator (line 173) | private IPreviewGenerator CreateNativeGenerator()
method CreateCustomGenerator (line 190) | private IPreviewGenerator CreateCustomGenerator()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/AssetPreviewElement.cs
class AssetPreviewElement (line 9) | internal class AssetPreviewElement : VisualElement
method AssetPreviewElement (line 18) | public AssetPreviewElement()
method Create (line 27) | private void Create()
method CreateImage (line 34) | private void CreateImage()
method CreateFiller (line 40) | private void CreateFiller()
method CreateLabel (line 46) | private void CreateLabel()
method SetImage (line 52) | private void SetImage(Texture2D texture)
method OnImageClicked (line 59) | private void OnImageClicked(MouseDownEvent _)
method SetSource (line 64) | public void SetSource(IAssetPreview assetPreview)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/GridListElement.cs
class GridListElement (line 9) | internal class GridListElement : VisualElement
method GridListElement (line 21) | public GridListElement()
method Create (line 36) | private void Create()
method OnGeometryChanged (line 42) | private void OnGeometryChanged(GeometryChangedEvent evt)
method OnVerticalScroll (line 47) | private void OnVerticalScroll(float value)
method Redraw (line 52) | public void Redraw()
method IsRowVisible (line 101) | private bool IsRowVisible(int rowIndex)
method CreateRow (line 119) | private VisualElement CreateRow(int rowIndex)
method CreateFillerElement (line 131) | private VisualElement CreateFillerElement()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/PreviewCollectionElement.cs
class PreviewCollectionElement (line 12) | internal class PreviewCollectionElement : VisualElement
method PreviewCollectionElement (line 21) | public PreviewCollectionElement(IAssetPreviewCollection collection)
method Create (line 34) | private void Create()
method CreateLabel (line 40) | private void CreateLabel()
method CreateGridListElement (line 47) | private void CreateGridListElement()
method CreatePreview (line 57) | private VisualElement CreatePreview()
method BindPreview (line 63) | private void BindPreview(VisualElement element, int index)
method RefreshList (line 70) | private void RefreshList()
method ConvertGenerationTypeName (line 84) | private string ConvertGenerationTypeName(GenerationType type)
method SubscribeToSceneChanges (line 95) | private void SubscribeToSceneChanges()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/PreviewGenerateButtonElement.cs
class PreviewGenerateButtonElement (line 7) | internal class PreviewGenerateButtonElement : VisualElement
method PreviewGenerateButtonElement (line 17) | public PreviewGenerateButtonElement(IPreviewGeneratorSettings settings)
method Create (line 26) | private void Create()
method Validate (line 34) | private void Validate()
method GenerationPathsChanged (line 39) | private void GenerationPathsChanged()
method Deserialize (line 45) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/PreviewGeneratorPathsElement.cs
class PreviewGeneratorPathsElement (line 8) | internal class PreviewGeneratorPathsElement : VisualElement
method PreviewGeneratorPathsElement (line 16) | public PreviewGeneratorPathsElement(IPreviewGeneratorSettings settings)
method Create (line 27) | private void Create()
method CreateSinglePathElement (line 67) | private VisualElement CreateSinglePathElement(string path)
method BrowsePath (line 88) | private void BrowsePath()
method InputPathsChanged (line 106) | private void InputPathsChanged()
method Deserialize (line 117) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/PreviewGeneratorSettingsElement.cs
class PreviewGeneratorSettingsElement (line 9) | internal class PreviewGeneratorSettingsElement : VisualElement
method PreviewGeneratorSettingsElement (line 18) | public PreviewGeneratorSettingsElement(IPreviewGeneratorSettings setti...
method Create (line 29) | private void Create()
method CreateInputPathsElement (line 35) | private void CreateInputPathsElement()
method CreateGenerationType (line 41) | private void CreateGenerationType()
method ConvertGenerationTypeName (line 77) | private string ConvertGenerationTypeName(GenerationType type)
method GenerationTypeChanged (line 88) | private void GenerationTypeChanged()
method Deserialize (line 94) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Elements/PreviewWindowDescriptionElement.cs
class PreviewWindowDescriptionElement (line 5) | internal class PreviewWindowDescriptionElement : VisualElement
method PreviewWindowDescriptionElement (line 19) | public PreviewWindowDescriptionElement()
method Create (line 25) | private void Create()
method CreateSimpleDescription (line 31) | private void CreateSimpleDescription()
method CreateFullDescription (line 49) | private void CreateFullDescription()
method ToggleFullDescription (line 71) | private void ToggleFullDescription()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/PreviewGeneratorWindow.cs
class PreviewGeneratorWindow (line 11) | internal class PreviewGeneratorWindow : AssetStoreToolsWindow
method Init (line 19) | protected override void Init()
method GetServices (line 35) | private void GetServices()
method ConstructWindow (line 40) | private void ConstructWindow()
method Load (line 46) | public void Load(PreviewGenerationSettings settings)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/UI/Views/PreviewListView.cs
class PreviewListView (line 13) | internal class PreviewListView : VisualElement
method PreviewListView (line 28) | public PreviewListView(ICachingService cachingService)
method Create (line 42) | private void Create()
method CreateDescription (line 50) | private void CreateDescription()
method CreateSettings (line 56) | private void CreateSettings()
method CreateGenerateButton (line 62) | private void CreateGenerateButton()
method CreatePreviewList (line 69) | private void CreatePreviewList()
method GeneratePreviews (line 75) | private async void GeneratePreviews()
method DisplayProgress (line 106) | private void DisplayProgress(float progress)
method LoadSettings (line 111) | public void LoadSettings(PreviewGenerationSettings settings)
method RefreshPreviewList (line 116) | private void RefreshPreviewList()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Utility/GraphicsUtility.cs
class GraphicsUtility (line 5) | internal static class GraphicsUtility
method GetTextureFromCamera (line 7) | public static Texture2D GetTextureFromCamera(Camera camera, int desire...
method ResizeTexture (line 37) | public static Texture2D ResizeTexture(Texture2D source, int desiredWid...
method ResizeTextureNormalMap (line 60) | public static Texture2D ResizeTextureNormalMap(Texture2D source, int d...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Utility/PreviewConvertUtility.cs
class PreviewConvertUtility (line 7) | internal static class PreviewConvertUtility
method ConvertFilename (line 9) | public static string ConvertFilename(Object asset, FileNameFormat format)
method ConvertExtension (line 39) | public static string ConvertExtension(PreviewFormat format)
method ConvertFilenameWithExtension (line 52) | public static string ConvertFilenameWithExtension(Object asset, FileNa...
method ConvertTexture (line 59) | public static byte[] ConvertTexture(Texture2D texture, PreviewFormat f...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Utility/PreviewSceneUtility.cs
class PreviewSceneUtility (line 16) | internal static class PreviewSceneUtility
method OpenPreviewSceneForCurrentPipeline (line 22) | public static async Task OpenPreviewSceneForCurrentPipeline()
method WaitForEditorUpdate (line 47) | private static async Task WaitForEditorUpdate()
method OpenPreviewSceneBiRP (line 73) | public static async Task OpenPreviewSceneBiRP()
method OpenNewScene (line 83) | private static void OpenNewScene()
method CreateSceneCamera (line 90) | private static Camera CreateSceneCamera()
method CreateSceneLighting (line 105) | private static Light CreateSceneLighting()
method WaitForLighting (line 117) | private static async Task WaitForLighting()
method OpenPreviewSceneURP (line 126) | public static async Task OpenPreviewSceneURP()
method OpenPreviewSceneHDRP (line 142) | public static async Task OpenPreviewSceneHDRP()
method CreateHDRPVolumeProfile (line 160) | private static Volume CreateHDRPVolumeProfile()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Utility/RenderPipeline.cs
type RenderPipeline (line 3) | internal enum RenderPipeline
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Utility/RenderPipelineUtility.cs
class RenderPipelineUtility (line 11) | internal static class RenderPipelineUtility
method GetCurrentPipeline (line 13) | public static RenderPipeline GetCurrentPipeline()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Abstractions/IPackage.cs
type IPackage (line 7) | internal interface IPackage
method FormattedSize (line 26) | string FormattedSize();
method FormattedModified (line 27) | string FormattedModified();
method UpdateData (line 29) | void UpdateData(PackageModel source);
method UpdateIcon (line 30) | void UpdateIcon(Texture2D texture);
method ToModel (line 32) | PackageModel ToModel();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Abstractions/IPackageContent.cs
type IPackageContent (line 6) | internal interface IPackageContent
method GetActiveWorkflow (line 10) | IWorkflow GetActiveWorkflow();
method GetAvailableWorkflows (line 11) | List<IWorkflow> GetAvailableWorkflows();
method SetActiveWorkflow (line 12) | void SetActiveWorkflow(IWorkflow workflow);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Abstractions/IPackageGroup.cs
type IPackageGroup (line 6) | internal interface IPackageGroup
method Sort (line 14) | void Sort(PackageSorting sortingType);
method Filter (line 15) | void Filter(string filter);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Abstractions/IWorkflow.cs
type IWorkflow (line 11) | internal interface IWorkflow
method GetAllPaths (line 26) | IEnumerable<string> GetAllPaths();
method Validate (line 27) | ValidationResult Validate();
method ExportPackage (line 28) | Task<PackageExporterResult> ExportPackage(string outputPath);
method ValidatePackageUploadedVersions (line 29) | Task<bool> ValidatePackageUploadedVersions();
method UploadPackage (line 31) | Task<PackageUploadResponse> UploadPackage(string exportedPackagePath);
method AbortUpload (line 32) | void AbortUpload();
method ResetUploadStatus (line 33) | void ResetUploadStatus();
method RefreshPackage (line 34) | Task RefreshPackage();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Abstractions/IWorkflowServices.cs
type IWorkflowServices (line 10) | internal interface IWorkflowServices
method GetPackageUploadedVersions (line 12) | Task<PackageUploadedUnityVersionDataResponse> GetPackageUploadedVersio...
method UploadPackage (line 13) | Task<PackageUploadResponse> UploadPackage(IPackageUploader uploader, I...
method StopUploading (line 14) | void StopUploading(IPackageUploader uploader);
method SendAnalytic (line 15) | AnalyticsResult SendAnalytic(IAssetStoreAnalytic data);
method UpdatePackageData (line 16) | Task<RefreshedPackageDataResponse> UpdatePackageData(IPackage package);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Abstractions/WorkflowBase.cs
class WorkflowBase (line 20) | internal abstract class WorkflowBase : IWorkflow
method WorkflowBase (line 44) | public WorkflowBase(IPackage package, IWorkflowServices services)
method GetAllPaths (line 50) | public abstract IEnumerable<string> GetAllPaths();
method CreateValidator (line 52) | public abstract IValidator CreateValidator();
method Validate (line 54) | public ValidationResult Validate()
method CreatePreviewGenerator (line 65) | protected IPreviewGenerator CreatePreviewGenerator(List<string> inputP...
method CreateExporter (line 113) | public abstract IPackageExporter CreateExporter(string outputPath);
method ExportPackage (line 115) | public virtual async Task<PackageExporterResult> ExportPackage(string ...
method ValidatePackageUploadedVersions (line 122) | public async Task<bool> ValidatePackageUploadedVersions()
method ValidatePackageBeforeUpload (line 135) | private bool ValidatePackageBeforeUpload(string packagePath, out strin...
method ValidatePackageSize (line 153) | private bool ValidatePackageSize(string packagePath, out string error)
method UploadPackage (line 171) | public async Task<PackageUploadResponse> UploadPackage(string packageP...
method CreatePackageUploader (line 197) | protected abstract IPackageUploader CreatePackageUploader(string expor...
method ReportUploadProgress (line 199) | private void ReportUploadProgress(object _, float value)
method SendAnalytics (line 204) | private void SendAnalytics(string packagePath, UploadStatus uploadStat...
method AbortUpload (line 225) | public void AbortUpload()
method ResetUploadStatus (line 233) | public void ResetUploadStatus()
method RefreshPackage (line 238) | public async Task RefreshPackage()
method IsPathValid (line 247) | public abstract bool IsPathValid(string path, out string reason);
method Serialize (line 249) | protected abstract void Serialize();
method Deserialize (line 251) | protected abstract void Deserialize();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/AssetsWorkflow.cs
class AssetsWorkflow (line 16) | internal class AssetsWorkflow : WorkflowBase
method AssetsWorkflow (line 41) | public AssetsWorkflow(IPackage package, AssetsWorkflowState stateData,...
method GetMainExportPath (line 48) | public string GetMainExportPath()
method SetMainExportPath (line 53) | public void SetMainExportPath(string path, bool serialize)
method SetMetadata (line 61) | private void SetMetadata()
method GetIncludeDependencies (line 68) | public bool GetIncludeDependencies()
method SetIncludeDependencies (line 73) | public void SetIncludeDependencies(bool value, bool serialize)
method GetDependencies (line 82) | public List<PackageInfo> GetDependencies()
method SetDependencies (line 87) | public void SetDependencies(IEnumerable<string> dependencies, bool ser...
method GetSpecialFolders (line 101) | public List<string> GetSpecialFolders()
method SetSpecialFolders (line 106) | public void SetSpecialFolders(IEnumerable<string> specialFolders, bool...
method IsPathValid (line 118) | public override bool IsPathValid(string path, out string error)
method GetAvailableDependencies (line 148) | public List<string> GetAvailableDependencies()
method GetAvailableSpecialFolders (line 154) | public List<string> GetAvailableSpecialFolders()
method GetAllPaths (line 176) | public override IEnumerable<string> GetAllPaths()
method CreateValidator (line 187) | public override IValidator CreateValidator()
method CreateExporter (line 202) | public override IPackageExporter CreateExporter(string outputPath)
method CreatePackageUploader (line 242) | protected override IPackageUploader CreatePackageUploader(string expor...
method Serialize (line 257) | protected override void Serialize()
method Deserialize (line 266) | protected override void Deserialize()
method DeserializeFromUploadedData (line 290) | private void DeserializeFromUploadedData()
method DeserializeFromUploadedDataByGuid (line 296) | private void DeserializeFromUploadedDataByGuid()
method DeserializeFromUploadedDataByPath (line 309) | private void DeserializeFromUploadedDataByPath()
method DeserializeFromUploadedDataByPath (line 321) | private void DeserializeFromUploadedDataByPath(string path)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/HybridPackageWorkflow.cs
class HybridPackageWorkflow (line 17) | internal class HybridPackageWorkflow : WorkflowBase
method HybridPackageWorkflow (line 31) | public HybridPackageWorkflow(IPackage package, HybridPackageWorkflowSt...
method GetPackage (line 38) | public PackageInfo GetPackage()
method SetPackage (line 43) | public void SetPackage(PackageInfo packageInfo, bool serialize)
method SetPackage (line 54) | public void SetPackage(string packageManifestPath, bool serialize)
method SetMetadata (line 62) | private void SetMetadata()
method GetDependencies (line 69) | public List<PackageInfo> GetDependencies()
method SetDependencies (line 74) | public void SetDependencies(IEnumerable<string> dependencies, bool ser...
method GetAvailableDependencies (line 88) | public List<PackageInfo> GetAvailableDependencies()
method GetAllPaths (line 110) | public override IEnumerable<string> GetAllPaths()
method IsPathValid (line 123) | public override bool IsPathValid(string path, out string reason)
method CreateValidator (line 143) | public override IValidator CreateValidator()
method CreateExporter (line 158) | public override IPackageExporter CreateExporter(string outputPath)
method CreatePackageUploader (line 172) | protected override IPackageUploader CreatePackageUploader(string expor...
method Serialize (line 187) | protected override void Serialize()
method Deserialize (line 197) | protected override void Deserialize()
method DeserializeFromUploadedData (line 214) | private void DeserializeFromUploadedData()
method DeserializeFromUploadedDataByPackageName (line 220) | private void DeserializeFromUploadedDataByPackageName()
method DeserializeFromUploadedDataByPackageGuid (line 232) | private void DeserializeFromUploadedDataByPackageGuid()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Package.cs
class Package (line 7) | internal class Package : IPackage
method Package (line 29) | public Package(PackageModel packageSource)
method UpdateIcon (line 34) | public void UpdateIcon(Texture2D texture)
method FormattedSize (line 43) | public string FormattedSize()
method FormattedModified (line 52) | public string FormattedModified()
method UpdateData (line 61) | public void UpdateData(PackageModel source)
method ToModel (line 70) | public PackageModel ToModel()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/PackageContent.cs
class PackageContent (line 9) | internal class PackageContent : IPackageContent
method PackageContent (line 19) | public PackageContent(List<IWorkflow> workflows, WorkflowStateData wor...
method GetActiveWorkflow (line 33) | public IWorkflow GetActiveWorkflow()
method SetActiveWorkflow (line 38) | public void SetActiveWorkflow(IWorkflow workflow)
method GetAvailableWorkflows (line 47) | public List<IWorkflow> GetAvailableWorkflows()
method Serialize (line 52) | private void Serialize()
method Deserialize (line 58) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/PackageGroup.cs
class PackageGroup (line 7) | internal class PackageGroup : IPackageGroup
class FilteredPackage (line 9) | private class FilteredPackage
method PackageGroup (line 23) | public PackageGroup(string name, List<IPackage> packages)
method Sort (line 33) | public void Sort(PackageSorting sortingType)
method Filter (line 53) | public void Filter(string filter)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/PackageSorting.cs
type PackageSorting (line 3) | internal enum PackageSorting
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Serialization/AssetPath.cs
class AssetPath (line 8) | internal class AssetPath
method AssetPath (line 20) | public AssetPath() { }
method AssetPath (line 22) | public AssetPath(string path)
method SetAssetPath (line 27) | private void SetAssetPath(string path)
method TryGetGuid (line 34) | private bool TryGetGuid(string path, out string guid)
method ToString (line 47) | public override string ToString()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Serialization/AssetsWorkflowStateData.cs
class AssetsWorkflowState (line 6) | internal class AssetsWorkflowState
method AssetsWorkflowState (line 17) | public AssetsWorkflowState()
method GetMainPath (line 25) | public string GetMainPath()
method SetMainPath (line 30) | public void SetMainPath(string path)
method GetIncludeDependencies (line 35) | public bool GetIncludeDependencies()
method SetIncludeDependencies (line 40) | public void SetIncludeDependencies(bool value)
method GetDependencies (line 45) | public List<string> GetDependencies()
method SetDependencies (line 50) | public void SetDependencies(IEnumerable<string> dependencies)
method GetSpecialFolders (line 57) | public List<string> GetSpecialFolders()
method SetSpecialFolders (line 70) | public void SetSpecialFolders(List<string> specialFolders)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Serialization/HybridPackageWorkflowState.cs
class HybridPackageWorkflowState (line 6) | internal class HybridPackageWorkflowState
method HybridPackageWorkflowState (line 13) | public HybridPackageWorkflowState()
method GetPackageName (line 19) | public string GetPackageName()
method SetPackageName (line 24) | public void SetPackageName(string packageName)
method GetPackageDependencies (line 29) | public List<string> GetPackageDependencies()
method SetPackageDependencies (line 34) | public void SetPackageDependencies(IEnumerable<string> dependencies)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Serialization/UnityPackageWorkflowStateData.cs
class UnityPackageWorkflowState (line 5) | internal class UnityPackageWorkflowState
method UnityPackageWorkflowState (line 10) | public UnityPackageWorkflowState()
method GetPackagePath (line 15) | public string GetPackagePath()
method SetPackagePath (line 20) | public void SetPackagePath(string path)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/Serialization/WorkflowStateData.cs
class WorkflowStateData (line 6) | internal class WorkflowStateData
method WorkflowStateData (line 19) | public WorkflowStateData()
method WorkflowStateData (line 28) | public WorkflowStateData(string packageId) : this()
method GetPackageId (line 33) | public string GetPackageId()
method SetPackageId (line 38) | public void SetPackageId(string packageId)
method GetActiveWorkflow (line 43) | public string GetActiveWorkflow()
method SetActiveWorkflow (line 48) | public void SetActiveWorkflow(string activeWorkflow)
method GetAssetsWorkflowState (line 53) | public AssetsWorkflowState GetAssetsWorkflowState()
method GetUnityPackageWorkflowState (line 58) | public UnityPackageWorkflowState GetUnityPackageWorkflowState()
method GetHybridPackageWorkflowState (line 63) | public HybridPackageWorkflowState GetHybridPackageWorkflowState()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/UnityPackageWorkflow.cs
class UnityPackageWorkflow (line 13) | internal class UnityPackageWorkflow : WorkflowBase
method UnityPackageWorkflow (line 25) | public UnityPackageWorkflow(IPackage package, UnityPackageWorkflowStat...
method SetPackagePath (line 32) | public void SetPackagePath(string path, bool serialize)
method SetMetadata (line 40) | private void SetMetadata()
method GetPackagePath (line 47) | public string GetPackagePath()
method GetAllPaths (line 52) | public override IEnumerable<string> GetAllPaths()
method IsPathValid (line 57) | public override bool IsPathValid(string path, out string error)
method CreateValidator (line 73) | public override IValidator CreateValidator()
method CreateExporter (line 85) | public override IPackageExporter CreateExporter(string _)
method ExportPackage (line 91) | public override Task<PackageExporterResult> ExportPackage(string _)
method CreatePackageUploader (line 96) | protected override IPackageUploader CreatePackageUploader(string expor...
method Serialize (line 111) | protected override void Serialize()
method Deserialize (line 117) | protected override void Deserialize()
method DeserializeFromUploadedData (line 123) | private void DeserializeFromUploadedData()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/WorkflowServices.cs
class WorkflowServices (line 12) | internal class WorkflowServices : IWorkflowServices
method WorkflowServices (line 18) | public WorkflowServices(
method GetPackageUploadedVersions (line 28) | public Task<PackageUploadedUnityVersionDataResponse> GetPackageUploade...
method UploadPackage (line 33) | public Task<PackageUploadResponse> UploadPackage(IPackageUploader uplo...
method StopUploading (line 38) | public void StopUploading(IPackageUploader uploader)
method UpdatePackageData (line 43) | public Task<RefreshedPackageDataResponse> UpdatePackageData(IPackage p...
method SendAnalytic (line 48) | public AnalyticsResult SendAnalytic(IAssetStoreAnalytic data)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/AnalyticsService.cs
class AnalyticsService (line 10) | internal class AnalyticsService : IAnalyticsService
method Send (line 12) | public AnalyticsResult Send(IAssetStoreAnalytic analytic)
method Register (line 29) | private bool Register(IAssetStoreAnalytic analytic)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/AuthenticationAnalytic.cs
class AuthenticationAnalytic (line 10) | #if UNITY_2023_2_OR_NEWER
class AuthenticationAnalyticData (line 20) | [Serializable]
method AuthenticationAnalytic (line 32) | public AuthenticationAnalytic(IAuthenticationType authenticationType, ...
method GetData (line 41) | protected override BaseAnalyticData GetData()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/BaseAnalytic.cs
class BaseAnalytic (line 8) | internal abstract class BaseAnalytic : IAssetStoreAnalytic
class BaseAnalyticData (line 10) | [Serializable]
method GetData (line 20) | protected abstract BaseAnalyticData GetData();
method TryGatherData (line 23) | public bool TryGatherData(out IAnalytic.IData data, [System.Diagnostic...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/IAssetStoreAnalytic.cs
type UNITY_2023_2_OR_NEWER (line 7) | internal interface IAssetStoreAnalytic
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/IAssetStoreAnalyticData.cs
type UNITY_2023_2_OR_NEWER (line 3) | interface IAssetStoreAnalyticData
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/PackageUploadAnalytic.cs
class PackageUploadAnalytic (line 11) | #if UNITY_2023_2_OR_NEWER
class PackageUploadAnalyticData (line 21) | [Serializable]
method PackageUploadAnalytic (line 40) | public PackageUploadAnalytic(
method GetData (line 67) | protected override BaseAnalyticData GetData()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/ValidationResultsSerializer.cs
class ValidationResultsSerializer (line 9) | internal class ValidationResultsSerializer
class ValidationResults (line 11) | private class ValidationResults
class TestResultOutcome (line 18) | private class TestResultOutcome
method TestResultOutcome (line 23) | public TestResultOutcome(TestResultStatus status)
class ValidationResultsResolver (line 30) | private class ValidationResultsResolver : DefaultContractResolver
method ValidationResultsResolver (line 37) | private ValidationResultsResolver()
method CreateProperty (line 49) | protected override JsonProperty CreateProperty(MemberInfo member, Me...
method ConstructValidationResultsJson (line 59) | public static string ConstructValidationResultsJson(ValidationSettings...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/IAnalyticsService.cs
type IAnalyticsService (line 6) | internal interface IAnalyticsService : IUploaderService
method Send (line 8) | AnalyticsResult Send(IAssetStoreAnalytic analytic);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Api/AuthenticationService.cs
class AuthenticationService (line 13) | internal class AuthenticationService : IAuthenticationService
method AuthenticationService (line 21) | public AuthenticationService(IAssetStoreApi api, ICachingService cachi...
method AuthenticateWithCredentials (line 28) | public async Task<AuthenticationResponse> AuthenticateWithCredentials(...
method AuthenticateWithSessionToken (line 34) | public async Task<AuthenticationResponse> AuthenticateWithSessionToken()
method AuthenticateWithCloudToken (line 45) | public async Task<AuthenticationResponse> AuthenticateWithCloudToken()
method Authenticate (line 51) | private async Task<AuthenticationResponse> Authenticate(IAuthenticatio...
method HandleLoginResponse (line 58) | private void HandleLoginResponse(IAuthenticationType authenticationTyp...
method CloudAuthenticationAvailable (line 71) | public bool CloudAuthenticationAvailable(out string username, out stri...
method Deauthenticate (line 78) | public void Deauthenticate()
method SendAnalytics (line 86) | private void SendAnalytics(IAuthenticationType authenticationType, Use...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Api/IAuthenticationService.cs
type IAuthenticationService (line 7) | internal interface IAuthenticationService : IUploaderService
method AuthenticateWithCredentials (line 10) | Task<AuthenticationResponse> AuthenticateWithCredentials(string email,...
method AuthenticateWithSessionToken (line 11) | Task<AuthenticationResponse> AuthenticateWithSessionToken();
method AuthenticateWithCloudToken (line 12) | Task<AuthenticationResponse> AuthenticateWithCloudToken();
method CloudAuthenticationAvailable (line 13) | bool CloudAuthenticationAvailable(out string username, out string clou...
method Deauthenticate (line 14) | void Deauthenticate();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Api/IPackageDownloadingService.cs
type IPackageDownloadingService (line 7) | internal interface IPackageDownloadingService : IUploaderService
method GetPackageData (line 9) | Task<PackagesDataResponse> GetPackageData();
method UpdatePackageData (line 10) | Task<RefreshedPackageDataResponse> UpdatePackageData(IPackage package);
method ClearPackageData (line 11) | void ClearPackageData();
method GetPackageThumbnail (line 12) | Task<PackageThumbnailResponse> GetPackageThumbnail(IPackage package);
method GetPackageUploadedVersions (line 13) | Task<PackageUploadedUnityVersionDataResponse> GetPackageUploadedVersio...
method StopDownloading (line 14) | void StopDownloading();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Api/IPackageUploadingService.cs
type IPackageUploadingService (line 8) | internal interface IPackageUploadingService : IUploaderService
method UploadPackage (line 12) | Task<PackageUploadResponse> UploadPackage(IPackageUploader uploader, I...
method StopUploading (line 13) | void StopUploading(IPackageUploader package);
method StopAllUploadinng (line 14) | void StopAllUploadinng();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Api/PackageDownloadingService.cs
class PackageDownloadingService (line 9) | internal class PackageDownloadingService : IPackageDownloadingService
method PackageDownloadingService (line 19) | public PackageDownloadingService(IAssetStoreApi api, ICachingService c...
method ClearPackageData (line 26) | public void ClearPackageData()
method GetPackageData (line 31) | public async Task<PackagesDataResponse> GetPackageData()
method UpdatePackageData (line 48) | public async Task<RefreshedPackageDataResponse> UpdatePackageData(IPac...
method GetPackageThumbnail (line 58) | public async Task<PackageThumbnailResponse> GetPackageThumbnail(IPacka...
method GetPackageUploadedVersions (line 82) | public async Task<PackageUploadedUnityVersionDataResponse> GetPackageU...
method StopDownloading (line 103) | public void StopDownloading()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Api/PackageUploadingService.cs
class PackageUploadingService (line 12) | internal class PackageUploadingService : IPackageUploadingService
class UploadInProgress (line 14) | private class UploadInProgress
method UploadInProgress (line 20) | public UploadInProgress(IPackageUploader uploader, IProgress<float> ...
method PackageUploadingService (line 33) | public PackageUploadingService(IAssetStoreApi api)
method UploadPackage (line 39) | public async Task<PackageUploadResponse> UploadPackage(IPackageUploade...
method StartTrackingUpload (line 51) | private UploadInProgress StartTrackingUpload(IPackageUploader uploader...
method StopTrackingUpload (line 66) | private void StopTrackingUpload(UploadInProgress uploadInProgress)
method PreventEnteringPlayMode (line 78) | private void PreventEnteringPlayMode(PlayModeStateChange change)
method StopUploading (line 88) | public void StopUploading(IPackageUploader uploader)
method StopAllUploadinng (line 97) | public void StopAllUploadinng()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Caching/CachingService.cs
class CachingService (line 15) | internal class CachingService : ICachingService
method GetCachedUploaderWindow (line 19) | public bool GetCachedUploaderWindow(out VisualElement uploaderWindow)
method CacheUploaderWindow (line 25) | public void CacheUploaderWindow(VisualElement uploaderWindow)
method CacheSessionToken (line 30) | public void CacheSessionToken(string sessionToken)
method GetCachedSessionToken (line 38) | public bool GetCachedSessionToken(out string sessionToken)
method ClearCachedSessionToken (line 44) | public void ClearCachedSessionToken()
method GetCachedPackageMetadata (line 49) | public bool GetCachedPackageMetadata(out List<Package> data)
method CachePackageMetadata (line 71) | public void CachePackageMetadata(List<Package> data)
method DeletePackageMetadata (line 85) | public void DeletePackageMetadata()
method UpdatePackageMetadata (line 90) | public void UpdatePackageMetadata(Package data)
method GetCachedPackageThumbnail (line 109) | public bool GetCachedPackageThumbnail(string packageId, out Texture2D ...
method CachePackageThumbnail (line 120) | public void CachePackageThumbnail(string packageId, Texture2D texture)
method GetCachedWorkflowStateData (line 125) | public bool GetCachedWorkflowStateData(string packageId, out WorkflowS...
method CacheWorkflowStateData (line 149) | public void CacheWorkflowStateData(WorkflowStateData data)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Caching/ICachingService.cs
type ICachingService (line 9) | internal interface ICachingService : IUploaderService
method CacheUploaderWindow (line 11) | void CacheUploaderWindow(VisualElement uploaderWindow);
method GetCachedUploaderWindow (line 12) | bool GetCachedUploaderWindow(out VisualElement uploaderWindow);
method CacheSessionToken (line 13) | void CacheSessionToken(string sessionToken);
method GetCachedSessionToken (line 14) | bool GetCachedSessionToken(out string sessionToken);
method ClearCachedSessionToken (line 15) | void ClearCachedSessionToken();
method GetCachedPackageMetadata (line 16) | bool GetCachedPackageMetadata(out List<Package> data);
method UpdatePackageMetadata (line 17) | void UpdatePackageMetadata(Package data);
method CachePackageMetadata (line 18) | void CachePackageMetadata(List<Package> data);
method DeletePackageMetadata (line 19) | void DeletePackageMetadata();
method GetCachedPackageThumbnail (line 20) | bool GetCachedPackageThumbnail(string packageId, out Texture2D texture);
method CachePackageThumbnail (line 21) | void CachePackageThumbnail(string packageId, Texture2D texture);
method GetCachedWorkflowStateData (line 22) | bool GetCachedWorkflowStateData(string packageId, out WorkflowStateDat...
method CacheWorkflowStateData (line 23) | void CacheWorkflowStateData(WorkflowStateData data);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/IUploaderService.cs
type IUploaderService (line 3) | internal interface IUploaderService { }
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/PackageFactory/IPackageFactoryService.cs
type IPackageFactoryService (line 8) | internal interface IPackageFactoryService : IUploaderService
method CreatePackageGroup (line 10) | IPackageGroup CreatePackageGroup(string groupName, List<IPackage> pack...
method CreatePackage (line 11) | IPackage CreatePackage(PackageModel packageModel);
method CreatePackageContent (line 12) | IPackageContent CreatePackageContent(IPackage package);
method CreateWorkflows (line 13) | List<IWorkflow> CreateWorkflows(IPackage package, WorkflowStateData st...
method CreateAssetsWorkflow (line 14) | AssetsWorkflow CreateAssetsWorkflow(IPackage package, AssetsWorkflowSt...
method CreateUnityPackageWorkflow (line 15) | UnityPackageWorkflow CreateUnityPackageWorkflow(IPackage package, Unit...
method CreateHybridPackageWorkflow (line 16) | HybridPackageWorkflow CreateHybridPackageWorkflow(IPackage package, Hy...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/PackageFactory/PackageFactoryService.cs
class PackageFactoryService (line 10) | internal class PackageFactoryService : IPackageFactoryService
method PackageFactoryService (line 20) | public PackageFactoryService(
method CreatePackage (line 35) | public IPackage CreatePackage(PackageModel packageModel)
method CreatePackageGroup (line 41) | public IPackageGroup CreatePackageGroup(string groupName, List<IPackag...
method CreatePackageContent (line 46) | public IPackageContent CreatePackageContent(IPackage package)
method CreateWorkflows (line 58) | public List<IWorkflow> CreateWorkflows(IPackage package, WorkflowState...
method CreateAssetsWorkflow (line 72) | public AssetsWorkflow CreateAssetsWorkflow(IPackage package, AssetsWor...
method CreateUnityPackageWorkflow (line 77) | public UnityPackageWorkflow CreateUnityPackageWorkflow(IPackage packag...
method CreateHybridPackageWorkflow (line 82) | public HybridPackageWorkflow CreateHybridPackageWorkflow(IPackage pack...
method GetOrCreateWorkflowStateData (line 87) | private WorkflowStateData GetOrCreateWorkflowStateData(IPackage package)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/UploaderServiceProvider.cs
class UploaderServiceProvider (line 8) | internal class UploaderServiceProvider : ServiceProvider<IUploaderService>
method UploaderServiceProvider (line 13) | private UploaderServiceProvider() { }
method RegisterServices (line 15) | protected override void RegisterServices()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/Abstractions/ValidationElementBase.cs
class ValidationElementBase (line 9) | internal abstract class ValidationElementBase : VisualElement
method ValidationElementBase (line 19) | protected ValidationElementBase(IWorkflow workflow)
method Create (line 25) | private void Create()
method CreateInfoRow (line 31) | private void CreateInfoRow()
method CreateResultsBox (line 56) | private void CreateResultsBox()
method ConfirmValidation (line 71) | protected virtual bool ConfirmValidation()
method Validate (line 77) | private void Validate()
method DisplayResult (line 96) | private void DisplayResult(ValidationResult result)
method HideResult (line 103) | public void HideResult()
method UpdateValidationResultImage (line 108) | protected void UpdateValidationResultImage(ValidationResult result)
method UpdateValidationResultLabel (line 127) | private void UpdateValidationResultLabel(ValidationResult result)
method GetValidationSummaryStatus (line 158) | private TestResultStatus GetValidationSummaryStatus(ValidationResult r...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/Abstractions/WorkflowElementBase.cs
class WorkflowElementBase (line 10) | internal abstract class WorkflowElementBase : VisualElement
method WorkflowElementBase (line 26) | public WorkflowElementBase(IWorkflow workflow)
method CreatePathElement (line 31) | protected void CreatePathElement(string labelText, string labelTooltip)
method CreatePreviewGenerationElement (line 38) | protected void CreatePreviewGenerationElement()
method CreateValidationElement (line 51) | protected void CreateValidationElement(ValidationElementBase validatio...
method CreateUploadElement (line 58) | protected void CreateUploadElement(IWorkflow workflow, bool exposeExpo...
method BrowsePath (line 67) | protected abstract void BrowsePath();
method SetPathSelectionTextField (line 69) | protected void SetPathSelectionTextField(string value)
method CheckForMissingMetas (line 84) | protected void CheckForMissingMetas(IEnumerable<string> paths)
method Is (line 126) | public bool Is(IWorkflow workflow)
method EnableInteraction (line 131) | protected virtual void EnableInteraction()
method DisableInteraction (line 140) | protected virtual void DisableInteraction()
method Deserialize (line 149) | protected abstract void Deserialize();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/AccountToolbar.cs
class AccountToolbar (line 8) | internal class AccountToolbar : VisualElement
method AccountToolbar (line 17) | public AccountToolbar()
method Create (line 22) | private void Create()
method Refresh (line 59) | private async void Refresh()
method Logout (line 66) | private void Logout()
method SetUser (line 71) | public void SetUser(User user)
method EnableButtons (line 92) | public void EnableButtons()
method DisableButtons (line 97) | public void DisableButtons()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/AssetsWorkflowElement.cs
class AssetsWorkflowElement (line 12) | internal class AssetsWorkflowElement : WorkflowElementBase
method AssetsWorkflowElement (line 29) | public AssetsWorkflowElement(AssetsWorkflow workflow) : base(workflow)
method Create (line 37) | private void Create()
method CreateDependenciesToggleElement (line 48) | private void CreateDependenciesToggleElement()
method CreateDependenciesSelectionElement (line 80) | private void CreateDependenciesSelectionElement()
method CreateSpecialFoldersElement (line 95) | private void CreateSpecialFoldersElement()
method BrowsePath (line 110) | protected override void BrowsePath()
method HandlePathSelection (line 148) | private void HandlePathSelection(string relativeExportPath, bool seria...
method CheckForMissingMetas (line 160) | private void CheckForMissingMetas()
method DependencyToggleValueChange (line 167) | private void DependencyToggleValueChange(bool serialize)
method UpdateSpecialFoldersElement (line 184) | private void UpdateSpecialFoldersElement()
method EnableInteraction (line 192) | protected override void EnableInteraction()
method DisableInteraction (line 200) | protected override void DisableInteraction()
method Deserialize (line 208) | protected override void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/CurrentProjectValidationElement.cs
class CurrentProjectValidationElement (line 6) | internal class CurrentProjectValidationElement : ValidationElementBase
method CurrentProjectValidationElement (line 8) | public CurrentProjectValidationElement(IWorkflow workflow) : base(work...
method Create (line 13) | private void Create()
method CreateResultsBox (line 18) | private void CreateResultsBox()
method ViewReport (line 26) | private void ViewReport()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/ExternalProjectValidationElement.cs
class ExternalProjectValidationElement (line 11) | internal class ExternalProjectValidationElement : ValidationElementBase
method ExternalProjectValidationElement (line 15) | public ExternalProjectValidationElement(IWorkflow workflow) : base(wor...
method Create (line 20) | private void Create()
method CreateProjectButtonContainer (line 26) | private void CreateProjectButtonContainer()
method CreateProjectButtons (line 34) | private void CreateProjectButtons()
method OpenProject (line 46) | private void OpenProject()
method SaveProject (line 60) | private void SaveProject()
method ConfirmValidation (line 85) | protected override bool ConfirmValidation()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/HybridPackageWorkflowElement.cs
class HybridPackageWorkflowElement (line 11) | internal class HybridPackageWorkflowElement : WorkflowElementBase
method HybridPackageWorkflowElement (line 19) | public HybridPackageWorkflowElement(HybridPackageWorkflow workflow) : ...
method Create (line 27) | private void Create()
method CreateDependenciesElement (line 36) | private void CreateDependenciesElement()
method BrowsePath (line 52) | protected override void BrowsePath()
method HandlePathSelection (line 68) | private void HandlePathSelection(string packageManifestPath, bool seri...
method CheckForMissingMetas (line 80) | private void CheckForMissingMetas()
method UpdateDependenciesElement (line 87) | private void UpdateDependenciesElement()
method EnableInteraction (line 95) | protected override void EnableInteraction()
method DisableInteraction (line 101) | protected override void DisableInteraction()
method Deserialize (line 107) | protected override void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/LoadingSpinner.cs
class LoadingSpinner (line 6) | internal class LoadingSpinner : VisualElement
method LoadingSpinner (line 16) | public LoadingSpinner()
method Show (line 26) | public void Show()
method Hide (line 32) | public void Hide()
method SpinnerLoop (line 38) | private void SpinnerLoop()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/MultiToggleSelectionElement.cs
class MultiToggleSelectionElement (line 9) | internal class MultiToggleSelectionElement : VisualElement
method MultiToggleSelectionElement (line 37) | public MultiToggleSelectionElement()
method Create (line 44) | private void Create()
method Populate (line 109) | public void Populate(Dictionary<string, bool> selections)
method FilterDependencies (line 127) | private void FilterDependencies(string filter)
method OnToggle (line 157) | private void OnToggle(ChangeEvent<bool> evt, string text)
method OnAllToggles (line 164) | private void OnAllToggles(bool value)
method SelectAllToggles (line 177) | private void SelectAllToggles()
method UnselectAllToggles (line 182) | private void UnselectAllToggles()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PackageContentElement.cs
class PackageContentElement (line 9) | internal class PackageContentElement : VisualElement
method PackageContentElement (line 19) | public PackageContentElement(IPackageContent content)
method Create (line 29) | private void Create()
method CreateWorkflowSelection (line 38) | private void CreateWorkflowSelection()
method AppendToolbarActionForWorkflow (line 74) | private void AppendToolbarActionForWorkflow(IWorkflow workflow)
method CreateWorkflows (line 82) | private void CreateWorkflows()
method ActiveWorkflowChanged (line 112) | private void ActiveWorkflowChanged(IWorkflow workflow)
method EnableInteraction (line 122) | private void EnableInteraction()
method DisableInteraction (line 127) | private void DisableInteraction()
method Deserialize (line 132) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PackageElement.cs
class PackageElement (line 13) | internal class PackageElement : VisualElement
method PackageElement (line 35) | public PackageElement(IPackage package, IPackageFactoryService package...
method Create (line 48) | private void Create()
method CreateFoldoutContent (line 111) | private void CreateFoldoutContent()
method SubscribeToContentWorkflowUpdates (line 124) | private void SubscribeToContentWorkflowUpdates(IPackageContent content)
method UpdateProgressBar (line 132) | private void UpdateProgressBar(UploadStatus? status, float? progress)
method Toggle (line 145) | private void Toggle()
method ToggleProgressBar (line 169) | private void ToggleProgressBar()
method Is (line 177) | public bool Is(IPackage package)
method Select (line 182) | public void Select()
method Unselect (line 188) | public void Unselect()
method SetPackageThumbnail (line 194) | private void SetPackageThumbnail()
method Refresh (line 199) | private void Refresh()
method FormatDateSize (line 205) | private string FormatDateSize()
method OpenPackageInBrowser (line 210) | private void OpenPackageInBrowser()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PackageGroupElement.cs
class PackageGroupElement (line 9) | internal class PackageGroupElement : VisualElement
method PackageGroupElement (line 26) | public PackageGroupElement(IPackageGroup packageGroup, IPackageFactory...
method Create (line 38) | private void Create()
method CreatePackageGroup (line 45) | protected void CreatePackageGroup()
method CreatePackageGroupContent (line 63) | private void CreatePackageGroupContent()
method AddPackagesToGroupContent (line 83) | private void AddPackagesToGroupContent()
method FormatGroupLabel (line 93) | private void FormatGroupLabel(int displayedPackageCount)
method RefreshPackages (line 101) | private void RefreshPackages(List<IPackage> packages)
method OnPackageGroupClicked (line 117) | private void OnPackageGroupClicked()
method Toggle (line 122) | public void Toggle(bool expand)
method OnPackageSelected (line 138) | private void OnPackageSelected(PackageElement packageElement)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PackageListToolbar.cs
class PackageListToolbar (line 8) | internal class PackageListToolbar : VisualElement
method PackageListToolbar (line 12) | public PackageListToolbar()
method Create (line 17) | private void Create()
method SetPackageGroups (line 40) | public void SetPackageGroups(List<IPackageGroup> packageGroups)
method SearchFilter (line 45) | private void SearchFilter(ChangeEvent<string> evt)
method Sort (line 52) | public void Sort(PackageSorting sortingType)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PackageUploadElement.cs
class PackageUploadElement (line 19) | internal class PackageUploadElement : VisualElement
method PackageUploadElement (line 36) | public PackageUploadElement(IWorkflow workflow, bool exposeExportButton)
method Create (line 44) | private void Create()
method CreateButtonContainer (line 52) | private void CreateButtonContainer()
method CreateExportButton (line 62) | private void CreateExportButton()
method CreateUploadButton (line 73) | private void CreateUploadButton()
method CreateProgressContainer (line 82) | private void CreateProgressContainer()
method Export (line 101) | private async Task<PackageExporterResult> Export(bool interactive)
method Upload (line 150) | private async void Upload()
method ValidateUnityVersionsBeforeUpload (line 186) | private async Task<bool> ValidateUnityVersionsBeforeUpload()
method UpdateProgressBar (line 212) | private void UpdateProgressBar(UploadStatus? status, float? progress)
method Cancel (line 229) | private void Cancel()
method OnUploadingStopped (line 235) | private async Task OnUploadingStopped(PackageUploadResponse response)
method Reset (line 262) | private void Reset()
method GetColorByStatus (line 275) | public static Color GetColorByStatus(UploadStatus status)
method GetProgressBarTitleByStatus (line 292) | private string GetProgressBarTitleByStatus(UploadStatus status)
method EnableInteraction (line 308) | private void EnableInteraction()
method DisableInteraction (line 314) | private void DisableInteraction()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PathSelectionElement.cs
class PathSelectionElement (line 6) | internal class PathSelectionElement : VisualElement
method PathSelectionElement (line 17) | public PathSelectionElement(string labelText, string labelTooltip)
method Create (line 27) | private void Create()
method Browse (line 53) | private void Browse()
method SetPath (line 58) | public void SetPath(string path)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/PreviewGenerationElement.cs
class PreviewGenerationElement (line 9) | internal class PreviewGenerationElement : VisualElement
method PreviewGenerationElement (line 21) | public PreviewGenerationElement(IWorkflow workflow)
method Create (line 28) | private void Create()
method CreateInfoRow (line 34) | private void CreateInfoRow()
method CreateViewButton (line 66) | private void CreateViewButton()
method DependencyToggleValueChange (line 83) | private void DependencyToggleValueChange()
method ViewClicked (line 89) | private void ViewClicked()
method DisplayProgress (line 104) | private void DisplayProgress(float value)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Elements/UnityPackageWorkflowElement.cs
class UnityPackageWorkflowElement (line 7) | internal class UnityPackageWorkflowElement : WorkflowElementBase
method UnityPackageWorkflowElement (line 12) | public UnityPackageWorkflowElement(UnityPackageWorkflow workflow) : ba...
method Create (line 18) | private void Create()
method BrowsePath (line 26) | protected override void BrowsePath()
method HandleUnityPackageUploadPathSelection (line 44) | private void HandleUnityPackageUploadPathSelection(string selectedPack...
method Deserialize (line 53) | protected override void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Views/LoginView.cs
class LoginView (line 11) | internal class LoginView : VisualElement
method LoginView (line 31) | public LoginView(IAuthenticationService authenticationService)
method Create (line 37) | public void Create()
method CreateAssetStoreLogo (line 48) | private void CreateAssetStoreLogo()
method CreateCloudLogin (line 57) | private void CreateCloudLogin()
method CreateErrorBox (line 81) | private void CreateErrorBox()
method DisplayError (line 96) | public void DisplayError(string message)
method ClearError (line 107) | private void ClearError()
method CreateCredentialsLogin (line 113) | private void CreateCredentialsLogin()
method LoginWithSessionToken (line 175) | public async void LoginWithSessionToken()
method LoginWithCloudToken (line 193) | private async void LoginWithCloudToken()
method LoginWithCredentials (line 209) | private async void LoginWithCredentials()
method IsLoginDataValid (line 226) | private bool IsLoginDataValid(string email, string password)
method UpdateCloudLoginButton (line 243) | private void UpdateCloudLoginButton()
method OnLoginSuccess (line 266) | private void OnLoginSuccess(User user)
method OnLoginFail (line 277) | private void OnLoginFail(string message)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI/Views/PackageListView.cs
class PackageListView (line 18) | internal class PackageListView : VisualElement
method PackageListView (line 34) | public PackageListView(IPackageDownloadingService packageDownloadingSe...
method Create (line 44) | private void Create()
method CreateScrollView (line 58) | private void CreateScrollView()
method CreateFilteringTools (line 64) | private void CreateFilteringTools()
method CreateLoadingSpinner (line 70) | private void CreateLoadingSpinner()
method InsertReadOnlyInfoBox (line 76) | private void InsertReadOnlyInfoBox(string infoText)
method LoadPackages (line 90) | public async Task LoadPackages(bool useCachedData)
method CreatePackages (line 147) | private List<IPackage> CreatePackages(List<PackageModel> packageModels)
method CreatePackageGroups (line 152) | private List<IPackageGroup> CreatePackageGroups(List<IPackage> packages)
method CreatePackageGroupElements (line 168) | private List<PackageGroupElement> CreatePackageGroupElements(List<IPac...
method PopulatePackageList (line 177) | private void PopulatePackageList(List<PackageGroupElement> packageGroups)
method SetupFilteringToolbar (line 214) | private void SetupFilteringToolbar(List<IPackageGroup> packageGroups)
method DownloadAndSetThumbnails (line 221) | private void DownloadAndSetThumbnails()
method DownloadAndSetThumbnail (line 229) | private async void DownloadAndSetThumbnail(IPackage package)
method ShowPackagesView (line 238) | private void ShowPackagesView()
method OnSceneChange (line 244) | private void OnSceneChange(Scene _, Scene __)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Uploader/UploaderWindow.cs
class UploaderWindow (line 18) | internal class UploaderWindow : AssetStoreToolsWindow
method Init (line 43) | protected override void Init()
method RegisterServices (line 49) | private void RegisterServices()
method SetupWindow (line 60) | private void SetupWindow()
method CreateLoginView (line 91) | private void CreateLoginView()
method CreatePackageListView (line 98) | private void CreatePackageListView()
method CreateAccountToolbar (line 105) | private void CreateAccountToolbar()
method PerformAuthentication (line 113) | private void PerformAuthentication()
method OnAuthenticationSuccess (line 119) | private async void OnAuthenticationSuccess(User user)
method RefreshPackages (line 130) | private async Task RefreshPackages()
method LogOut (line 138) | private void LogOut()
method PackageViewInitializationError (line 150) | private void PackageViewInitializationError(Exception e)
method ShowAuthenticationView (line 156) | private void ShowAuthenticationView()
method ShowAccountPackageView (line 163) | private void ShowAccountPackageView()
method ShowElement (line 170) | private void ShowElement(params VisualElement[] elements)
method HideElement (line 176) | private void HideElement(params VisualElement[] elements)
method OnDestroy (line 182) | private void OnDestroy()
method OnWantsToQuit (line 191) | private bool OnWantsToQuit()
method OnGUI (line 206) | private void OnGUI()
method CheckForDebugMode (line 211) | private void CheckForDebugMode()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/ASDebug.cs
class ASDebug (line 6) | internal static class ASDebug
type LogType (line 8) | private enum LogType
method FormatInfo (line 15) | private static string FormatInfo(object message) => $"<b>[AST Info]</b...
method FormatWarning (line 16) | private static string FormatWarning(object message) => $"<color=yellow...
method FormatError (line 17) | private static string FormatError(object message) => $"<color=red><b>[...
method Log (line 28) | public static void Log(object message)
method LogWarning (line 33) | public static void LogWarning(object message)
method LogError (line 38) | public static void LogError(object message)
method LogMessage (line 43) | private static void LogMessage(object message, LogType type)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/ASToolsPreferences.cs
class ASToolsPreferences (line 9) | internal class ASToolsPreferences
method ASToolsPreferences (line 16) | private ASToolsPreferences()
method Load (line 21) | private void Load()
method Save (line 31) | public void Save(bool triggerSettingsChange = false)
class ASToolsPreferencesProvider (line 76) | internal class ASToolsPreferencesProvider : SettingsProvider
class Styles (line 80) | private class Styles
method OpenSettings (line 91) | public static void OpenSettings()
method ASToolsPreferencesProvider (line 96) | private ASToolsPreferencesProvider(string path, SettingsScope scopes, ...
method OnGUI (line 99) | public override void OnGUI(string searchContext)
method CreateAssetStoreToolsSettingProvider (line 120) | [SettingsProvider]
method CreateSettingsWindowGUIScope (line 127) | private IDisposable CreateSettingsWindowGUIScope()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/ASToolsUpdater.cs
class ASToolsUpdater (line 11) | [InitializeOnLoad]
method ASToolsUpdater (line 38) | static ASToolsUpdater()
method CheckForUpdatesAfterEditorUpdate (line 45) | private static async void CheckForUpdatesAfterEditorUpdate()
method ShouldCheckForUpdates (line 61) | private static bool ShouldCheckForUpdates()
method CheckForUpdates (line 69) | private static async Task CheckForUpdates(Action<bool, Version, Versio...
method Init (line 98) | protected override void Init()
method OnVersionsRetrieved (line 107) | private void OnVersionsRetrieved(bool success, Version currentVersion,...
method SetupLoadingSpinner (line 122) | private void SetupLoadingSpinner()
method SetupVersionInfo (line 133) | private void SetupVersionInfo(Version currentVersion, Version latestVe...
method AddDescriptionLabels (line 145) | private void AddDescriptionLabels(Version currentVersion, Version late...
method AddUpdateButtons (line 181) | private void AddUpdateButtons(Version currentVersion, Version latestVe...
method AddCheckForUpdatesToggle (line 197) | private void AddCheckForUpdatesToggle()
method OnCheckForUpdatesToggleChanged (line 208) | private void OnCheckForUpdatesToggleChanged(ChangeEvent<bool> evt)
method SetupFailInfo (line 214) | private void SetupFailInfo()
method LoadingSpinLoop (line 228) | private void LoadingSpinLoop()
method OnDestroy (line 245) | private void OnDestroy()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/CacheUtil.cs
class CacheUtil (line 6) | internal static class CacheUtil
method GetFileFromTempCache (line 8) | public static bool GetFileFromTempCache(string fileName, out string fi...
method GetFileFromPersistentCache (line 13) | public static bool GetFileFromPersistentCache(string fileName, out str...
method GetFileFromProjectPersistentCache (line 18) | public static bool GetFileFromProjectPersistentCache(string projectPat...
method GetCacheFile (line 23) | private static bool GetCacheFile(string rootPath, string fileName, out...
method CreateFileInTempCache (line 29) | public static void CreateFileInTempCache(string fileName, object conte...
method CreateFileInPersistentCache (line 34) | public static void CreateFileInPersistentCache(string fileName, object...
method CreateCacheFile (line 39) | private static void CreateCacheFile(string rootPath, string fileName, ...
method DeleteFileFromTempCache (line 72) | public static void DeleteFileFromTempCache(string fileName)
method DeleteFileFromPersistentCache (line 77) | public static void DeleteFileFromPersistentCache(string fileName)
method DeleteFileFromCache (line 82) | private static void DeleteFileFromCache(string rootPath, string fileName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/FileUtility.cs
class FileUtility (line 8) | internal static class FileUtility
class RenameInfo (line 10) | private class RenameInfo
method AbsolutePathToRelativePath (line 16) | public static string AbsolutePathToRelativePath(string path, bool allo...
method CopyDirectory (line 50) | public static void CopyDirectory(string sourceDir, string destinationD...
method ShouldHaveMeta (line 83) | public static bool ShouldHaveMeta(string assetPath)
method IsMissingMetaFiles (line 104) | public static bool IsMissingMetaFiles(IEnumerable<string> sourcePaths)
method GenerateMetaFiles (line 133) | public static void GenerateMetaFiles(IEnumerable<string> sourcePaths)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/LegacyToolsRemover.cs
class LegacyToolsRemover (line 9) | [InitializeOnLoad]
method LegacyToolsRemover (line 17) | static LegacyToolsRemover()
method CheckAndRemoveLegacyTools (line 29) | private static void CheckAndRemoveLegacyTools()
method ProjectContainsLegacyTools (line 52) | private static bool ProjectContainsLegacyTools(out string path)
method RemoveEmptyFolders (line 70) | private static void RemoveEmptyFolders(string directory)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/PackageUtility.cs
class PackageUtility (line 16) | internal static class PackageUtility
class PackageInfoSampleMetadata (line 18) | public class PackageInfoSampleMetadata
class PackageInfoUnityVersionMetadata (line 25) | public class PackageInfoUnityVersionMetadata
method ToString (line 36) | public override string ToString()
method GetPackageIdentifier (line 53) | public static string GetPackageIdentifier(this PackageInfo package)
method GetAllPackages (line 58) | public static PackageInfo[] GetAllPackages()
method GetAllLocalPackages (line 69) | public static PackageInfo[] GetAllLocalPackages()
method GetAllRegistryPackages (line 77) | public static PackageInfo[] GetAllRegistryPackages()
method GetPackageByManifestPath (line 87) | public static bool GetPackageByManifestPath(string packageManifestPath...
method GetPackageByPackageName (line 104) | public static bool GetPackageByPackageName(string packageName, out Pac...
method GetManifestAsset (line 114) | public static TextAsset GetManifestAsset(this PackageInfo packageInfo)
method GetSamples (line 119) | public static List<PackageInfoSampleMetadata> GetSamples(this PackageI...
method GetUnityVersion (line 150) | public static PackageInfoUnityVersionMetadata GetUnityVersion(this Pac...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/ServiceProvider.cs
class ServiceProvider (line 7) | internal abstract class ServiceProvider<Service>
class MissingServiceDependencyException (line 12) | protected class MissingServiceDependencyException : Exception
method MissingServiceDependencyException (line 17) | public MissingServiceDependencyException(Type serviceType, Type miss...
method ServiceProvider (line 24) | protected ServiceProvider()
method RegisterServices (line 30) | protected abstract void RegisterServices();
method Register (line 32) | protected void Register<TService, TInstance>() where TService : Servic...
method Register (line 37) | protected void Register<TService>(Func<Service> initializer) where TSe...
method CreateRegisteredServices (line 42) | private void CreateRegisteredServices()
method CreateServiceInstance (line 80) | private Service CreateServiceInstance(Type concreteType)
method GetService (line 100) | public T GetService<T>() where T : Service
method GetService (line 105) | public object GetService(Type type)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/StyleSelector.cs
class StyleSelector (line 8) | internal static class StyleSelector
method GetStylesheet (line 10) | private static StyleSheet GetStylesheet(string rootPath, string filePath)
method GetStylesheetTheme (line 19) | private static StyleSheet GetStylesheetTheme(string rootPath, string f...
class UploaderWindow (line 25) | public static class UploaderWindow
class ValidatorWindow (line 37) | public static class ValidatorWindow
class PreviewGeneratorWindow (line 43) | public static class PreviewGeneratorWindow
class UpdaterWindow (line 49) | public static class UpdaterWindow
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Utility/SymlinkUtil.cs
class SymlinkUtil (line 5) | internal static class SymlinkUtil
method FindSymlinkFolderRelative (line 9) | public static bool FindSymlinkFolderRelative(string folderPathAbsolute...
method CompareDirectories (line 40) | private static bool CompareDirectories(DirectoryInfo directory, Direct...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Categories/CategoryEvaluator.cs
class CategoryEvaluator (line 6) | internal class CategoryEvaluator
method CategoryEvaluator (line 10) | public CategoryEvaluator(string category)
method SetCategory (line 18) | public void SetCategory(string category)
method GetCategory (line 26) | public string GetCategory()
method Evaluate (line 31) | public TestResultStatus Evaluate(ValidationTest validation, bool slugi...
method EvaluateAndSlugify (line 46) | public TestResultStatus EvaluateAndSlugify(ValidationTest validation)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Categories/ValidatorCategory.cs
class ValidatorCategory (line 7) | [System.Serializable]
method EvaluateByFilter (line 15) | public TestResultStatus EvaluateByFilter(string category)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/CurrentProjectValidator.cs
class CurrentProjectValidator (line 8) | internal class CurrentProjectValidator : ValidatorBase
method CurrentProjectValidator (line 12) | public CurrentProjectValidator(CurrentProjectValidationSettings settin...
method ValidateSettings (line 17) | protected override void ValidateSettings()
method ValidateUnityPackageSettings (line 37) | private void ValidateUnityPackageSettings()
method GenerateValidationResult (line 50) | protected override ValidationResult GenerateValidationResult()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/CurrentProjectValidationSettings.cs
class CurrentProjectValidationSettings (line 6) | internal class CurrentProjectValidationSettings : ValidationSettings
method CurrentProjectValidationSettings (line 11) | public CurrentProjectValidationSettings()
method GetHashCode (line 17) | public override int GetHashCode()
method Equals (line 22) | public override bool Equals(object obj)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/ExternalProjectValidationSettings.cs
class ExternalProjectValidationSettings (line 3) | internal class ExternalProjectValidationSettings : ValidationSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/MessageActions/HighlightObjectAction.cs
class HighlightObjectAction (line 7) | internal class HighlightObjectAction : IMessageAction
method HighlightObjectAction (line 15) | public HighlightObjectAction() { }
method HighlightObjectAction (line 17) | public HighlightObjectAction(Object target)
method Execute (line 22) | public void Execute()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/MessageActions/IMessageAction.cs
type IMessageAction (line 6) | internal interface IMessageAction
method Execute (line 14) | void Execute();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/MessageActions/OpenAssetAction.cs
class OpenAssetAction (line 7) | internal class OpenAssetAction : IMessageAction
method OpenAssetAction (line 17) | public OpenAssetAction() { }
method OpenAssetAction (line 19) | public OpenAssetAction(Object target)
method OpenAssetAction (line 24) | public OpenAssetAction(Object target, int lineNumber) : this(target)
method Execute (line 29) | public void Execute()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/TestResult.cs
type TestResult (line 7) | internal struct TestResult
method GetMessage (line 17) | public TestResultMessage GetMessage(int index)
method AddMessage (line 22) | public void AddMessage(string msg)
method AddMessage (line 27) | public void AddMessage(string msg, IMessageAction clickAction)
method AddMessage (line 32) | public void AddMessage(string msg, IMessageAction clickAction, params ...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/TestResultMessage.cs
class TestResultMessage (line 8) | internal class TestResultMessage
method TestResultMessage (line 20) | public TestResultMessage() { }
method TestResultMessage (line 22) | public TestResultMessage(string text)
method TestResultMessage (line 28) | public TestResultMessage(string text, IMessageAction clickAction) : th...
method GetText (line 33) | public string GetText()
method GetClickAction (line 38) | public IMessageAction GetClickAction()
method AddMessageObject (line 43) | public void AddMessageObject(Object obj)
method GetMessageObject (line 48) | public TestResultObject GetMessageObject(int index)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/TestResultObject.cs
class TestResultObject (line 7) | internal class TestResultObject
method TestResultObject (line 14) | public TestResultObject(Object obj)
method GetObject (line 20) | public Object GetObject()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/TestResultStatus.cs
type TestResultStatus (line 3) | internal enum TestResultStatus
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/ValidationResult.cs
class ValidationResult (line 7) | internal class ValidationResult
method ValidationResult (line 15) | public ValidationResult()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/ValidationSettings.cs
class ValidationSettings (line 3) | internal abstract class ValidationSettings
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/ValidationStatus.cs
type ValidationStatus (line 3) | internal enum ValidationStatus
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Data/ValidationType.cs
type ValidationType (line 3) | internal enum ValidationType
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/ExternalProjectValidator.cs
class ExternalProjectValidator (line 13) | internal class ExternalProjectValidator : ValidatorBase
method ExternalProjectValidator (line 17) | public ExternalProjectValidator(ExternalProjectValidationSettings sett...
method ValidateSettings (line 22) | protected override void ValidateSettings()
method GenerateValidationResult (line 32) | protected override ValidationResult GenerateValidationResult()
method PrepareTemporaryValidationProject (line 62) | private ValidationResult PrepareTemporaryValidationProject(bool intera...
method ValidateTemporaryValidationProject (line 127) | private ValidationResult ValidateTemporaryValidationProject(Validation...
method ParseValidationResult (line 162) | private ValidationResult ParseValidationResult(string externalProjectP...
method OpenExternalValidationProject (line 191) | public static void OpenExternalValidationProject(string projectPath)
method ValidateProject (line 209) | private static void ValidateProject()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/IValidator.cs
type IValidator (line 5) | internal interface IValidator
method Validate (line 9) | ValidationResult Validate();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/CachingService/CachingService.cs
class CachingService (line 11) | internal class CachingService : ICachingService
method GetCachedValidatorStateData (line 13) | public bool GetCachedValidatorStateData(out ValidatorStateData stateData)
method GetCachedValidatorStateData (line 18) | public bool GetCachedValidatorStateData(string projectPath, out Valida...
method CacheValidatorStateData (line 42) | public void CacheValidatorStateData(ValidatorStateData stateData)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/CachingService/ICachingService.cs
type ICachingService (line 5) | internal interface ICachingService : IValidatorService
method CacheValidatorStateData (line 7) | void CacheValidatorStateData(ValidatorStateData stateData);
method GetCachedValidatorStateData (line 8) | bool GetCachedValidatorStateData(out ValidatorStateData stateData);
method GetCachedValidatorStateData (line 9) | bool GetCachedValidatorStateData(string projectPath, out ValidatorStat...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/CachingService/PreviewDatabaseContractResolver.cs
class PreviewDatabaseContractResolver (line 5) | internal class PreviewDatabaseContractResolver : DefaultContractResolver
method PreviewDatabaseContractResolver (line 12) | private PreviewDatabaseContractResolver()
method ResolvePropertyName (line 17) | protected override string ResolvePropertyName(string propertyName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/IValidatorService.cs
type IValidatorService (line 3) | internal interface IValidatorService { }
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Abstractions/IAssetUtilityService.cs
type IAssetUtilityService (line 7) | internal interface IAssetUtilityService : IValidatorService
method GetAssetPathsFromAssets (line 9) | IEnumerable<string> GetAssetPathsFromAssets(string[] searchPaths, Asse...
method GetObjectsFromAssets (line 10) | IEnumerable<T> GetObjectsFromAssets<T>(string[] searchPaths, AssetType...
method GetObjectsFromAssets (line 11) | IEnumerable<Object> GetObjectsFromAssets(string[] searchPaths, AssetTy...
method ObjectToAssetPath (line 12) | string ObjectToAssetPath(Object obj);
method AssetPathToObject (line 13) | T AssetPathToObject<T>(string assetPath) where T : Object;
method AssetPathToObject (line 14) | Object AssetPathToObject(string assetPath);
method GetAssetImporter (line 15) | AssetImporter GetAssetImporter(string assetPath);
method GetAssetImporter (line 16) | AssetImporter GetAssetImporter(Object asset);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Abstractions/IFileSignatureUtilityService.cs
type IFileSignatureUtilityService (line 3) | internal interface IFileSignatureUtilityService : IValidatorService
method GetArchiveType (line 5) | ArchiveType GetArchiveType(string filePath);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Abstractions/IMeshUtilityService.cs
type IMeshUtilityService (line 6) | internal interface IMeshUtilityService : IValidatorService
method GetCustomMeshesInObject (line 8) | IEnumerable<Mesh> GetCustomMeshesInObject(GameObject obj);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Abstractions/IModelUtilityService.cs
type IModelUtilityService (line 6) | internal interface IModelUtilityService : IValidatorService
method GetImportLogs (line 8) | Dictionary<Object, List<LogEntry>> GetImportLogs(params Object[] models);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Abstractions/ISceneUtilityService.cs
type ISceneUtilityService (line 6) | internal interface ISceneUtilityService : IValidatorService
method OpenScene (line 10) | Scene OpenScene(string scenePath);
method GetRootGameObjects (line 11) | GameObject[] GetRootGameObjects();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Abstractions/IScriptUtilityService.cs
type IScriptUtilityService (line 8) | internal interface IScriptUtilityService : IValidatorService
method GetTypeNamespacesFromScriptAssets (line 10) | IReadOnlyDictionary<MonoScript, IList<(string Name, string Namespace)>...
method GetTypesFromAssemblies (line 11) | IReadOnlyDictionary<Object, IList<Type>> GetTypesFromAssemblies(IList<...
method GetTypesFromScriptAssets (line 12) | IReadOnlyDictionary<MonoScript, IList<Type>> GetTypesFromScriptAssets(...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/AssetUtilityService.cs
class AssetUtilityService (line 13) | internal class AssetUtilityService : IAssetUtilityService
method GetAssetPathsFromAssets (line 15) | public IEnumerable<string> GetAssetPathsFromAssets(string[] searchPath...
method GetObjectsFromAssets (line 109) | public IEnumerable<T> GetObjectsFromAssets<T>(string[] searchPaths, As...
method GetObjectsFromAssets (line 120) | public IEnumerable<Object> GetObjectsFromAssets(string[] searchPaths, ...
method GetPrecompiledAssemblies (line 125) | private IEnumerable<string> GetPrecompiledAssemblies(string[] searchPa...
method IsMixamoFbx (line 167) | private bool IsMixamoFbx(string fbxPath)
method ObjectToAssetPath (line 191) | public string ObjectToAssetPath(Object obj)
method AssetPathToObject (line 196) | public T AssetPathToObject<T>(string assetPath) where T : Object
method AssetPathToObject (line 201) | public Object AssetPathToObject(string assetPath)
method GetAssetImporter (line 206) | public AssetImporter GetAssetImporter(string assetPath)
method GetAssetImporter (line 211) | public AssetImporter GetAssetImporter(Object asset)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Data/ArchiveType.cs
type ArchiveType (line 3) | internal enum ArchiveType
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Data/AssetEnumerator.cs
class AssetEnumerator (line 9) | internal class AssetEnumerator<T> : IEnumerator<T>, IEnumerable<T> where...
method AssetEnumerator (line 18) | public AssetEnumerator(IEnumerable<string> paths)
method MoveNext (line 24) | public bool MoveNext()
method LoadMore (line 42) | private void LoadMore()
method Reset (line 60) | public void Reset()
method Dispose (line 69) | public void Dispose()
method GetEnumerator (line 74) | IEnumerator<T> IEnumerable<T>.GetEnumerator()
method GetEnumerator (line 79) | public IEnumerator GetEnumerator()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Data/AssetType.cs
type AssetType (line 3) | internal enum AssetType
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/Data/LogEntry.cs
class LogEntry (line 5) | internal class LogEntry
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/FileSignatureUtilityService.cs
class FileSignatureUtilityService (line 8) | internal class FileSignatureUtilityService : IFileSignatureUtilityService
class FileSignature (line 10) | private class FileSignature
method FileSignature (line 15) | public FileSignature(byte[] signatureBytes, int offset)
method GetArchiveType (line 44) | public ArchiveType GetArchiveType(string filePath)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/MeshUtilityService.cs
class MeshUtilityService (line 8) | internal class MeshUtilityService : IMeshUtilityService
method GetCustomMeshesInObject (line 10) | public IEnumerable<Mesh> GetCustomMeshesInObject(GameObject obj)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/ModelUtilityService.cs
class ModelUtilityService (line 16) | internal class ModelUtilityService : IModelUtilityService
method ModelUtilityService (line 32) | public ModelUtilityService(IAssetUtilityService assetUtility)
method GetImportLogs (line 37) | public Dictionary<Object, List<LogEntry>> GetImportLogs(params Object[...
method GetImportLogsDefault (line 47) | private Dictionary<Object, List<LogEntry>> GetImportLogsDefault(params...
method GetImportLogsLegacy (line 76) | private Dictionary<Object, List<LogEntry>> GetImportLogsLegacy(params ...
method CheckFieldForSerializedProperty (line 129) | private static bool CheckFieldForSerializedProperty(object source, str...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/SceneUtilityService.cs
class SceneUtilityService (line 8) | internal class SceneUtilityService : ISceneUtilityService
method OpenScene (line 12) | public Scene OpenScene(string scenePath)
method GetRootGameObjects (line 21) | public GameObject[] GetRootGameObjects()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/Validation/ScriptUtilityService.cs
class ScriptUtilityService (line 15) | internal class ScriptUtilityService : IScriptUtilityService
method GetTypeNamespacesFromScriptAssets (line 27) | public IReadOnlyDictionary<MonoScript, IList<(string Name, string Name...
method GetTypesFromAssemblies (line 55) | public IReadOnlyDictionary<Object, IList<Type>> GetTypesFromAssemblies...
method GetTypesFromScriptAssets (line 102) | public IReadOnlyDictionary<MonoScript, IList<Type>> GetTypesFromScript...
method GetTypeInfosFromScriptAssets (line 136) | private IReadOnlyDictionary<MonoScript, IList<ScriptParser.BlockInfo>>...
class ScriptParser (line 195) | private class ScriptParser
type TypeName (line 200) | public enum TypeName
class BlockInfo (line 218) | public class BlockInfo
method GetReflectionFriendlyFullName (line 229) | public string GetReflectionFriendlyFullName()
method ScriptParser (line 242) | public ScriptParser(CancellationToken token)
method GetTypesInScript (line 247) | public bool GetTypesInScript(string text, out IList<BlockInfo> types)
method SanitizeScript (line 263) | private string SanitizeScript(string source)
method RemoveStringsAndComments (line 285) | private StringBuilder RemoveStringsAndComments(StringBuilder sb)
method ScanForTypes (line 477) | private IList<BlockInfo> ScanForTypes(string script)
method TryFindClosestBlock (line 561) | private bool TryFindClosestBlock(out BlockInfo closestBlock, params ...
method FindNextTypeBlock (line 576) | private BlockInfo FindNextTypeBlock(string text, int startIndex, Typ...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Services/ValidatorServiceProvider.cs
class ValidatorServiceProvider (line 6) | internal class ValidatorServiceProvider : ServiceProvider<IValidatorServ...
method ValidatorServiceProvider (line 11) | private ValidatorServiceProvider() { }
method RegisterServices (line 13) | protected override void RegisterServices()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/AutomatedTest.cs
class AutomatedTest (line 11) | internal class AutomatedTest : ValidationTest
method AutomatedTest (line 13) | public AutomatedTest(ValidationTestScriptableObject source) : base(sou...
method Run (line 15) | public override void Run(ITestConfig config)
method ValidateTestMethod (line 55) | private void ValidateTestMethod(ref Type testClass, ref MethodInfo tes...
method ValidateConfig (line 69) | private void ValidateConfig(ITestConfig config)
method CreateInstance (line 85) | private object CreateInstance(Type testClass, ITestConfig testConfig)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/GenericTestConfig.cs
class GenericTestConfig (line 3) | internal class GenericTestConfig : ITestConfig
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/ITestConfig.cs
type ITestConfig (line 3) | internal interface ITestConfig { }
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/ITestScript.cs
type ITestScript (line 5) | internal interface ITestScript
method Run (line 7) | TestResult Run();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/Scriptable Objects/AutomatedTestScriptableObject.cs
class AutomatedTestScriptableObject (line 7) | #if UNITY_ASTOOLS_DEVELOPMENT
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/Scriptable Objects/Editor/ValidationTestScriptableObjectInspector.cs
class ValidationTestScriptableObjectInspector (line 9) | [CustomEditor(typeof(ValidationTestScriptableObject), true)]
type FilterSeverity (line 12) | private enum FilterSeverity
type FilterType (line 18) | private enum FilterType
method OnEnable (line 39) | private void OnEnable()
method OnInspectorGUI (line 60) | public override void OnInspectorGUI()
method GetInspectorTitle (line 148) | private string GetInspectorTitle()
method GenerateTestScriptName (line 159) | private string GenerateTestScriptName()
method GetFilterDescription (line 165) | private string GetFilterDescription(bool isFailFilter, bool isInclusive)
method ValidateID (line 184) | private bool ValidateID()
method OnDisable (line 189) | private void OnDisable()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/Scriptable Objects/ValidationTestScriptableObject.cs
class ValidationTestScriptableObject (line 9) | internal abstract class ValidationTestScriptableObject : ScriptableObject
method OnEnable (line 21) | private void OnEnable()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Definitions/ValidationTest.cs
class ValidationTest (line 7) | internal abstract class ValidationTest
method ValidationTest (line 19) | protected ValidationTest(ValidationTestScriptableObject source)
method Run (line 30) | public abstract void Run(ITestConfig config);
method Slugify (line 32) | public string Slugify(string value)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckAnimationClips.cs
class CheckAnimationClips (line 11) | internal class CheckAnimationClips : ITestScript
method CheckAnimationClips (line 18) | public CheckAnimationClips(GenericTestConfig config, IAssetUtilityServ...
method Run (line 24) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckAudioClipping.cs
class CheckAudioClipping (line 11) | internal class CheckAudioClipping : ITestScript
method CheckAudioClipping (line 16) | public CheckAudioClipping(GenericTestConfig config, IAssetUtilityServi...
method Run (line 22) | public TestResult Run()
method IsClipping (line 70) | private bool IsClipping(AudioClip clip, int tolerance, int peakToleran...
method DetectNumPeaksAboveThreshold (line 78) | private int DetectNumPeaksAboveThreshold(AudioClip clip, int peakToler...
method GetPeaksInChannel (line 94) | private int GetPeaksInChannel(float[] samples, int peakTolerance, floa...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckColliders.cs
class CheckColliders (line 10) | internal class CheckColliders : ITestScript
method CheckColliders (line 16) | public CheckColliders(GenericTestConfig config, IAssetUtilityService a...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckCompressedFiles.cs
class CheckCompressedFiles (line 11) | internal class CheckCompressedFiles : ITestScript
type ArchiveResult (line 13) | private enum ArchiveResult
method CheckCompressedFiles (line 25) | public CheckCompressedFiles(GenericTestConfig config, IAssetUtilitySer...
method Run (line 32) | public TestResult Run()
method FileNameContainsKeyword (line 111) | private bool FileNameContainsKeyword(string filePath, string keyword)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckEmptyPrefabs.cs
class CheckEmptyPrefabs (line 9) | internal class CheckEmptyPrefabs : ITestScript
method CheckEmptyPrefabs (line 14) | public CheckEmptyPrefabs(GenericTestConfig config, IAssetUtilityServic...
method Run (line 20) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckFileMenuNames.cs
class CheckFileMenuNames (line 12) | internal class CheckFileMenuNames : ITestScript
method CheckFileMenuNames (line 18) | public CheckFileMenuNames(GenericTestConfig config, IAssetUtilityServi...
method Run (line 25) | public TestResult Run()
method IsValidMenuItem (line 131) | private bool IsValidMenuItem(string menuItemName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckLODs.cs
class CheckLODs (line 11) | internal class CheckLODs : ITestScript
method CheckLODs (line 16) | public CheckLODs(GenericTestConfig config, IAssetUtilityService assetU...
method Run (line 22) | public TestResult Run()
method IsPartOfLodGroup (line 66) | private bool IsPartOfLodGroup(MeshFilter mf, LODGroup[] lodGroups)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckLineEndings.cs
class CheckLineEndings (line 12) | internal class CheckLineEndings : ITestScript
method CheckLineEndings (line 17) | public CheckLineEndings(GenericTestConfig config, IAssetUtilityService...
method Run (line 23) | public TestResult Run()
method HasInconsistentLineEndings (line 57) | private bool HasInconsistentLineEndings(string text)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckMeshPrefabs.cs
class CheckMeshPrefabs (line 10) | internal class CheckMeshPrefabs : ITestScript
method CheckMeshPrefabs (line 16) | public CheckMeshPrefabs(GenericTestConfig config, IAssetUtilityService...
method Run (line 23) | public TestResult Run()
method GetAllModelMeshPaths (line 68) | private IEnumerable<string> GetAllModelMeshPaths(string[] validationPa...
method HasMissingMeshReferences (line 92) | private bool HasMissingMeshReferences(GameObject go)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckMissingComponentsinAssets.cs
class CheckMissingComponentsinAssets (line 9) | internal class CheckMissingComponentsinAssets : ITestScript
method CheckMissingComponentsinAssets (line 14) | public CheckMissingComponentsinAssets(GenericTestConfig config, IAsset...
method Run (line 20) | public TestResult Run()
method GetAllAssetsWithMissingComponents (line 39) | private GameObject[] GetAllAssetsWithMissingComponents(string[] valida...
method IsMissingReference (line 53) | private bool IsMissingReference(GameObject asset)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckMissingComponentsinScenes.cs
class CheckMissingComponentsinScenes (line 12) | internal class CheckMissingComponentsinScenes : ITestScript
method CheckMissingComponentsinScenes (line 18) | public CheckMissingComponentsinScenes(GenericTestConfig config, IAsset...
method Run (line 25) | public TestResult Run()
method GetMissingComponentGOsInScene (line 55) | private List<GameObject> GetMissingComponentGOsInScene(string path)
method GetMissingComponentGOs (line 77) | private List<GameObject> GetMissingComponentGOs(GameObject root)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckModelImportLogs.cs
class CheckModelImportLogs (line 10) | internal class CheckModelImportLogs : ITestScript
method CheckModelImportLogs (line 16) | public CheckModelImportLogs(GenericTestConfig config, IAssetUtilitySer...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckModelOrientation.cs
class CheckModelOrientation (line 10) | internal class CheckModelOrientation : ITestScript
method CheckModelOrientation (line 16) | public CheckModelOrientation(GenericTestConfig config, IAssetUtilitySe...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckModelTypes.cs
class CheckModelTypes (line 11) | internal class CheckModelTypes : ITestScript
method CheckModelTypes (line 16) | public CheckModelTypes(GenericTestConfig config, IAssetUtilityService ...
method Run (line 22) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckNormalMapTextures.cs
class CheckNormalMapTextures (line 10) | internal class CheckNormalMapTextures : ITestScript
method CheckNormalMapTextures (line 17) | public CheckNormalMapTextures(GenericTestConfig config, IAssetUtilityS...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckPackageNaming.cs
class CheckPackageNaming (line 13) | internal class CheckPackageNaming : ITestScript
class PathCheckResult (line 26) | private class PathCheckResult
method CheckPackageNaming (line 45) | public CheckPackageNaming(GenericTestConfig config, IAssetUtilityServi...
method Run (line 51) | public TestResult Run()
method GetInvalidPathsInAssets (line 100) | private PathCheckResult GetInvalidPathsInAssets()
method IsDirectMainPathValid (line 147) | private bool IsDirectMainPathValid(string validationPath)
method IsDirectMainPathContentValid (line 169) | private bool IsDirectMainPathContentValid(string validationPath, out L...
method IsPathLeadingUpToMainPathValid (line 200) | private bool IsPathLeadingUpToMainPathValid(string validationPath, out...
method IsHybridPackageMainPathValid (line 227) | private bool IsHybridPackageMainPathValid(string validationPath, out s...
method ArePackageContentsValid (line 244) | private bool ArePackageContentsValid(IEnumerable<string> ignoredPaths,...
method GetAdbPath (line 272) | private string GetAdbPath(string path)
method PathsToObjects (line 281) | private Object[] PathsToObjects(IEnumerable<string> paths)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckParticleSystems.cs
class CheckParticleSystems (line 11) | internal class CheckParticleSystems : ITestScript
method CheckParticleSystems (line 17) | public CheckParticleSystems(GenericTestConfig config, IAssetUtilitySer...
method Run (line 24) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckPathLengths.cs
class CheckPathLengths (line 12) | internal class CheckPathLengths : ITestScript
method CheckPathLengths (line 17) | public CheckPathLengths(GenericTestConfig config, IAssetUtilityService...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckPrefabTransforms.cs
class CheckPrefabTransforms (line 10) | internal class CheckPrefabTransforms : ITestScript
method CheckPrefabTransforms (line 16) | public CheckPrefabTransforms(GenericTestConfig config, IAssetUtilitySe...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckScriptCompilation.cs
class CheckScriptCompilation (line 7) | internal class CheckScriptCompilation : ITestScript
method Run (line 9) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckShaderCompilation.cs
class CheckShaderCompilation (line 16) | internal class CheckShaderCompilation : ITestScript
method CheckShaderCompilation (line 21) | public CheckShaderCompilation(GenericTestConfig config, IAssetUtilityS...
method Run (line 27) | public TestResult Run()
method ShaderHasError (line 48) | private bool ShaderHasError(Object obj)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckTextureDimensions.cs
class CheckTextureDimensions (line 10) | internal class CheckTextureDimensions : ITestScript
method CheckTextureDimensions (line 15) | public CheckTextureDimensions(GenericTestConfig config, IAssetUtilityS...
method Run (line 21) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/CheckTypeNamespaces.cs
class CheckTypeNamespaces (line 12) | internal class CheckTypeNamespaces : ITestScript
type NamespaceEligibility (line 20) | private enum NamespaceEligibility
class AnalysisResult (line 27) | private class AnalysisResult
method CheckTypeNamespaces (line 36) | public CheckTypeNamespaces(GenericTestConfig config, IAssetUtilityServ...
method Run (line 43) | public TestResult Run()
method CheckScripts (line 99) | private AnalysisResult CheckScripts()
method CheckAssemblies (line 148) | private AnalysisResult CheckAssemblies()
method CheckNamespaceEligibility (line 197) | private NamespaceEligibility CheckNamespaceEligibility(string fullName...
method GetTypeName (line 210) | private string GetTypeName(Type type)
method AddJoinedMessage (line 224) | private void AddJoinedMessage(TestResult result, Dictionary<UnityObjec...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveExecutableFiles.cs
class RemoveExecutableFiles (line 8) | internal class RemoveExecutableFiles : ITestScript
method RemoveExecutableFiles (line 13) | public RemoveExecutableFiles(GenericTestConfig config, IAssetUtilitySe...
method Run (line 19) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveJPGFiles.cs
class RemoveJPGFiles (line 8) | internal class RemoveJPGFiles : ITestScript
method RemoveJPGFiles (line 13) | public RemoveJPGFiles(GenericTestConfig config, IAssetUtilityService a...
method Run (line 19) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveJavaScriptFiles.cs
class RemoveJavaScriptFiles (line 8) | internal class RemoveJavaScriptFiles : ITestScript
method RemoveJavaScriptFiles (line 13) | public RemoveJavaScriptFiles(GenericTestConfig config, IAssetUtilitySe...
method Run (line 19) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveLossyAudioFiles.cs
class RemoveLossyAudioFiles (line 12) | internal class RemoveLossyAudioFiles : ITestScript
method RemoveLossyAudioFiles (line 17) | public RemoveLossyAudioFiles(GenericTestConfig config, IAssetUtilitySe...
method Run (line 23) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveMixamoFiles.cs
class RemoveMixamoFiles (line 8) | internal class RemoveMixamoFiles : ITestScript
method RemoveMixamoFiles (line 13) | public RemoveMixamoFiles(GenericTestConfig config, IAssetUtilityServic...
method Run (line 19) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveSpeedTreeFiles.cs
class RemoveSpeedTreeFiles (line 8) | internal class RemoveSpeedTreeFiles : ITestScript
method RemoveSpeedTreeFiles (line 13) | public RemoveSpeedTreeFiles(GenericTestConfig config, IAssetUtilitySer...
method Run (line 19) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/Generic/RemoveVideoFiles.cs
class RemoveVideoFiles (line 8) | internal class RemoveVideoFiles : ITestScript
method RemoveVideoFiles (line 13) | public RemoveVideoFiles(GenericTestConfig config, IAssetUtilityService...
method Run (line 19) | public TestResult Run()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/UnityPackage/CheckDemoScenes.cs
class CheckDemoScenes (line 15) | internal class CheckDemoScenes : ITestScript
class DemoSceneScanResult (line 17) | private class DemoSceneScanResult
method CheckDemoScenes (line 28) | public CheckDemoScenes(GenericTestConfig config, IAssetUtilityService ...
method Run (line 35) | public TestResult Run()
method CheckForDemoScenes (line 76) | private DemoSceneScanResult CheckForDemoScenes(GenericTestConfig config)
method CheckForDemoScenesInAssetDatabase (line 86) | private List<UnityObject> CheckForDemoScenesInAssetDatabase(GenericTes...
method CanBeDemoScene (line 102) | private bool CanBeDemoScene(string scenePath)
method CheckForDemoScenesInUpmSamples (line 128) | private List<string> CheckForDemoScenesInUpmSamples(GenericTestConfig ...
method CheckForNestedUnityPackages (line 166) | private List<UnityObject> CheckForNestedUnityPackages(GenericTestConfi...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/UnityPackage/CheckDocumentation.cs
class CheckDocumentation (line 10) | internal class CheckDocumentation : ITestScript
method CheckDocumentation (line 15) | public CheckDocumentation(GenericTestConfig config, IAssetUtilityServi...
method Run (line 21) | public TestResult Run()
method CouldBeDocumentation (line 52) | private bool CouldBeDocumentation(string filePath)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/UnityPackage/CheckPackageSize.cs
class CheckPackageSize (line 7) | internal class CheckPackageSize : ITestScript
method CheckPackageSize (line 11) | public CheckPackageSize(GenericTestConfig config)
method Run (line 16) | public TestResult Run()
method CalculatePackageSize (line 40) | private long CalculatePackageSize(string[] assetPaths)
method CalculatePathSize (line 52) | private long CalculatePathSize(string path)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/Test Methods/UnityPackage/CheckProjectTemplateAssets.cs
class CheckProjectTemplateAssets (line 11) | internal class CheckProjectTemplateAssets : ITestScript
method CheckProjectTemplateAssets (line 17) | public CheckProjectTemplateAssets(GenericTestConfig config, IAssetUtil...
method Run (line 23) | public TestResult Run()
method CheckGuids (line 57) | private Object[] CheckGuids(IEnumerable<Object> assets)
method CheckPaths (line 72) | private Object[] CheckPaths(IEnumerable<Object> assets)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Abstractions/IValidatorResults.cs
type IValidatorResults (line 7) | internal interface IValidatorResults
method LoadResult (line 12) | void LoadResult(ValidationResult result);
method GetSortedTestGroups (line 13) | IEnumerable<IValidatorTestGroup> GetSortedTestGroups();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Abstractions/IValidatorSettings.cs
type IValidatorSettings (line 7) | internal interface IValidatorSettings
method LoadSettings (line 14) | void LoadSettings(ValidationSettings settings);
method GetActiveCategory (line 16) | string GetActiveCategory();
method SetActiveCategory (line 17) | void SetActiveCategory(string category);
method GetAvailableCategories (line 18) | List<string> GetAvailableCategories();
method GetValidationType (line 20) | ValidationType GetValidationType();
method SetValidationType (line 21) | void SetValidationType(ValidationType validationType);
method GetValidationPaths (line 23) | List<string> GetValidationPaths();
method AddValidationPath (line 24) | void AddValidationPath(string path);
method RemoveValidationPath (line 25) | void RemoveValidationPath(string path);
method ClearValidationPaths (line 26) | void ClearValidationPaths();
method IsValidationPathValid (line 27) | bool IsValidationPathValid(string path, out string error);
method CreateValidator (line 29) | IValidator CreateValidator();
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Abstractions/IValidatorTest.cs
type IValidatorTest (line 5) | internal interface IValidatorTest
method SetResult (line 13) | void SetResult(TestResult result);
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Abstractions/IValidatorTestGroup.cs
type IValidatorTestGroup (line 6) | internal interface IValidatorTestGroup
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Serialization/ValidatorStateData.cs
class ValidatorStateData (line 5) | internal class ValidatorStateData
method ValidatorStateData (line 12) | public ValidatorStateData()
method GetSettings (line 18) | public ValidatorStateSettings GetSettings()
method GetResults (line 23) | public ValidatorStateResults GetResults()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Serialization/ValidatorStateDataContractResolver.cs
class ValidatorStateDataContractResolver (line 5) | internal class ValidatorStateDataContractResolver : DefaultContractResolver
method ValidatorStateDataContractResolver (line 12) | private ValidatorStateDataContractResolver()
method ResolvePropertyName (line 17) | protected override string ResolvePropertyName(string propertyName)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Serialization/ValidatorStateResults.cs
class ValidatorStateResults (line 8) | internal class ValidatorStateResults
method ValidatorStateResults (line 22) | public ValidatorStateResults()
method GetStatus (line 30) | public ValidationStatus GetStatus()
method SetStatus (line 35) | public void SetStatus(ValidationStatus status)
method GetResults (line 43) | public SortedDictionary<int, TestResult> GetResults()
method SetResults (line 48) | public void SetResults(IEnumerable<AutomatedTest> tests)
method GetProjectPath (line 57) | public string GetProjectPath()
method SetProjectPath (line 62) | public void SetProjectPath(string projectPath)
method GetHadCompilationErrors (line 70) | public bool GetHadCompilationErrors()
method SetHadCompilationErrors (line 75) | public void SetHadCompilationErrors(bool hadCompilationErrors)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/Serialization/ValidatorStateSettings.cs
class ValidatorStateSettings (line 8) | internal class ValidatorStateSettings
method ValidatorStateSettings (line 17) | public ValidatorStateSettings()
method GetCategory (line 24) | public string GetCategory()
method SetCategory (line 29) | public void SetCategory(string category)
method GetValidationType (line 37) | public ValidationType GetValidationType()
method SetValidationType (line 42) | public void SetValidationType(ValidationType validationType)
method GetValidationPaths (line 50) | public List<string> GetValidationPaths()
method SetValidationPaths (line 55) | public void SetValidationPaths(List<string> validationPaths)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/ValidatorResults.cs
class ValidatorResults (line 11) | internal class ValidatorResults : IValidatorResults
method ValidatorResults (line 28) | public ValidatorResults(IValidatorSettings settings, ValidatorStateRes...
method GetAllTests (line 38) | private IEnumerable<IValidatorTest> GetAllTests()
method LoadResult (line 53) | public void LoadResult(ValidationResult result)
method GetSortedTestGroups (line 72) | public IEnumerable<IValidatorTestGroup> GetSortedTestGroups()
method SortGroups (line 88) | private IEnumerable<IValidatorTestGroup> SortGroups(IEnumerable<IValid...
method Serialize (line 110) | private void Serialize(ValidationResult result)
method Deserialize (line 119) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/ValidatorSettings.cs
class ValidatorSettings (line 13) | internal class ValidatorSettings : IValidatorSettings
method ValidatorSettings (line 26) | public ValidatorSettings(ValidatorStateSettings stateData)
method LoadSettings (line 37) | public void LoadSettings(ValidationSettings settings)
method GetActiveCategory (line 58) | public string GetActiveCategory()
method SetActiveCategory (line 63) | public void SetActiveCategory(string category)
method GetAvailableCategories (line 73) | public List<string> GetAvailableCategories()
method ConvertSlashToUnicodeSlash (line 90) | private string ConvertSlashToUnicodeSlash(string text)
method GetValidationType (line 95) | public ValidationType GetValidationType()
method SetValidationType (line 100) | public void SetValidationType(ValidationType validationType)
method GetValidationPaths (line 111) | public List<string> GetValidationPaths()
method AddValidationPath (line 116) | public void AddValidationPath(string path)
method RemoveValidationPath (line 146) | public void RemoveValidationPath(string path)
method ClearValidationPaths (line 157) | public void ClearValidationPaths()
method IsValidationPathValid (line 168) | public bool IsValidationPathValid(string path, out string error)
method CreateValidator (line 203) | public IValidator CreateValidator()
method Serialize (line 216) | private void Serialize()
method Deserialize (line 225) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/ValidatorTest.cs
class ValidatorTest (line 6) | internal class ValidatorTest : IValidatorTest
method ValidatorTest (line 14) | public ValidatorTest(AutomatedTest source)
method SetResult (line 23) | public void SetResult(TestResult result)
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Data/ValidatorTestGroup.cs
class ValidatorTestGroup (line 6) | internal class ValidatorTestGroup : IValidatorTestGroup
method ValidatorTestGroup (line 12) | public ValidatorTestGroup(TestResultStatus status, IEnumerable<IValida...
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Elements/ValidatorButtonElement.cs
class ValidatorButtonElement (line 7) | internal class ValidatorButtonElement : VisualElement
method ValidatorButtonElement (line 17) | public ValidatorButtonElement(IValidatorSettings settings)
method Create (line 26) | private void Create()
method Validate (line 34) | private void Validate()
method ValidationPathsChanged (line 39) | private void ValidationPathsChanged()
method Deserialize (line 45) | private void Deserialize()
FILE: projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Validator/Scripts/UI/Elements/ValidatorDescriptionElement.cs
class ValidatorDescriptionElement (line 6) | internal class ValidatorDescriptionElement : VisualElement
method ValidatorDescriptionElement (line 22) | public ValidatorDescriptionElement()
method Create (line 28) | private void
Condensed preview — 1751 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,000K chars).
[
{
"path": ".github/workflows/Release.yml",
"chars": 709,
"preview": "name: Release Workflow\non:\n push:\n branches:\n - 'release/package'\n\njobs:\n run-release-script:\n runs-on: ubu"
},
{
"path": ".gitignore",
"chars": 1008,
"preview": "# for more stuff, see https://github.com/github/gitignore/blob/master/Unity.gitignore\n\n# Jetbrain Rider Cache\n.idea/\n*/P"
},
{
"path": "README.md",
"chars": 2239,
"preview": "# Shader Graph Markdown\n/SampleShader-HDRP7.shadergraph",
"chars": 27370,
"preview": "{\n \"m_SerializedProperties\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGra"
},
{
"path": "package/Samples~/HDRP 7+ (Unity 2019.4+)/SampleShader-HDRP7.shadergraph.meta",
"chars": 285,
"preview": "fileFormatVersion: 2\nguid: 6c24756de6115404f9fdf52847623807\nScriptedImporter:\n internalIDToNameTable: []\n externalObje"
},
{
"path": "package/Samples~/HDRP 7+ (Unity 2019.4+)/Shader Graphs_SampleShader-HDRP7.mat",
"chars": 4008,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "package/Samples~/HDRP 7+ (Unity 2019.4+)/Shader Graphs_SampleShader-HDRP7.mat.meta",
"chars": 182,
"preview": "fileFormatVersion: 2\nguid: f1457613b92608a4aa5f6f0ba176c0fd\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/HDRP 7+ (Unity 2019.4+).meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 69a137887228fcd429c42145de72c5ad\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+)/Gradient Textures/Shader Graphs_SampleShader-URP7_RampTexture_Gradient.png.meta",
"chars": 2856,
"preview": "fileFormatVersion: 2\nguid: ec5df446fab4e674d84319bcb7cb6796\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+)/Gradient Textures.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 720547322f3f71744b33349a49f2640b\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+)/SampleShader-URP7.shadergraph",
"chars": 28088,
"preview": "{\n \"m_SerializedProperties\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGra"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+)/SampleShader-URP7.shadergraph.meta",
"chars": 285,
"preview": "fileFormatVersion: 2\nguid: 1a9806c3200f553499593f7047e8f772\nScriptedImporter:\n internalIDToNameTable: []\n externalObje"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+)/Shader Graphs_SampleShader-URP7.mat",
"chars": 4580,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+)/Shader Graphs_SampleShader-URP7.mat.meta",
"chars": 182,
"preview": "fileFormatVersion: 2\nguid: a8b5d6561038b7240b5c6cf24d6c293d\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/URP 7+ (Unity 2019.4+).meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 0a43a7c1bba5c8948b08df7ec658fdf6\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Gradient Textures/Shader Graphs_SampleShader-SRP10_MyGradientTexture_1_Gradient.png.meta",
"chars": 3144,
"preview": "fileFormatVersion: 2\nguid: 465fffbb60e01ba40ae585e6609ee61e\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Gradient Textures/Shader Graphs_SampleShader-SRP10_MyGradientTexture_2_Gradient.png.meta",
"chars": 2914,
"preview": "fileFormatVersion: 2\nguid: 8b6d5fa09d5b2f046bd006bac6b4ad11\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Gradient Textures.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: fcc43c06cdccc4649b69cc6b1a97479f\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/SampleShader-SRP10.shadergraph",
"chars": 71131,
"preview": "{\n \"m_SGVersion\": 2,\n \"m_Type\": \"UnityEditor.ShaderGraph.GraphData\",\n \"m_ObjectId\": \"edf448f46330415b8cdb399d47"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/SampleShader-SRP10.shadergraph.meta",
"chars": 285,
"preview": "fileFormatVersion: 2\nguid: cb1a11e1ee9e0b94e93dce173f31a9d7\nScriptedImporter:\n internalIDToNameTable: []\n externalObje"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/SampleShader-Unnamed Properties.shadergraph",
"chars": 40188,
"preview": "{\n \"m_SGVersion\": 2,\n \"m_Type\": \"UnityEditor.ShaderGraph.GraphData\",\n \"m_ObjectId\": \"edf448f46330415b8cdb399d47"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/SampleShader-Unnamed Properties.shadergraph.meta",
"chars": 285,
"preview": "fileFormatVersion: 2\nguid: e4ebb65d144fa8040b41058b8a277989\nScriptedImporter:\n internalIDToNameTable: []\n externalObje"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Shader Graphs_SampleShader-SRP10.mat",
"chars": 7901,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Shader Graphs_SampleShader-SRP10.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: a9ea2ef2d94fb2342ba6888a879f5960\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Shader Graphs_Unnamed Properties.mat",
"chars": 4690,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+)/Shader Graphs_Unnamed Properties.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: fe0767b87a244cc4caeeefe32ec2ac2d\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/URP and HDRP 10+ (Unity 2020.2+).meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: edc371ff0a8b599449a6a9503f264a6e\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Cloth.mat",
"chars": 4832,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Cloth.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: bf56354667ff91c44874b8a2f2e59a18\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/FloatingSpheres.mat",
"chars": 4857,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/FloatingSpheres.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: f16e0d07ea8bf3342b72d88ecb15300d\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Floor.mat",
"chars": 4850,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Floor.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: f47c46801abd54d449b5f923930a3882\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/FloorBorder.mat",
"chars": 4779,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/FloorBorder.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: d888bd25da284504c8a42812515d0cd0\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/FloorSpheres.mat",
"chars": 4773,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/FloorSpheres.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: 4a743b1b091002e41ae9300c0d3f1a53\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Cloth_RampTexture_Gradient.png.meta",
"chars": 3143,
"preview": "fileFormatVersion: 2\nguid: c729278ac28ef664e96914f1dbb80eb2\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Greybox_RampTexture_Gradient.png.meta",
"chars": 2124,
"preview": "fileFormatVersion: 2\nguid: 8b71b804c1bfb364399d017987b02904\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Mat 1_RampTexture_Gradient.png.meta",
"chars": 2124,
"preview": "fileFormatVersion: 2\nguid: ce241ab4e24207c4da4ef1cf6ae01896\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Mat 2_RampTexture_Gradient.png.meta",
"chars": 2124,
"preview": "fileFormatVersion: 2\nguid: 47d68434376eb234cad7dccfdd1e9680\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Mat 3_RampTexture_Gradient.png.meta",
"chars": 2124,
"preview": "fileFormatVersion: 2\nguid: 1db59b6d389c1de4ea17e92ef1667b11\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Rings_RampTexture_Gradient.png.meta",
"chars": 2124,
"preview": "fileFormatVersion: 2\nguid: 2467832cc7e99504f891fe3419410760\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures/Spheres_RampTexture_Gradient.png.meta",
"chars": 2124,
"preview": "fileFormatVersion: 2\nguid: 34f18729c07beb846acceba23894e18b\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Gradient Textures.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 1a28561ec0f914b4194d367fff163929\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Models/MarkdownSampleObjects-1.fbx.meta",
"chars": 2603,
"preview": "fileFormatVersion: 2\nguid: 382a46495022bce479ca0d624da5a37b\nModelImporter:\n serializedVersion: 20200\n internalIDToName"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Models/MarkdownSampleObjects-2.fbx.meta",
"chars": 2603,
"preview": "fileFormatVersion: 2\nguid: 9f8ce7ad6f702844faf0c171ea3e3850\nModelImporter:\n serializedVersion: 20200\n internalIDToName"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Models.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: c096056dd52350a4391d393b8ac0946e\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Ring.mat",
"chars": 4725,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Ring.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: 48c903fec021c8e479a98a52b1f872e2\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/LightingData.asset.meta",
"chars": 190,
"preview": "fileFormatVersion: 2\nguid: a79cfb3b6f0b9884286fb2fc0d7b7c00\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Markdown-SkyboxBlurred.mat",
"chars": 2505,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Markdown-SkyboxBlurred.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: 4d1d3ecdf0bd26a47a3572cdc8565b60\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Markdown-blurred_background.jpg.meta",
"chars": 2355,
"preview": "fileFormatVersion: 2\nguid: 67a55c013c1e64147a5c2965a8678d7e\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/ReflectionProbe-0.exr.meta",
"chars": 2171,
"preview": "fileFormatVersion: 2\nguid: 7683c5792509f644db778361bbde1de1\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/ReflectionProbe-1.exr.meta",
"chars": 2171,
"preview": "fileFormatVersion: 2\nguid: 807c6f5971ec59145be55dd4178e0dcd\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/ReflectionProbe-2.exr.meta",
"chars": 2171,
"preview": "fileFormatVersion: 2\nguid: 31c33ea3cbf8adb4fa4a3e145ad0a566\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/ReflectionProbe-3.exr.meta",
"chars": 2171,
"preview": "fileFormatVersion: 2\nguid: 3ed3d49e081c8a649b97ac478c792190\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/ReflectionProbe-4.exr.meta",
"chars": 2171,
"preview": "fileFormatVersion: 2\nguid: 753d1be00f8ff1648b65e1d42d341e0f\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Sample Scene Lighting.lighting",
"chars": 1761,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!850595691 &4890085278179872738\nLightingSettings:\n m_ObjectHideFlags: 0\n"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Sample Scene Lighting.lighting.meta",
"chars": 200,
"preview": "fileFormatVersion: 2\nguid: a553a91440b0d5046a724d8b1653ebc0\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Volume Profile.asset",
"chars": 1501,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-555347532544525822\nMonoBehaviour:\n m_ObjectHideFlags: 3\n m_Corre"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene/Volume Profile.asset.meta",
"chars": 189,
"preview": "fileFormatVersion: 2\nguid: 0b85242046f2e9b45b1b0f9508a5be7d\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: d39a24c75fa9e8140b0239e20c64d5f9\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene.unity",
"chars": 76408,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Sample Scene.unity.meta",
"chars": 155,
"preview": "fileFormatVersion: 2\nguid: 6450adc047a7c634e947f2e66f5014bb\nDefaultImporter:\n externalObjects: {}\n userData: \n assetB"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/SampleUberShader.shadergraph",
"chars": 283361,
"preview": "{\n \"m_SGVersion\": 3,\n \"m_Type\": \"UnityEditor.ShaderGraph.GraphData\",\n \"m_ObjectId\": \"aa5568bcf54e4a8ba79ebffb16"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/SampleUberShader.shadergraph.meta",
"chars": 285,
"preview": "fileFormatVersion: 2\nguid: b10eb7357ef73c749b0f5643cdc88d6c\nScriptedImporter:\n internalIDToNameTable: []\n externalObje"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/SmallRings.mat",
"chars": 4772,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/SmallRings.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: 86401c3157414474bb8ecfb415978796\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Torus.mat",
"chars": 4797,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-245356878503985190\nMonoBehaviour:\n m_ObjectHideFlags: 11\n m_Corr"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+)/Torus.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: 821b84acd457cf74c857ddccaf01791a\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "package/Samples~/Uber Shader (Unity 2020.2+).meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: a95f3801578728d46bc82de2f894e03e\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "package/package.json",
"chars": 1728,
"preview": "{\n \"name\": \"com.needle.shadergraph-markdown\",\n \"displayName\": \"Shader Graph Markdown\",\n \"version\": \"1.5.3\",\n \"author"
},
{
"path": "package/package.json.meta",
"chars": 163,
"preview": "fileFormatVersion: 2\nguid: 2c61e3488b3653b4682b14800c469f9b\nPackageManifestImporter:\n externalObjects: {}\n userData: \n"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/.vscode/settings.json",
"chars": 1318,
"preview": "{\n \"files.exclude\":\n {\n \"**/.DS_Store\":true,\n \"**/.git\":true,\n \"**/.gitmodules\":true,\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Needle.ShaderGraphMarkdown.Internal.csproj",
"chars": 44766,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Needle.ShaderGraphMarkdown.csproj",
"chars": 45167,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/CHANGELOG.md",
"chars": 13127,
"preview": "# Changelog\nAll notable changes to this package will be documented in this file.\n\n## [12.0.1] - 2025-01-16\n\n### Preview "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/CHANGELOG.md.meta",
"chars": 158,
"preview": "fileFormatVersion: 2\nguid: 06607220dbd46414e8f66bf9c5e3eb79\nTextScriptImporter:\n externalObjects: {}\n userData: \n ass"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/AuthenticationBase.cs",
"chars": 1851,
"preview": "using AssetStoreTools.Api.Responses;\nusing AssetStoreTools.Utility;\nusing System;\nusing System.Collections.Generic;\nusin"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/AuthenticationBase.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: f677e03f1be1048439a1fa5e7a0a37b6\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAssetStoreApi.cs",
"chars": 1269,
"preview": "using AssetStoreTools.Api.Models;\nusing AssetStoreTools.Api.Responses;\nusing System;\nusing System.Threading;\nusing Syste"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAssetStoreApi.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: e616488c25d278741bb0d08168219309\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAssetStoreClient.cs",
"chars": 698,
"preview": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace AssetStoreTools.Ap"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAssetStoreClient.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: b2bbadec62178cc4189e605367b219e7\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAuthenticationType.cs",
"chars": 294,
"preview": "using AssetStoreTools.Api.Responses;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace AssetStoreTools.Ap"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IAuthenticationType.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 0000dcd6975bc8e4abc546a19f194040\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IPackageUploader.cs",
"chars": 335,
"preview": "using AssetStoreTools.Api.Responses;\nusing System;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Asse"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/IPackageUploader.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 0fc6c47b1c0a65540a40efbf1491193b\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/PackageUploaderBase.cs",
"chars": 2197,
"preview": "using AssetStoreTools.Api.Responses;\nusing System;\nusing System.IO;\nusing System.Net.Http;\nusing System.Threading;\nusing"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions/PackageUploaderBase.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 2718ddd16e425ba4a82ab973724bcff7\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Abstractions.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 25799fb31cd475347af7f5442c231797\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/ApiUtility.cs",
"chars": 2901,
"preview": "using AssetStoreTools.Api.Models;\nusing AssetStoreTools.Utility;\nusing System;\nusing System.Collections.Generic;\nusing S"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/ApiUtility.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 5becec0b3c0ba274fb0b01544e63b6c4\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/AssetStoreApi.cs",
"chars": 11530,
"preview": "using AssetStoreTools.Api.Models;\nusing AssetStoreTools.Api.Responses;\nusing Newtonsoft.Json.Linq;\nusing System;\nusing S"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/AssetStoreApi.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 684fca3fffd79d944a32d9b3adbfc007\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/AssetStoreClient.cs",
"chars": 1831,
"preview": "using System;\nusing System.Net;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/AssetStoreClient.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 80b4527c908161a4b9f06dc393b502f9\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/CloudTokenAuthentication.cs",
"chars": 836,
"preview": "using AssetStoreTools.Api.Responses;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Ta"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/CloudTokenAuthentication.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 99f1baec74f26a34bb972b19c92d523f\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/CredentialsAuthentication.cs",
"chars": 899,
"preview": "using AssetStoreTools.Api.Responses;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Ta"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/CredentialsAuthentication.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 353e556b63fd441428f387bc85aa612c\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/Category.cs",
"chars": 1935,
"preview": "using Newtonsoft.Json.Serialization;\nusing System.Collections.Generic;\n\nnamespace AssetStoreTools.Api.Models\n{\n inter"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/Category.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 5897866bc65f5834dab1f17371daada7\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/Package.cs",
"chars": 3211,
"preview": "using Newtonsoft.Json.Serialization;\nusing System.Collections.Generic;\n\nnamespace AssetStoreTools.Api.Models\n{\n inter"
},
{
"path": "projects/ShadergraphMarkdown 2019.4/Packages/com.unity.asset-store-tools/Editor/Api/Models/Package.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 7e9f0b99820061b49abf6e8cf544a727\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
}
]
// ... and 1551 more files (download for full content)
About this extraction
This page contains the full source code of the needle-tools/shadergraph-markdown GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1751 files (5.2 MB), approximately 1.5M tokens, and a symbol index with 3441 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.