Merge pull request #1 from appen-isen/feature/map-creator

Feature/map creator
This commit is contained in:
Alexis RS
2025-12-04 09:38:08 +01:00
committed by GitHub
37 changed files with 1093 additions and 96 deletions

8
Assets/Editor.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0007f25b1fa247d40922e19f7ffa9ae5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
[CreateAssetMenu(fileName = "ColorFolderMap", menuName = "Config/Color Folder Map")]
public class ColorFolderMap : ScriptableObject {
[Serializable]
public struct Entry {
public Color color;
public string folderName; // Example: "Gravel"
}
private const string SoundTexturesFolder = "Sound/Textures/";
private const string ResourcesFolderPath = "Assets/Resources/";
public List<Entry> entries = new List<Entry>();
/// Returns folder path for color, or null if config not set (Editor + Runtime safe)
/// Creates the folder if it does not exist
public string GetFolder(Color color) {
string hexColor = color.ToHexString();
foreach (var entry in entries) {
if (entry.color.ToHexString() == hexColor) {
CreateFolderIfNonExistent(entry.folderName);
return SoundTexturesFolder + entry.folderName;
}
}
return null;
}
private void CreateFolderIfNonExistent(string folderName) {
#if UNITY_EDITOR // AssetDatabase is Editor-only
if (!UnityEditor.AssetDatabase.IsValidFolder(ResourcesFolderPath + SoundTexturesFolder + folderName)) {
UnityEditor.AssetDatabase.CreateFolder(ResourcesFolderPath + SoundTexturesFolder, folderName);
UnityEditor.AssetDatabase.Refresh();
}
#endif
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 915ff3c5d25a0b44e89c7e267f66e4d4

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b55fda8cdee81ea43b73610114e83bb2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,17 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 915ff3c5d25a0b44e89c7e267f66e4d4, type: 3}
m_Name: ColorFolderMap
m_EditorClassIdentifier:
entries:
- color: {r: 0.8784314, g: 0.44313726, b: 0.53333336, a: 1}
folderName: Gravel

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bc3bfa2a0f7c8b949a39e040c0579741
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,420 @@
// SvgToFlatMeshEditor.cs
// Save to Assets/Editor/
// Requires com.unity.vectorgraphics package.
using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEditor;
using Unity.VectorGraphics; // From com.unity.vectorgraphics
public class SvgToFlatMeshEditor : EditorWindow
{
TextAsset svgFile;
Material editorMaterial;
float pixelsPerUnit = 100.0f;
Transform parentTransform;
float meshScale = 1f;
VectorUtils.TessellationOptions tessOptions = new VectorUtils.TessellationOptions() {
StepDistance = 1.0f,
MaxCordDeviation = 0.5f,
MaxTanAngleDeviation = 0.1f,
SamplingStepSize = 0.01f
};
Quaternion meshRotation = Quaternion.identity;
[SerializeField] private ColorFolderMap colorFolderMap;
[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);
editorMaterial = (Material)EditorGUILayout.ObjectField("Default Material", editorMaterial, typeof(Material), 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);
parentTransform = (Transform)EditorGUILayout.ObjectField("Parent Transform", parentTransform, typeof(Transform), true);
EditorGUILayout.Space();
EditorGUILayout.LabelField("Tessellation Options", EditorStyles.boldLabel);
tessOptions.StepDistance = EditorGUILayout.FloatField(new GUIContent("Step Distance", "From manual: The uniform tessellation step distance."), tessOptions.StepDistance);
tessOptions.MaxCordDeviation = EditorGUILayout.FloatField(new GUIContent("Max Cord Deviation", "From manual: The maximum distance on the cord to a straight line between to points after which more tessellation will be generated"), tessOptions.MaxCordDeviation);
tessOptions.MaxTanAngleDeviation = EditorGUILayout.FloatField(new GUIContent("Max Tan Angle Deviation", "From manual: The maximum angle (in degrees) between the curve tangent and the next point after which more tessellation will be generated"), tessOptions.MaxTanAngleDeviation);
tessOptions.SamplingStepSize = EditorGUILayout.FloatField(new GUIContent("Sampling Step Size", "From manual: The number of samples used internally to evaluate the curves. More samples = higher quality. Should be between 0 and 1 (inclusive)"), tessOptions.SamplingStepSize);
EditorGUILayout.Space();
EditorGUILayout.LabelField("Map rotation options", EditorStyles.boldLabel);
meshRotation = Quaternion.Euler(EditorGUILayout.Vector3Field(new GUIContent("Mesh Rotation (degrees)", "Rotation to apply to the generated meshes"), meshRotation.eulerAngles));
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 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;
}
Vector2 sceneCenter = VectorUtils.SceneNodeBounds(sceneInfo.Scene.Root).center;
// Gather shapes by fill color. We'll traverse the scene tree.
var shapesByColor = new Dictionary<Color, List<SceneNodeShapeEntry>>(new ColorEqualityComparer());
var wallsByColor = new Dictionary<Color, List<BezierPathSegment[]>>(new ColorEqualityComparer());
TraverseAndCollectShapes(sceneInfo.Scene.Root, Matrix2D.identity, shapesByColor, wallsByColor);
if (shapesByColor.Count == 0) {
EditorUtility.DisplayDialog("Result", "No filled shapes found in the SVG.", "OK");
return;
}
if (wallsByColor.Count == 0)
{
EditorUtility.DisplayDialog("Result", "No wall 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;
List<VectorUtils.Geometry> geoms = TesselateIntoGeometries(entries);
if (geoms == null || geoms.Count == 0) {
Debug.LogWarning($"No geometry generated for color {color} (skipping).");
continue;
}
// Build Mesh from geoms
Mesh mesh = BuildMeshFromGeometries(geoms, sceneCenter, meshScale);
// Create GameObject for this color region
string objectName = BuildObjectName(color, "Floor");
BuildGameObject(objectName, color, mesh, container);
}
foreach (var kv in wallsByColor)
{
Color color = kv.Key;
List<BezierPathSegment[]> entries = kv.Value;
// Build Mesh from
Mesh mesh = BuildExtrudedMeshFromBeziers(entries, sceneCenter, meshScale, 5.0f);
// Create GameObject for this wall color region
string objectName = BuildObjectName(color, "Wall");
BuildGameObject(objectName, color, mesh, container);
}
// Focus selection on created container
Selection.activeGameObject = container;
EditorUtility.DisplayDialog("Done", $"Generated {shapesByColor.Count} region GameObjects under '{container.name}'.", "OK");
}
// Tesselate a list of SceneNodeShapeEntry into VectorUtils.Geometry list
List<VectorUtils.Geometry> TesselateIntoGeometries(List<SceneNodeShapeEntry> entries) {
// 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
return VectorUtils.TessellateScene(tmpScene, tessOptions);
}
string BuildObjectName(Color color, string prefix)
{
string colorName = ColorToName(color);
return $"{prefix}_{colorName}";
}
void BuildGameObject(string objectName, Color color, Mesh mesh, GameObject container)
{
GameObject go = new GameObject(objectName);
go.transform.SetParent(container.transform, false);
MeshFilter mf = go.AddComponent<MeshFilter>();
mf.sharedMesh = mesh;
MeshRenderer mr = go.AddComponent<MeshRenderer>();
if (editorMaterial != null) {
// instantiate a material so each region can have its own color without overwriting the original asset
Material matInstance = new Material(editorMaterial);
matInstance.color = color;
mr.sharedMaterial = matInstance;
}
else {
// Create a quick default material
Material mat = new Material(Shader.Find("Standard"));
mat.color = color;
mr.sharedMaterial = mat;
}
// Generate collider
var mc = go.AddComponent<MeshCollider>();
mc.sharedMesh = mesh;
mc.convex = false; // keep non-convex for flat terrain; set to true if needed for rigidbodies
// Add tag to disable mesh renderer before build
go.tag = "EditorOnlyMeshRenderer";
// Automatically assign audio triggers based on color
string folder = colorFolderMap.GetFolder(color);
if (folder != null)
{
// TODO: automatically assign audio triggers
}
}
// Recursively traverse scene nodes and collect filled shapes and walls by color
void TraverseAndCollectShapes(SceneNode node, Matrix2D parentTransform, Dictionary<Color, List<SceneNodeShapeEntry>> shapesByColor, Dictionary<Color, List<BezierPathSegment[]>> wallsByColor) {
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) for floors
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 });
}
// Treat contours as walls, and only those with stroke color defined
if (shape.Contours != null && shape.Contours.Length > 0 && shape.PathProps.Stroke != null)
{
Color wallColor = shape.PathProps.Stroke.Color;
if (!wallsByColor.TryGetValue(wallColor, out List<BezierPathSegment[]> wallList)) {
wallList = new List<BezierPathSegment[]>();
wallsByColor[wallColor] = wallList;
}
// Add all contours as wall segments
foreach (BezierContour contour in shape.Contours)
{
wallList.Add(contour.Segments);
}
}
}
}
if (node.Children != null && node.Children.Count > 0) {
foreach (var c in node.Children) {
TraverseAndCollectShapes(c, currentTransform, shapesByColor, wallsByColor);
}
}
}
// Build a Mesh from VectorUtils.Geometry list
Mesh BuildMeshFromGeometries(List<VectorUtils.Geometry> geoms, Vector2 geomsCenter, float globalScale) {
// Forget about UVs (unnecessary for our use case)
List<Vector3> verts = new List<Vector3>();
List<int> indices = new List<int>();
int baseIndex = 0;
foreach (VectorUtils.Geometry 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++) {
Vector2 v2 = g.Vertices[i];
// Map XY -> XZ plane; Y = 0
Vector3 v3 = new Vector3(v2.x-geomsCenter.x, 0f, -v2.y+geomsCenter.y) * globalScale;
v3 = meshRotation * v3; // Apply rotation
verts.Add(v3);
}
// Add indices (triangles)
for (int i = 0; i < g.Indices.Length; i += 3) {
// VectorUtils yields triangles in clockwise winding
// Unity is supposed to use clockwise as well, but in practice we find we need to flip the order to get correct facing.
indices.Add(baseIndex + g.Indices[i + 1]);
indices.Add(baseIndex + g.Indices[i]);
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);
mesh.RecalculateNormals();
mesh.RecalculateBounds();
return mesh;
}
// Build an extruded Mesh from geometries
Mesh BuildExtrudedMeshFromBeziers(List<BezierPathSegment[]> beziers, Vector2 geomsCenter, float globalScale, float height){
// Forget about UVs (unnecessary for our use case)
List<Vector3> verts = new List<Vector3>();
List<int> indices = new List<int>();
Vector3 geomsCenter3D = new Vector3(geomsCenter.x, 0f, -geomsCenter.y);
// Treat each path separately as a closed shape to extrude
foreach (BezierPathSegment[] bezier in beziers)
{
// Add vertices: low and high for each point
for (int i=0; i<bezier.Length; i++)
{
Vector2 v2 = bezier[i].P0;
Vector3 v3_low = meshRotation * (new Vector3(v2.x, 0f, -v2.y) - geomsCenter3D) * globalScale;
Vector3 v3_high = meshRotation * (new Vector3(v2.x, height, -v2.y) - geomsCenter3D) * globalScale;
verts.Add(v3_low);
verts.Add(v3_low); // Back face duplicate
verts.Add(v3_high);
verts.Add(v3_high); // Back face duplicate
}
// Add indices for triangles
for (int i = 0; i < bezier.Length; i++)
{
int next_i = (i + 1) % bezier.Length;
// Each quad between points i and nextI is made of two triangles, double sided
int low0 = i*4;
int high0 = i*4 +2;
int low1 = next_i*4;
int high1 = next_i*4 +2;
// Triangle 1
indices.Add(low0);
indices.Add(high0);
indices.Add(low1);
// Triangle 2
indices.Add(high0);
indices.Add(high1);
indices.Add(low1);
// Triangle 1 (back face)
indices.Add(low1 +1);
indices.Add(high0 +1);
indices.Add(low0 +1);
// Triangle 2 (back face)
indices.Add(low1 +1);
indices.Add(high1 +1);
indices.Add(high0 +1);
}
}
Mesh mesh = new Mesh();
mesh.name = "SVG_ExtrudedMesh";
mesh.indexFormat = (verts.Count > 65535) ? UnityEngine.Rendering.IndexFormat.UInt32 : UnityEngine.Rendering.IndexFormat.UInt16;
mesh.SetVertices(verts);
mesh.SetTriangles(indices, 0);
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;
}
}
}
}

View File

@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 9264c9156cb5dbc4cbfeaaa27c0ab93b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- m_ViewDataDictionary: {instanceID: 0}
- colorFolderMap: {fileID: 11400000, guid: bc3bfa2a0f7c8b949a39e040c0579741, type: 2}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f49999260ece8634697bfdbbb7d67a2c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,136 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5404447359825006148
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DefaultMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3e24e1e682531ab4eb3321c3f86c2c17
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e1950c3b354443c4d9df6bd0649d966b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cda56c1a2986a59468087973dd6c881b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f3a8210de0ae1ce44ac831ac99d756a7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 45cc896a8d2b9de4b85f5c96b530f0f4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/SVGMaps.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f3bc928c654cb5a4b8b3059b25127352
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: af510fbea37f36c488d77585806bb354
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="windows-1252"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800px" height="800px" viewBox="0 0 505.736 505.736" xml:space="preserve">
<g>
<path d="M396.007,191.19c-0.478,0-1.075,0-1.554,0c-6.693-54.147-52.833-96.103-108.773-96.103 c-48.171,0-89.051,31.078-103.753,74.349c-16.734-8.128-35.381-12.67-55.224-12.67C56.658,156.765,0,213.542,0,283.707 c0,67.416,52.594,122.64,118.934,126.703v0.239h277.91c60.244-0.358,108.893-49.366,108.893-109.729 C505.617,240.317,456.609,191.19,396.007,191.19z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 809 B

View File

@@ -0,0 +1,55 @@
fileFormatVersion: 2
guid: 28edfbcb3f041d94685d1ef04e6abfe9
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
svgType: 0
texturedSpriteMeshType: 0
svgPixelsPerUnit: 100
gradientResolution: 64
alignment: 0
customPivot: {x: 0, y: 0}
generatePhysicsShape: 0
viewportOptions: 0
preserveViewport: 0
advancedMode: 0
predefinedResolutionIndex: 1
targetResolution: 1080
resolutionMultiplier: 1
stepDistance: 10
samplingStepDistance: 100
maxCordDeviationEnabled: 0
maxCordDeviation: 1
maxTangentAngleEnabled: 0
maxTangentAngle: 5
keepTextureAspectRatio: 1
textureSize: 256
textureWidth: 256
textureHeight: 256
wrapMode: 0
filterMode: 1
sampleCount: 4
preserveSVGImageAspect: 0
useSVGPixelsPerUnit: 0
spriteData:
TessellationDetail: 0
SpriteRect:
name:
originalName:
pivot: {x: 0, y: 0}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
customData:
rect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
spriteID: cc9fb8aa1cd6a8949a0bde35d520790a
PhysicsOutlines: []

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="windows-1252"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800px" height="800px" viewBox="0 0 505.736 505.736" xml:space="preserve">
<g>
<path d="M396.007,191.19c-0.478,0-1.075,0-1.554,0c-6.693-54.147-52.833-96.103-108.773-96.103 c-48.171,0-89.051,31.078-103.753,74.349c-16.734-8.128-35.381-12.67-55.224-12.67C56.658,156.765,0,213.542,0,283.707 c0,67.416,52.594,122.64,118.934,126.703v0.239h277.91c60.244-0.358,108.893-49.366,108.893-109.729 C505.617,240.317,456.609,191.19,396.007,191.19z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 809 B

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7876bac01724f124ca428d83044dd4ce
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="windows-1252"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" xml:space="preserve">
<path style="fill:#D8D8DA;" d="M256,0C114.615,0,0,114.615,0,256s114.615,256,256,256s256-114.615,256-256S397.385,0,256,0z M256,336.842c-44.648,0-80.842-36.194-80.842-80.842s36.194-80.842,80.842-80.842s80.842,36.194,80.842,80.842 S300.648,336.842,256,336.842z"/>
<path style="fill:#D4B6E6;" d="M282.947,188.632h220.076C485.09,122.726,441.507,67.394,383.64,34.044L229.053,188.632H282.947z"/>
<path style="fill:#EBAFD1;" d="M229.053,188.632L383.639,34.044C346.068,12.39,302.482,0,256,0c-23.319,0-45.899,3.135-67.368,8.978 v220.075L229.053,188.632z"/>
<path style="fill:#E07188;" d="M188.632,229.053V8.978C122.726,26.91,67.394,70.493,34.045,128.36l154.586,154.588V229.053z"/>
<g>
<polygon style="fill:#D8D8DA;" points="188.632,229.053 229.053,188.633 282.947,188.633 282.947,188.632 229.053,188.632 "/>
<polygon style="fill:#D8D8DA;" points="229.053,323.367 188.632,282.947 229.053,323.368 282.947,323.368 323.368,282.947 282.947,323.367 "/>
</g>
<path style="fill:#B4D8F1;" d="M503.024,188.632H282.947v0.001h0.958l39.463,40.42L477.955,383.64 C499.611,346.068,512,302.482,512,256C512,232.681,508.865,210.099,503.024,188.632z"/>
<path style="fill:#ACFFF4;" d="M323.368,282.947v220.075c65.905-17.932,121.238-61.517,154.586-119.382L323.368,229.053V282.947z"/>
<path style="fill:#95D5A7;" d="M282.947,323.368L128.361,477.956C165.932,499.61,209.518,512,256,512 c23.319,0,45.899-3.135,67.368-8.977V282.947L282.947,323.368z"/>
<path style="fill:#F8E99B;" d="M229.053,323.368H8.976C26.91,389.274,70.493,444.606,128.36,477.956l154.588-154.588H229.053z"/>
<path style="fill:#EFC27B;" d="M188.632,282.947L34.045,128.36C12.389,165.932,0,209.518,0,256c0,23.319,3.135,45.901,8.976,67.368 h220.076L188.632,282.947z"/>
<polygon style="fill:#D8D8DA;" points="283.905,188.633 282.947,188.633 323.368,229.053 "/>
<path style="fill:#B681D5;" d="M503.024,188.632C485.09,122.726,441.507,67.394,383.64,34.044L256,161.684v26.947h26.947H503.024z"/>
<path style="fill:#E592BF;" d="M383.639,34.044C346.068,12.39,302.482,0,256,0v161.684L383.639,34.044z"/>
<path style="fill:#80CB93;" d="M256,350.316V512c23.319,0,45.899-3.135,67.368-8.977V282.947l-40.421,40.421L256,350.316z"/>
<polygon style="fill:#F6E27D;" points="282.947,323.368 256,323.368 256,350.316 "/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0a3c1a6a04835624d828bb5fd98ea0ac
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="2.66667in"
height="2.66667in"
viewBox="0 0 800 800"
version="1.1"
id="svg1"
sodipodi:docname="weird-cloud.svg"
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="in"
inkscape:zoom="3.0195274"
inkscape:cx="127.66899"
inkscape:cy="127.66899"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<path
id="path2"
style="fill:#878d8e;fill-opacity:1;fill-rule:evenodd"
d="M 451.8976 150.40874 C 375.6976 150.40874 311.04038 199.56723 287.78038 268.01723 C 261.31038 255.16723 231.80698 247.97941 200.42698 247.97941 C 89.616983 247.97941 0 337.78871 0 448.77871 C 0 555.41871 83.200622 642.7818 188.14062 649.2118 L 188.14062 649.59021 L 627.75186 649.59021 C 723.05186 649.02021 799.99895 571.50256 799.99895 476.01256 C 799.80895 380.15256 722.2913 302.4288 626.4213 302.4288 L 623.96769 302.4288 C 613.37769 216.7788 540.3876 150.40874 451.8976 150.40874 z M 217.49849 454.4977 L 234.00238 478.50279 L 235.49774 502.50178 L 203.99754 502.50178 L 202.50218 478.50279 L 217.49849 454.4977 z "
inkscape:label="cloud" />
<path
id="Water droplet-7"
fill="none"
stroke="#000000"
stroke-width="1"
d="m 217.5,454.5 -15,24 1.5,24 h 31.5 l -1.5,-24 z"
sodipodi:nodetypes="cccccc"
style="display:inline;fill:#4ea0ee;fill-opacity:1"
inkscape:label="Water droplet" />
<path
id="wall"
fill="none"
stroke="black"
stroke-width="1"
d="m 443,381 -18,-89 -64,63 8,99 131,63 64,-75 102,7 -49,-104 H 490 Z"
style="stroke:#e9e924;stroke-opacity:1"
sodipodi:nodetypes="cccccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 34d6dd9ef3aa4db43992c516bccef334
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -278,6 +278,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
ears: {fileID: 493760352}
minRotation: -90
maxRotation: 90
speed: 15
sensitivity: 70
maxSpeed: 10
@@ -722,8 +724,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5a895e8a798ee0b4a9a5ea33d6b07f4b, type: 3}
m_Name:
m_EditorClassIdentifier:
minRotation: -90
maxRotation: 90
--- !u!1 &990919146
GameObject:
m_ObjectHideFlags: 0
@@ -1018,7 +1018,7 @@ AudioSource:
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: cb6c4215b8cd7b64cbee2efc72969545, type: 3}
m_audioClip: {fileID: 0}
m_Resource: {fileID: 8300000, guid: cb6c4215b8cd7b64cbee2efc72969545, type: 3}
m_PlayOnAwake: 1
m_Volume: 1

View File

@@ -78,11 +78,11 @@ MonoBehaviour:
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 32
m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 0
m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
m_UseLegacyLightmaps: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1
@@ -100,15 +100,16 @@ MonoBehaviour:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 4
m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilteringModeAdditionalLight: 0
m_PrefilteringModeAdditionalLightShadows: 2
m_PrefilterXRKeywords: 1
m_PrefilteringModeForwardPlus: 1
m_PrefilteringModeForwardPlus: 2
m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 1
m_PrefilteringModeScreenSpaceOcclusion: 2
m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 0
m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 0
m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1
@@ -120,14 +121,16 @@ MonoBehaviour:
m_PrefilterSSAOSampleCountHigh: 1
m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 1
m_PrefilterDBufferMRT3: 0
m_PrefilterSoftShadowsQualityLow: 0
m_PrefilterSoftShadowsQualityMedium: 0
m_PrefilterSoftShadowsQualityHigh: 0
m_PrefilterDBufferMRT3: 1
m_PrefilterSoftShadowsQualityLow: 1
m_PrefilterSoftShadowsQualityMedium: 1
m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1
m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0
m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0
m_Textures:

View File

@@ -55,8 +55,24 @@ MonoBehaviour:
- rid: 8712630790384254976
- rid: 6455115202312536064
- rid: 6455115202312536065
- rid: 6596437875811942460
- rid: 6596437875811942461
- rid: 6596437875811942462
- rid: 6596437875811942463
m_RuntimeSettings:
m_List: []
m_List:
- rid: 6852985685364965378
- rid: 6852985685364965379
- rid: 6852985685364965380
- rid: 6852985685364965381
- rid: 6852985685364965384
- rid: 6852985685364965385
- rid: 6852985685364965392
- rid: 6852985685364965394
- rid: 8712630790384254976
- rid: 6455115202312536064
- rid: 6596437875811942460
- rid: 6596437875811942462
m_AssetVersion: 8
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames:
@@ -97,6 +113,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:

View File

@@ -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",

View File

@@ -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": {

View File

@@ -36,10 +36,8 @@ GraphicsSettings:
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_PreloadShadersBatchTimeLimit: -1
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
type: 0}
m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd,
type: 2}
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2}
m_TransparencySortMode: 0
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
m_DefaultRenderingPath: 1
@@ -60,8 +58,7 @@ GraphicsSettings:
m_FogKeepExp2: 1
m_AlbedoSwatchInfos: []
m_RenderPipelineGlobalSettingsMap:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa,
type: 2}
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, type: 2}
m_LightsUseLinearIntensity: 1
m_LightsUseColorTemperature: 1
m_LogWhenShaderIsCompiled: 0

View File

@@ -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

View File

@@ -70,6 +70,7 @@ PlayerSettings:
androidStartInFullscreen: 1
androidRenderOutsideSafeArea: 1
androidUseSwappy: 0
androidDisplayOptions: 1
androidBlitType: 0
androidResizeableActivity: 1
androidDefaultWindowWidth: 1920
@@ -86,6 +87,7 @@ PlayerSettings:
muteOtherAudioSources: 0
Prepare IOS For Recording: 0
Force IOS Speakers When Recording: 0
audioSpatialExperience: 0
deferSystemGesturesMode: 0
hideHomeButton: 0
submitAnalytics: 1
@@ -273,6 +275,9 @@ PlayerSettings:
AndroidBuildApkPerCpuArchitecture: 0
AndroidTVCompatibility: 0
AndroidIsGame: 1
androidAppCategory: 3
useAndroidAppCategory: 1
androidAppCategoryOther:
AndroidEnableTango: 0
androidEnableBanner: 1
androidUseLowAccuracyLocation: 0
@@ -542,6 +547,7 @@ PlayerSettings:
- serializedVersion: 2
m_BuildTarget: Android
m_EncodingQuality: 1
m_BuildTargetGroupHDRCubemapEncodingQuality: []
m_BuildTargetGroupLightmapSettings: []
m_BuildTargetGroupLoadStoreDebugModeSettings: []
m_BuildTargetNormalMapEncoding:

View File

@@ -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)

View File

@@ -13,6 +13,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
shaderVariantLimit: 128
overrideShaderVariantLimit: 0
customInterpolatorErrorThreshold: 32
customInterpolatorWarningThreshold: 16
customHeatmapValues: {fileID: 0}

View File

@@ -2,8 +2,9 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!78 &1
TagManager:
serializedVersion: 2
tags: []
serializedVersion: 3
tags:
- EditorOnlyMeshRenderer
layers:
- Default
- TransparentFX
@@ -50,27 +51,3 @@ TagManager:
- Light Layer 5
- Light Layer 6
- Light Layer 7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

View File

@@ -12,4 +12,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
m_Name:
m_EditorClassIdentifier:
m_LastMaterialVersion: 9
m_LastMaterialVersion: 10