From f0dab10761c54e79382fc6ef4fb348e370793b1c Mon Sep 17 00:00:00 2001 From: Banane_Rotative Date: Fri, 14 Nov 2025 13:12:54 +0100 Subject: [PATCH] Basic map creator Basic map creation from a svg file (AI generated) --- Assets/Editor.meta | 8 + Assets/Editor/SvgToFlatMeshEditor.cs | 320 ++++++++++++++++++ Assets/Editor/SvgToFlatMeshEditor.cs.meta | 2 + ...niversalRenderPipelineGlobalSettings.asset | 91 +++++ Packages/manifest.json | 17 +- Packages/packages-lock.json | 70 ++-- ProjectSettings/PackageManagerSettings.asset | 29 +- ProjectSettings/ProjectVersion.txt | 4 +- ProjectSettings/ShaderGraphSettings.asset | 1 + ProjectSettings/URPProjectSettings.asset | 2 +- 10 files changed, 494 insertions(+), 50 deletions(-) create mode 100644 Assets/Editor.meta create mode 100644 Assets/Editor/SvgToFlatMeshEditor.cs create mode 100644 Assets/Editor/SvgToFlatMeshEditor.cs.meta diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..243b264 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0007f25b1fa247d40922e19f7ffa9ae5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/SvgToFlatMeshEditor.cs b/Assets/Editor/SvgToFlatMeshEditor.cs new file mode 100644 index 0000000..53d116c --- /dev/null +++ b/Assets/Editor/SvgToFlatMeshEditor.cs @@ -0,0 +1,320 @@ +// SvgToFlatMeshEditor.cs +// Save to Assets/Editor/ +// Requires com.unity.vectorgraphics package. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using UnityEngine; +using UnityEditor; +using Unity.VectorGraphics; // From com.unity.vectorgraphics + +public class SvgToFlatMeshEditor : EditorWindow +{ + TextAsset svgFile; + float pixelsPerUnit = 100.0f; + Vector2 scale = Vector2.one; + Material defaultMaterial; + Transform parentTransform; + bool generateColliders = true; + float meshScale = 1f; + VectorUtils.TessellationOptions tessOptions = new VectorUtils.TessellationOptions() + { + StepDistance = 1.0f, + MaxCordDeviation = 0.5f, + MaxTanAngleDeviation = 0.1f, + SamplingStepSize = 0.01f + }; + + [MenuItem("Tools/SVG → Flat Mesh Regions")] + static void OpenWindow() + { + var w = GetWindow("SVG → Flat Mesh"); + w.minSize = new Vector2(460, 320); + } + + void OnGUI() + { + EditorGUILayout.LabelField("SVG → Flat Mesh (separate GameObjects per fill color)", EditorStyles.boldLabel); + EditorGUILayout.Space(); + + svgFile = (TextAsset)EditorGUILayout.ObjectField("SVG File (.svg)", svgFile, typeof(TextAsset), false); + pixelsPerUnit = EditorGUILayout.FloatField(new GUIContent("Pixels Per Unit", "Rasterization scale used by VectorUtils. Higher = more detail"), pixelsPerUnit); + meshScale = EditorGUILayout.FloatField(new GUIContent("Global Mesh Scale", "Scale applied to resulting mesh in world units"), meshScale); + defaultMaterial = (Material)EditorGUILayout.ObjectField("Default Material", defaultMaterial, typeof(Material), false); + parentTransform = (Transform)EditorGUILayout.ObjectField("Parent Transform", parentTransform, typeof(Transform), true); + generateColliders = EditorGUILayout.Toggle("Generate MeshColliders", generateColliders); + + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Tessellation Options", EditorStyles.boldLabel); + tessOptions.StepDistance = EditorGUILayout.FloatField("Step Distance", tessOptions.StepDistance); + tessOptions.MaxCordDeviation = EditorGUILayout.FloatField("Max Cord Deviation", tessOptions.MaxCordDeviation); + tessOptions.MaxTanAngleDeviation = EditorGUILayout.FloatField("Max Tan Angle Deviation", tessOptions.MaxTanAngleDeviation); + tessOptions.SamplingStepSize = EditorGUILayout.FloatField("Sampling Step Size", tessOptions.SamplingStepSize); + + EditorGUILayout.Space(); + + if (GUILayout.Button("Generate Meshes from SVG")) + { + if (svgFile == null) + { + EditorUtility.DisplayDialog("Error", "Please assign an SVG (.svg) TextAsset.", "OK"); + } + else + { + try + { + GenerateMeshesFromSVG(); + } + catch (Exception e) + { + Debug.LogException(e); + EditorUtility.DisplayDialog("Error", "Exception: " + e.Message, "OK"); + } + } + } + + EditorGUILayout.Space(); + EditorGUILayout.HelpBox("This tool creates one GameObject per fill-color region in the SVG. Each GameObject receives a MeshRenderer + MeshFilter and, optionally, a MeshCollider. Output meshes lie flat on the XZ plane (Y = 0).", MessageType.Info); + } + + void GenerateMeshesFromSVG() + { + // Parse SVG + var svgText = svgFile.text; + if (string.IsNullOrEmpty(svgText)) + { + EditorUtility.DisplayDialog("Error", "SVG file is empty.", "OK"); + return; + } + + var sceneInfo = SVGParser.ImportSVG(new StringReader(svgText)); + if (sceneInfo.Equals(default(SVGParser.SceneInfo)) || sceneInfo.Scene == null) + { + EditorUtility.DisplayDialog("Error", "Failed to import SVG. Make sure the file is valid and Vector Graphics package is installed.", "OK"); + return; + } + + // Gather shapes by fill color. We'll traverse the scene tree. + var shapesByColor = new Dictionary>(new ColorEqualityComparer()); + + TraverseAndCollectShapes(sceneInfo.Scene.Root, Matrix2D.identity, shapesByColor); + + if (shapesByColor.Count == 0) + { + EditorUtility.DisplayDialog("Result", "No filled shapes found in the SVG.", "OK"); + return; + } + + // Create parent container + GameObject container = new GameObject(Path.GetFileNameWithoutExtension(svgFile.name) + "_SVG_Meshes"); + if (parentTransform != null) container.transform.SetParent(parentTransform, false); + + // For each color group, tessellate shapes into geometry and build a mesh + foreach (var kv in shapesByColor) + { + Color color = kv.Key; + List entries = kv.Value; + + // Build a temporary scene that contains all these shapes combined (preserving transforms) + Scene tmpScene = new Scene(); + tmpScene.Root = new SceneNode(); + tmpScene.Root.Children = new List(); + + foreach (var entry in entries) + { + // create a shallow copy Node with transform and the original shapes (the shape objects can be reused) + SceneNode copyNode = new SceneNode() + { + Transform = entry.Node.Transform, // keep transform + Shapes = new List() { entry.Shape } + }; + tmpScene.Root.Children.Add(copyNode); + } + + // Tessellate the tmpScene + var geoms = VectorUtils.TessellateScene(tmpScene, tessOptions); + + if (geoms == null || geoms.Count == 0) + { + Debug.LogWarning($"No geometry generated for color {color} (skipping)."); + continue; + } + + // Build Mesh from geoms + Mesh mesh = BuildMeshFromGeometries(geoms, meshScale); + + // Create GameObject for this color region + string colorName = ColorToName(color); + GameObject go = new GameObject($"Region_{colorName}"); + go.transform.SetParent(container.transform, false); + + var mf = go.AddComponent(); + mf.sharedMesh = mesh; + + var mr = go.AddComponent(); + if (defaultMaterial != null) + { + // instantiate a material so each region can have its own color without overwriting the original asset + Material matInstance = new Material(defaultMaterial); + matInstance.color = color; + mr.sharedMaterial = matInstance; + } + else + { + // Create a quick default material + var mat = new Material(Shader.Find("Standard")); + mat.color = color; + mr.sharedMaterial = mat; + } + + if (generateColliders) + { + var mc = go.AddComponent(); + mc.sharedMesh = mesh; + mc.convex = false; // keep non-convex for flat terrain; set to true if needed for rigidbodies + } + + // Optionally set layer / tag etc. User can attach audio trigger components later to each go. + } + + // Focus selection on created container + Selection.activeGameObject = container; + EditorUtility.DisplayDialog("Done", $"Generated {shapesByColor.Count} region GameObjects under '{container.name}'.", "OK"); + } + + // Recursively traverse scene nodes and collect filled shapes + void TraverseAndCollectShapes(SceneNode node, Matrix2D parentTransform, Dictionary> shapesByColor) + { + if (node == null) return; + + // Combine transforms (VectorGraphics uses Matrix2D) + Matrix2D currentTransform = parentTransform * node.Transform; + + if (node.Shapes != null && node.Shapes.Count > 0) + { + foreach (var shape in node.Shapes) + { + if (shape == null) continue; + // Only treat fills (SolidFill) + if (shape.Fill is SolidFill sf) + { + Color col = sf.Color; + // Note: color comes as linear RGBA. Convert to Unity's Color (already same type) + if (!shapesByColor.TryGetValue(col, out List list)) + { + list = new List(); + shapesByColor[col] = list; + } + + // Store the shape together with a node that carries the proper transform + SceneNode fakeNode = new SceneNode() + { + Transform = currentTransform, + Shapes = new List() { shape } + }; + list.Add(new SceneNodeShapeEntry() { Node = fakeNode, Shape = shape }); + } + } + } + + if (node.Children != null && node.Children.Count > 0) + { + foreach (var c in node.Children) + TraverseAndCollectShapes(c, currentTransform, shapesByColor); + } + } + + // Build a Mesh from VectorUtils.Geometry list + Mesh BuildMeshFromGeometries(List geoms, float globalScale) + { + var verts = new List(); + var uvs = new List(); + var indices = new List(); + + int baseIndex = 0; + foreach (var g in geoms) + { + if (g == null || g.Vertices == null || g.Indices == null) continue; + + // Add vertices (VectorUtils uses Vector2 for geometry XY) + for (int i = 0; i < g.Vertices.Length; i++) + { + var v2 = g.Vertices[i]; + // Map XY -> XZ plane; Y = 0 + Vector3 v3 = new Vector3(v2.x, 0f, v2.y) * globalScale; + verts.Add(v3); + + // UVs: If geometry provides UV, use it; otherwise use XY mapped to UV + if (g.UVs != null && g.UVs.Length == g.Vertices.Length) + uvs.Add(g.UVs[i]); + else + uvs.Add(new Vector2(v2.x, v2.y)); + } + + // Add indices (triangles) + for (int i = 0; i < g.Indices.Length; i += 3) + { + // VectorUtils yields triangles in clockwise winding; Unity expects clockwise for front? We'll keep it. + indices.Add(baseIndex + g.Indices[i]); + indices.Add(baseIndex + g.Indices[i + 1]); + indices.Add(baseIndex + g.Indices[i + 2]); + } + + baseIndex += g.Vertices.Length; + } + + Mesh mesh = new Mesh(); + mesh.name = "SVG_Mesh"; + mesh.indexFormat = (verts.Count > 65535) ? UnityEngine.Rendering.IndexFormat.UInt32 : UnityEngine.Rendering.IndexFormat.UInt16; + mesh.SetVertices(verts); + mesh.SetTriangles(indices, 0); + if (uvs != null && uvs.Count == verts.Count) + mesh.SetUVs(0, uvs); + + mesh.RecalculateNormals(); + mesh.RecalculateBounds(); + + return mesh; + } + + // Helper to produce a safe string for color names + string ColorToName(Color c) + { + // Try to present RGBA hex + Color32 cc = c; + return $"{cc.r:X2}{cc.g:X2}{cc.b:X2}{(cc.a < 255 ? cc.a.ToString("X2") : "")}"; + } + + // Small helper type to keep a shape and associated node (with transform) + class SceneNodeShapeEntry + { + public SceneNode Node; + public Shape Shape; + } + + // Simple color comparer for use as Dictionary key + class ColorEqualityComparer : IEqualityComparer + { + public bool Equals(Color x, Color y) + { + // Compare with exactness; you could add tolerance if you want near-colors grouped + return Mathf.Approximately(x.r, y.r) && Mathf.Approximately(x.g, y.g) && + Mathf.Approximately(x.b, y.b) && Mathf.Approximately(x.a, y.a); + } + + public int GetHashCode(Color obj) + { + unchecked + { + int hash = 17; + hash = hash * 23 + Mathf.RoundToInt(obj.r * 255f); + hash = hash * 23 + Mathf.RoundToInt(obj.g * 255f); + hash = hash * 23 + Mathf.RoundToInt(obj.b * 255f); + hash = hash * 23 + Mathf.RoundToInt(obj.a * 255f); + return hash; + } + } + } +} diff --git a/Assets/Editor/SvgToFlatMeshEditor.cs.meta b/Assets/Editor/SvgToFlatMeshEditor.cs.meta new file mode 100644 index 0000000..dc657b3 --- /dev/null +++ b/Assets/Editor/SvgToFlatMeshEditor.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9264c9156cb5dbc4cbfeaaa27c0ab93b \ No newline at end of file diff --git a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset index c7c630b..fdfa811 100644 --- a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset +++ b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset @@ -55,6 +55,10 @@ MonoBehaviour: - rid: 8712630790384254976 - rid: 6455115202312536064 - rid: 6455115202312536065 + - rid: 6596437875811942460 + - rid: 6596437875811942461 + - rid: 6596437875811942462 + - rid: 6596437875811942463 m_RuntimeSettings: m_List: [] m_AssetVersion: 8 @@ -97,6 +101,93 @@ MonoBehaviour: type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} data: m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2} + - rid: 6596437875811942460 + type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Version: 0 + - rid: 6596437875811942461 + type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + blueNoise16LTex: + - {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3} + - {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3} + - {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3} + - {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3} + - {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3} + - {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3} + - {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3} + - {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3} + - {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3} + - {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3} + - {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3} + - {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3} + - {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3} + - {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3} + - {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3} + - {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3} + - {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3} + - {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3} + - {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3} + - {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3} + - {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3} + - {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3} + - {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3} + - {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3} + - {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3} + - {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3} + - {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3} + - {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3} + - {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3} + - {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3} + - {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3} + - {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3} + filmGrainTex: + - {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3} + - {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3} + - {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3} + - {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3} + - {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3} + - {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3} + - {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3} + - {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3} + - {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3} + - {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3} + smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3} + smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3} + m_TexturesResourcesVersion: 0 + - rid: 6596437875811942462 + type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Version: 0 + - rid: 6596437875811942463 + type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3} + subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3} + gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3} + bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3} + cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3} + paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3} + lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3} + lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3} + bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3} + temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3} + LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3} + LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3} + scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3} + easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3} + uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} + finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3} + m_ShaderResourcesVersion: 0 - rid: 6852985685364965376 type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} data: diff --git a/Packages/manifest.json b/Packages/manifest.json index 35b703d..2975cc6 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,16 +1,17 @@ { "dependencies": { - "com.unity.ai.navigation": "2.0.6", - "com.unity.collab-proxy": "2.7.1", - "com.unity.ide.rider": "3.0.31", - "com.unity.ide.visualstudio": "2.0.22", - "com.unity.inputsystem": "1.13.1", + "com.unity.ai.navigation": "2.0.9", + "com.unity.collab-proxy": "2.9.3", + "com.unity.ide.rider": "3.0.38", + "com.unity.ide.visualstudio": "2.0.23", + "com.unity.inputsystem": "1.14.2", "com.unity.multiplayer.center": "1.0.0", "com.unity.render-pipelines.universal": "17.0.4", - "com.unity.test-framework": "1.4.6", - "com.unity.timeline": "1.8.7", + "com.unity.test-framework": "1.6.0", + "com.unity.timeline": "1.8.9", "com.unity.ugui": "2.0.0", - "com.unity.visualscripting": "1.9.5", + "com.unity.vectorgraphics": "2.0.0-preview.25", + "com.unity.visualscripting": "1.9.7", "com.unity.modules.accessibility": "1.0.0", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 3602b4c..01071ea 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,7 +1,13 @@ { "dependencies": { + "com.unity.2d.sprite": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, "com.unity.ai.navigation": { - "version": "2.0.6", + "version": "2.0.9", "depth": 0, "source": "registry", "dependencies": { @@ -10,7 +16,7 @@ "url": "https://packages.unity.com" }, "com.unity.burst": { - "version": "1.8.19", + "version": "1.8.25", "depth": 2, "source": "registry", "dependencies": { @@ -20,20 +26,21 @@ "url": "https://packages.unity.com" }, "com.unity.collab-proxy": { - "version": "2.7.1", + "version": "2.9.3", "depth": 0, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" }, "com.unity.collections": { - "version": "2.5.1", + "version": "2.6.2", "depth": 2, "source": "registry", "dependencies": { - "com.unity.burst": "1.8.17", - "com.unity.test-framework": "1.4.5", - "com.unity.nuget.mono-cecil": "1.11.4", + "com.unity.burst": "1.8.23", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.5", "com.unity.test-framework.performance": "3.0.3" }, "url": "https://packages.unity.com" @@ -41,12 +48,11 @@ "com.unity.ext.nunit": { "version": "2.0.5", "depth": 1, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" + "source": "builtin", + "dependencies": {} }, "com.unity.ide.rider": { - "version": "3.0.31", + "version": "3.0.38", "depth": 0, "source": "registry", "dependencies": { @@ -55,7 +61,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.22", + "version": "2.0.23", "depth": 0, "source": "registry", "dependencies": { @@ -64,7 +70,7 @@ "url": "https://packages.unity.com" }, "com.unity.inputsystem": { - "version": "1.13.1", + "version": "1.14.2", "depth": 0, "source": "registry", "dependencies": { @@ -88,7 +94,7 @@ } }, "com.unity.nuget.mono-cecil": { - "version": "1.11.4", + "version": "1.11.5", "depth": 3, "source": "registry", "dependencies": {}, @@ -99,7 +105,7 @@ "depth": 1, "source": "builtin", "dependencies": { - "com.unity.burst": "1.8.14", + "com.unity.burst": "1.8.20", "com.unity.mathematics": "1.3.2", "com.unity.ugui": "2.0.0", "com.unity.collections": "2.4.3", @@ -154,28 +160,27 @@ } }, "com.unity.test-framework": { - "version": "1.4.6", + "version": "1.6.0", "depth": 0, - "source": "registry", + "source": "builtin", "dependencies": { "com.unity.ext.nunit": "2.0.3", "com.unity.modules.imgui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0" - }, - "url": "https://packages.unity.com" + } }, "com.unity.test-framework.performance": { - "version": "3.0.3", + "version": "3.2.0", "depth": 3, "source": "registry", "dependencies": { - "com.unity.test-framework": "1.1.31", + "com.unity.test-framework": "1.1.33", "com.unity.modules.jsonserialize": "1.0.0" }, "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.8.7", + "version": "1.8.9", "depth": 0, "source": "registry", "dependencies": { @@ -195,8 +200,27 @@ "com.unity.modules.imgui": "1.0.0" } }, + "com.unity.vectorgraphics": { + "version": "2.0.0-preview.25", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.2d.sprite": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.visualscripting": { - "version": "1.9.5", + "version": "1.9.7", "depth": 0, "source": "registry", "dependencies": { diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset index be4a797..6d40dbc 100644 --- a/ProjectSettings/PackageManagerSettings.asset +++ b/ProjectSettings/PackageManagerSettings.asset @@ -12,11 +12,13 @@ MonoBehaviour: m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} m_Name: m_EditorClassIdentifier: - m_EnablePreviewPackages: 0 - m_EnablePackageDependencies: 0 + m_EnablePreReleasePackages: 1 m_AdvancedSettingsExpanded: 1 m_ScopedRegistriesSettingsExpanded: 1 - oneTimeWarningShown: 0 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 1 + oneTimeDeprecatedPopUpShown: 0 m_Registries: - m_Id: main m_Name: @@ -24,20 +26,15 @@ MonoBehaviour: m_Scopes: [] m_IsDefault: 1 m_Capabilities: 7 + m_ConfigSource: 0 + m_Compliance: + m_Status: 0 + m_Violations: [] m_UserSelectedRegistryName: m_UserAddingNewScopedRegistry: 0 m_RegistryInfoDraft: - m_ErrorMessage: - m_Original: - m_Id: - m_Name: - m_Url: - m_Scopes: [] - m_IsDefault: 0 - m_Capabilities: 0 m_Modified: 0 - m_Name: - m_Url: - m_Scopes: - - - m_SelectedScopeIndex: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -866 + m_OriginalInstanceId: -868 + m_LoadAssets: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index a1aff48..df08fc9 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 6000.0.40f1 -m_EditorVersionWithRevision: 6000.0.40f1 (157d81624ddf) +m_EditorVersion: 6000.0.60f1 +m_EditorVersionWithRevision: 6000.0.60f1 (f02d6f9f9009) diff --git a/ProjectSettings/ShaderGraphSettings.asset b/ProjectSettings/ShaderGraphSettings.asset index e66042a..ce8c243 100644 --- a/ProjectSettings/ShaderGraphSettings.asset +++ b/ProjectSettings/ShaderGraphSettings.asset @@ -13,6 +13,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: shaderVariantLimit: 128 + overrideShaderVariantLimit: 0 customInterpolatorErrorThreshold: 32 customInterpolatorWarningThreshold: 16 customHeatmapValues: {fileID: 0} diff --git a/ProjectSettings/URPProjectSettings.asset b/ProjectSettings/URPProjectSettings.asset index 08faf03..64a8674 100644 --- a/ProjectSettings/URPProjectSettings.asset +++ b/ProjectSettings/URPProjectSettings.asset @@ -12,4 +12,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} m_Name: m_EditorClassIdentifier: - m_LastMaterialVersion: 9 + m_LastMaterialVersion: 10