mirror of
https://github.com/appen-isen/jeu-sans-image.git
synced 2026-01-18 16:47:37 +01:00
Basic map creator
Basic map creation from a svg file (AI generated)
This commit is contained in:
8
Assets/Editor.meta
Normal file
8
Assets/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0007f25b1fa247d40922e19f7ffa9ae5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
320
Assets/Editor/SvgToFlatMeshEditor.cs
Normal file
320
Assets/Editor/SvgToFlatMeshEditor.cs
Normal file
@@ -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<SvgToFlatMeshEditor>("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<Color, List<SceneNodeShapeEntry>>(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<SceneNodeShapeEntry> 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<SceneNode>();
|
||||
|
||||
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<Shape>() { 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<MeshFilter>();
|
||||
mf.sharedMesh = mesh;
|
||||
|
||||
var mr = go.AddComponent<MeshRenderer>();
|
||||
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<MeshCollider>();
|
||||
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<Color, List<SceneNodeShapeEntry>> 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<SceneNodeShapeEntry> list))
|
||||
{
|
||||
list = new List<SceneNodeShapeEntry>();
|
||||
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>() { 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<VectorUtils.Geometry> geoms, float globalScale)
|
||||
{
|
||||
var verts = new List<Vector3>();
|
||||
var uvs = new List<Vector2>();
|
||||
var indices = new List<int>();
|
||||
|
||||
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<Color>
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Editor/SvgToFlatMeshEditor.cs.meta
Normal file
2
Assets/Editor/SvgToFlatMeshEditor.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9264c9156cb5dbc4cbfeaaa27c0ab93b
|
||||
@@ -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:
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -13,6 +13,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
shaderVariantLimit: 128
|
||||
overrideShaderVariantLimit: 0
|
||||
customInterpolatorErrorThreshold: 32
|
||||
customInterpolatorWarningThreshold: 16
|
||||
customHeatmapValues: {fileID: 0}
|
||||
|
||||
@@ -12,4 +12,4 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_LastMaterialVersion: 9
|
||||
m_LastMaterialVersion: 10
|
||||
|
||||
Reference in New Issue
Block a user