diff --git a/Assets/DynamicModelling/Scripts/ModelFactory.cs b/Assets/DynamicModelling/Scripts/ModelFactory.cs
deleted file mode 100644
index 3d980b08..00000000
--- a/Assets/DynamicModelling/Scripts/ModelFactory.cs
+++ /dev/null
@@ -1,591 +0,0 @@
-using System;
-using Unibas.DBIS.DynamicModelling.Models;
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling
-{
- public static class ModelFactory
- {
- ///
- /// Quad of sorts:
- ///
- /// c---d
- /// | |
- /// a---b
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public static GameObject CreateFreeformQuad(Vector3 a, Vector3 b, Vector3 c, Vector3 d,
- Material material = null)
- {
- GameObject go = new GameObject("FreeformQuad");
- MeshFilter meshFilter = go.AddComponent();
- MeshRenderer meshRenderer = go.AddComponent();
- Mesh mesh = meshFilter.mesh;
- Vector3[] vertices = new[]
- {
- a, b, c, d
- };
- mesh.vertices = vertices;
-
- int[] tri = new int[6];
-
- tri[0] = 0;
- tri[1] = 2;
- tri[2] = 1;
-
- tri[3] = 2;
- tri[4] = 3;
- tri[5] = 1;
-
- mesh.triangles = tri;
-
- /*
- Vector3[] normals = new Vector3[4];
-
- normals[0] = -Vector3.forward;
- normals[1] = -Vector3.forward;
- normals[2] = -Vector3.forward;
- normals[3] = -Vector3.forward;
-
- mesh.normals = normals;*/
-
- Vector2[] uv = new Vector2[4];
-
- /*
- float xUnit = 1;
- float yUnit = 1;
-
- if (width > height)
- {
- xUnit = width / height;
- }
- else
- {
- yUnit = height / width;
- }
- */
-
- // TODO
-
- uv[0] = new Vector2(0, 0);
- uv[1] = new Vector2(1, 0);
- uv[2] = new Vector2(0, 1);
- uv[3] = new Vector2(1, 1);
-
- mesh.uv = uv;
-
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.RecalculateTangents();
-
- if (material != null)
- {
- meshRenderer.material.CopyPropertiesFromMaterial(material);
- //meshRenderer.material.SetTextureScale("_MainTex", new Vector2(1,1));
- meshRenderer.material.name = material.name + "(Instance)";
- }
- else
- {
- meshRenderer.material = new Material(Shader.Find("Standard"));
- meshRenderer.material.color = Color.white;
- }
-
-
- return go;
- }
-
- ///
- /// Creates a wall between two positions
- ///
- ///
- ///
- ///
- ///
- ///
- public static GameObject CreatePositionedWall(Vector3 start, Vector3 end, float height,
- string materialName = null)
- {
- float width = Vector3.Distance(start, end);
- float a = Vector3.Angle(end - start, Vector3.right);
- GameObject go = new GameObject("PositionedWall");
- GameObject wall = CreateWall(width, height, materialName);
-
- wall.transform.parent = go.transform;
- wall.transform.position = Vector3.zero;
- wall.transform.Rotate(Vector3.up, -a);
- go.transform.position = start;
- return go;
- }
-
- public static GameObject CreateWall(WallModel model)
- {
- float width = Vector3.Distance(model.Start, model.End);
- float a = Vector3.Angle(model.Start - model.End, Vector3.right);
- GameObject go = new GameObject("PositionedWall");
- GameObject wall = CreateWall(width, model.Height, model.Material);
-
- wall.transform.parent = go.transform;
- wall.transform.position = Vector3.zero;
- wall.transform.Rotate(Vector3.up, -a);
- go.transform.position = model.Start;
- go.AddComponent().Model = model;
- return go;
- }
-
-
- ///
- ///
- ///
- /// center of room
- ///
- ///
- /// 0 floor, 1 ceiling, 2 north (pos z), 3 east (pos x), 4 south (neg z), 5 west (neg x)
- ///
- public static GameObject CreateCuboidRoom(Vector3 position, float size, float height, string[] materialNames)
- {
- GameObject root = new GameObject("SquareRoom");
-
- float halfSize = size / 2f;
-
- // North wall
- GameObject north = CreateWall(size, height, materialNames[2]);
- north.name = "NorthWall";
- north.transform.parent = root.transform;
- north.transform.position = new Vector3(-halfSize, 0, halfSize);
- // East wall
- GameObject east = CreateWall(size, height, materialNames[3]);
- east.name = "EastWall";
- east.transform.parent = root.transform;
- east.transform.position = new Vector3(halfSize, 0, halfSize);
- east.transform.Rotate(Vector3.up, 90);
- // South wall
- GameObject south = CreateWall(size, height, materialNames[4]);
- south.name = "SouthWall";
- south.transform.parent = root.transform;
- south.transform.position = new Vector3(halfSize, 0, -halfSize);
- south.transform.Rotate(Vector3.up, 180);
- // West wall
- GameObject west = CreateWall(size, height, materialNames[5]);
- west.name = "WestWall";
- west.transform.parent = root.transform;
- west.transform.position = new Vector3(-halfSize, 0, -halfSize);
- west.transform.Rotate(Vector3.up, 270);
-
- // Floor
- GameObject floorAnchor = new GameObject("FloorAnchor");
- floorAnchor.transform.parent = root.transform;
-
- GameObject floor = CreateWall(size, size, materialNames[0]);
- floor.name = "Floor";
- floor.transform.parent = floorAnchor.transform;
- // North Aligned
- floorAnchor.transform.position = new Vector3(-halfSize, 0, -halfSize);
- floorAnchor.transform.Rotate(Vector3.right, 90);
- // East Aligned
- //floorAnchor.transform.position = new Vector3(-halfSize, 0, halfSize);
- //floorAnchor.transform.Rotate(Vector3f.back,90);
-
- // Ceiling
- GameObject ceilingAnchor = new GameObject("CeilingAnchor");
- ceilingAnchor.transform.parent = root.transform;
-
- GameObject ceiling = CreateWall(size, size, materialNames[1]);
- ceiling.name = "Ceiling";
- ceiling.transform.parent = ceilingAnchor.transform;
-
- root.transform.position = position;
- // North Aligned
- ceilingAnchor.transform.position = new Vector3(halfSize, height, halfSize);
- ceilingAnchor.transform.Rotate(Vector3.right, -90);
- // East Aligned
- //ceilingAnchor.transform.position = new Vector3(halfSize, height, -halfSize);
- //ceilingAnchor.transform.Rotate( Vector3.back, -90);
-
- return root;
- }
-
- public static GameObject CreateCuboidRoom(CuboidRoomModel model)
- {
- GameObject root = new GameObject("CuboidRoom");
-
- float halfSize = model.Size / 2f;
-
- // North wall
- GameObject north = CreateWall(model.Size, model.Height, model.NorthMaterial);
- north.name = "NorthWall";
- north.transform.parent = root.transform;
- north.transform.position = new Vector3(-halfSize, 0, halfSize);
- // East wall
- GameObject east = CreateWall(model.Size, model.Height, model.EastMaterial);
- east.name = "EastWall";
- east.transform.parent = root.transform;
- east.transform.position = new Vector3(halfSize, 0, halfSize);
- east.transform.Rotate(Vector3.up, 90);
- // South wall
- GameObject south = CreateWall(model.Size, model.Height, model.SouthMaterial);
- south.name = "SouthWall";
- south.transform.parent = root.transform;
- south.transform.position = new Vector3(halfSize, 0, -halfSize);
- south.transform.Rotate(Vector3.up, 180);
- // West wall
- GameObject west = CreateWall(model.Size, model.Height, model.WestMaterial);
- west.name = "WestWall";
- west.transform.parent = root.transform;
- west.transform.position = new Vector3(-halfSize, 0, -halfSize);
- west.transform.Rotate(Vector3.up, 270);
-
- // Floor
- GameObject floorAnchor = new GameObject("FloorAnchor");
- floorAnchor.transform.parent = root.transform;
-
- GameObject floor = CreateWall(model.Size, model.Size, model.FloorMaterial);
- floor.name = "Floor";
- floor.transform.parent = floorAnchor.transform;
- // North Aligned
- floorAnchor.transform.position = new Vector3(-halfSize, 0, -halfSize);
- floorAnchor.transform.Rotate(Vector3.right, 90);
- // East Aligned
- //floorAnchor.transform.position = new Vector3(-halfSize, 0, halfSize);
- //floorAnchor.transform.Rotate(Vector3f.back,90);
-
- // Ceiling
- GameObject ceilingAnchor = new GameObject("CeilingAnchor");
- ceilingAnchor.transform.parent = root.transform;
-
- GameObject ceiling = CreateWall(model.Size, model.Size, model.CeilingMaterial);
- ceiling.name = "Ceiling";
- ceiling.transform.parent = ceilingAnchor.transform;
-
-
- // North Aligned
- ceilingAnchor.transform.position = new Vector3(-halfSize, model.Height, halfSize);
- ceilingAnchor.transform.Rotate(Vector3.right, -90);
- // East Aligned
- //ceilingAnchor.transform.position = new Vector3(halfSize, height, -halfSize);
- //ceilingAnchor.transform.Rotate( Vector3.back, -90);
-
- root.transform.position = model.Position;
-
- root.AddComponent().Model = model;
- return root;
- }
-
-
-
-
- ///
- /// Creates a wall game object to position later.
- /// The wall is flat and always "upright", e.g. the normal of the mesh is negative z.
- /// Use the resulting gameobject to rotate and re-position the wall.
- ///
- /// The width of the wall in Unity units
- /// The height of the wall in Unity units
- /// The wall's material name. Expects the material file to be at Resources/Materials/materalName. If no present, the word Material will be suffixed.
- ///
- public static GameObject CreateWall(float width, float height, string materialName = null)
- {
-
- return CreateWall(width, height, LoadMaterialByName(materialName));
- }
-
- private static Material LoadMaterialByName(string materialName)
- {
- if (!string.IsNullOrEmpty(materialName))
- {
- if (!materialName.EndsWith("Material"))
- {
- materialName = materialName + "Material";
- }
-
- return Resources.Load("Materials/" + materialName);
- }
-
- return null;
- }
-
- public static GameObject CreateWall(float width, float height, Material mat = null)
- {
- GameObject go = new GameObject("Wall");
- MeshFilter meshFilter = go.AddComponent();
- MeshRenderer meshRenderer = go.AddComponent();
- Mesh mesh = meshFilter.mesh;
- Vector3[] vertices = new Vector3[4];
- vertices[0] = new Vector3(0, 0, 0);
- vertices[1] = new Vector3(width, 0, 0);
- vertices[2] = new Vector3(0, height, 0);
- vertices[3] = new Vector3(width, height, 0);
-
- mesh.vertices = vertices;
-
- int[] tri = new int[6];
-
- tri[0] = 0;
- tri[1] = 2;
- tri[2] = 1;
-
- tri[3] = 2;
- tri[4] = 3;
- tri[5] = 1;
-
- mesh.triangles = tri;
-
- Vector3[] normals = new Vector3[4];
-
- normals[0] = -Vector3.forward;
- normals[1] = -Vector3.forward;
- normals[2] = -Vector3.forward;
- normals[3] = -Vector3.forward;
-
- mesh.normals = normals;
-
- Vector2[] uv = new Vector2[4];
-
- float xUnit = 1;
- float yUnit = 1;
-
- if (width > height)
- {
- xUnit = width / height;
- }
- else
- {
- yUnit = height / width;
- }
-
- uv[0] = new Vector2(0, 0);
- uv[1] = new Vector2(xUnit, 0);
- uv[2] = new Vector2(0, yUnit);
- uv[3] = new Vector2(xUnit, yUnit);
-
- mesh.uv = uv;
-
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.RecalculateTangents();
-
- if (mat != null)
- {
- meshRenderer.material.CopyPropertiesFromMaterial(mat);
- //meshRenderer.material.SetTextureScale("_MainTex", new Vector2(1,1));
- meshRenderer.material.name = mat.name;
- }
- else
- {
- meshRenderer.material = new Material(Shader.Find("Standard"));
- meshRenderer.material.color = Color.white;
- }
-
- // TODO Highly experimental!
-
- var boxCollider = go.AddComponent();
- boxCollider.size = new Vector3(width,height,0.0001f);
-
- return go;
- }
-
-
- private static Vector3 CalculateUnit(Vector3 dimensions)
- {
- float m = Math.Max(Math.Max(dimensions.x, dimensions.y), dimensions.z);
- return new Vector3(m/dimensions.x, m/dimensions.y, m/dimensions.z);
- }
-
- private static Vector2 CalculateUnit(float width, float height)
- {
- return CalculateNormalizedToLeastSquareUnit(width, height);
- //return CalculateNormalizedToOneUnit(width, height);
- }
-
- private static Vector2 CalculateNormalizedToLeastSquareUnit(float width, float height)
- {
- float xUnit = 1,
- yUnit = 1;
-
- if (width > height)
- {
- xUnit = width / height;
- }
- else
- {
- yUnit = height / width;
- }
-
- return new Vector2(xUnit, yUnit);
- }
-
- private static Vector2 CalculateNormalizedToOneUnit(float width, float height)
- {
- return new Vector2(1f / width, 1f / height);
- }
-
- public static GameObject CreateCuboid(CuboidModel cuboid)
- {
- GameObject cub = CreateCuboid(cuboid.Width, cuboid.Height, cuboid.Depth);
- MeshRenderer meshRenderer = cub.GetComponent();
- if (cuboid.Material != null)
- {
- meshRenderer.material.CopyPropertiesFromMaterial(cuboid.Material);
- }
- else
- {
- meshRenderer.material = new Material(Shader.Find("Standard"));
- meshRenderer.material.name = "Default";
- meshRenderer.material.color = Color.white;
- }
- cub.AddComponent().Model = cuboid;
- return cub;
- }
-
- public static GameObject CreateCuboid(float width, float height, float depth)
- {
- GameObject go = new GameObject("Cuboid");
- MeshFilter meshFilter = go.AddComponent();
- MeshRenderer meshRenderer = go.AddComponent();
- Mesh mesh = meshFilter.mesh;
-
- // The naming is always from the front and downwards looking! e.g. From the back, left and right is swapped
- Vector3 frontLeftDown = Vector3.zero;
- Vector3 frontRightDown = new Vector3(width, 0, 0);
- Vector3 frontLeftUp = new Vector3(0, height, 0);
- Vector3 frontRightUp = new Vector3(width, height, 0);
-
- Vector3 backLeftDown = new Vector3(0, 0, depth);
- Vector3 backRightDown = new Vector3(width, 0, depth);
- Vector3 backLeftUp = new Vector3(0, height, depth);
- Vector3 backRightUp = new Vector3(width, height, depth);
-
- Vector3[] vertices = new[]
- {
- // Front
- frontLeftDown, frontRightDown, frontLeftUp, frontRightUp,
- // Back
- backLeftDown, backRightDown, backLeftUp, backRightUp,
- // Left
- backLeftDown, frontLeftDown, backLeftUp, frontLeftUp,
- // Right
- frontRightDown, backRightDown, frontRightUp, backRightUp,
- // Up
- frontLeftUp, frontRightUp, backLeftUp, backRightUp,
- // Down
- frontLeftDown, frontRightDown, backLeftDown, backRightDown
- };
- mesh.vertices = vertices;
-
- int[] triangles = new[]
- {
- // Front
- 0, 2, 1, 2, 3, 1,
- // Back
- 5, 7, 4, 7, 6, 4,
- // Left
- 8, 10, 9, 10, 11, 9,
- // Right
- 12, 14, 13, 14, 15, 13,
- // Up
- 16, 18, 17, 18, 19, 17,
- // Down
- 21, 23, 20, 23, 22, 20
- };
- mesh.triangles = triangles;
-
- Vector3[] normals = new[]
- {
- // Front
- -Vector3.forward, -Vector3.forward, -Vector3.forward, -Vector3.forward,
- // Back
- -Vector3.back, -Vector3.back, -Vector3.back, -Vector3.back,
- // Left
- -Vector3.left, -Vector3.left, -Vector3.left, -Vector3.left,
- // Right
- -Vector3.right, -Vector3.right, -Vector3.right, -Vector3.right,
- // Up
- -Vector3.up, -Vector3.up, -Vector3.up, -Vector3.up,
- // Down
- -Vector3.down, -Vector3.down, -Vector3.down, -Vector3.down
- };
- mesh.normals = normals;
-
-
- /*
- * Unwrapping of mesh for uf like following
- * U
- * LFRB
- * D
- */
-
- var u = Math.Min(Math.Min(width, height), depth);
- var w = width / u;
- var h = height / u;
- var d = depth / u;
-
- Vector2 uvUnits = new Vector2(u,u);
- var fOff = uvUnits.x * depth;
- var rOff = uvUnits.x * width + fOff;
- var bOff = uvUnits.x * depth + rOff;
- var uOff = uvUnits.y * depth + uvUnits.y * height;
- Vector2[] uv = new[]
- {
- // Front
- new Vector2(fOff, uvUnits.y * depth), new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth),
- new Vector2(fOff, uvUnits.y * depth + uvUnits.y * height),
- new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth + uvUnits.y * height),
-
- // Back
- new Vector2(bOff, uvUnits.y * depth), new Vector2(bOff + uvUnits.x * width, uvUnits.y * depth),
- new Vector2(bOff, uvUnits.y * depth + uvUnits.y * height),
- new Vector2(bOff + uvUnits.x * width, uvUnits.y * depth + uvUnits.y * height),
-
- // Left
- new Vector2(0, uvUnits.y * depth), new Vector2(uvUnits.x * depth, uvUnits.y * depth),
- new Vector2(0, uvUnits.y * depth + uvUnits.y * height),
- new Vector2(uvUnits.x * depth, uvUnits.y * depth + uvUnits.y * height),
- // Right
- new Vector2(rOff, uvUnits.y * depth), new Vector2(rOff + uvUnits.x * depth, uvUnits.y * depth),
- new Vector2(rOff, uvUnits.y * depth + uvUnits.y * height),
- new Vector2(rOff + uvUnits.x * depth, uvUnits.y * depth + uvUnits.y * height),
- // Up
- new Vector2(fOff, uOff), new Vector2(fOff + uvUnits.x * width, uOff),
- new Vector2(fOff, uOff + uvUnits.y * depth),
- new Vector2(fOff + uvUnits.x * width, uOff + uvUnits.y * depth),
-
- // Down
- new Vector2(fOff, 0), new Vector2(fOff + uvUnits.x * width, 0), new Vector2(fOff, uvUnits.y * depth),
- new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth)
- };
-
- mesh.uv = uv;
-
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.RecalculateTangents();
-
- meshRenderer.material = new Material(Shader.Find("Standard"));
- meshRenderer.material.name = "Default";
- meshRenderer.material.color = Color.green;
-
- return go;
- }
-
- public static GameObject CreateModel(ComplexCuboidModel model)
- {
- GameObject root = new GameObject("ComplexCuboid");
- for (int i = 0; i < model.Size(); i++)
- {
- Vector3 pos = model.GetPositionAt(i);
- CuboidModel cuboid = model.GetCuboidAt(i);
- GameObject cub = CreateCuboid(cuboid);
- cub.transform.parent = root.transform;
- cub.transform.position = pos;
- }
-
- root.AddComponent().Model = model;
- return root;
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/ComplexCuboidModel.cs b/Assets/DynamicModelling/Scripts/Models/ComplexCuboidModel.cs
deleted file mode 100644
index e13d599c..00000000
--- a/Assets/DynamicModelling/Scripts/Models/ComplexCuboidModel.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Models
-{
- ///
- /// Represents a complex model, based on cuboids.
- /// Each cuboid has a position relative to the model's origin.
- ///
- /// This class is basically a glorified list of tuples: (pos, cuboidmodel)
- ///
- [System.Serializable]
- public class ComplexCuboidModel : IModel
- {
-
- private List _positions = new List();
- private List _cuboids = new List();
-
- public ComplexCuboidModel(Vector3[] positions, CuboidModel[] models)
- {
- if (positions.Length != models.Length)
- {
- throw new ArgumentException("Must have equal amount of positions and cuboids");
- }
- _positions.AddRange(positions);
- _cuboids.AddRange(models);
- }
-
- public ComplexCuboidModel()
- {
-
- }
-
- public void Add(Vector3 position, CuboidModel cuboid)
- {
- _positions.Add(position);
- _cuboids.Add(cuboid);
- }
-
- public Vector3 GetPositionAt(int index)
- {
- return _positions[index];
- }
-
- public CuboidModel GetCuboidAt(int index)
- {
- return _cuboids[index];
- }
-
- public int Size()
- {
- return _positions.Count;
- }
-
- public bool IsEmpty()
- {
- return _cuboids.Count == 0;
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/CuboidModel.cs b/Assets/DynamicModelling/Scripts/Models/CuboidModel.cs
deleted file mode 100644
index bc0c7986..00000000
--- a/Assets/DynamicModelling/Scripts/Models/CuboidModel.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Models
-{
- ///
- /// Abstract cuboid representation.
- /// A cuboid consists of three parameters:
- /// Width, Height and Depth.
- /// In Unity3d these parameters are along the x, y and z axis.
- ///
- ///
- [System.Serializable]
- public class CuboidModel : IModel
- {
- ///
- /// The width of the cuboid (along the X axis) in standard units.
- ///
- public float Width;
- ///
- /// The height of the cuboid (along the Y axis) in standard units.
- ///
- public float Height;
- ///
- /// The depth of the cuboid (along the Z axis) in standard units.
- ///
- public float Depth;
- ///
- /// The cuboid's material, iff any.
- ///
- public Material Material;
-
- ///
- /// Creates a new cuboid based on its width, height and depth.
- /// Also optionally with a material
- ///
- /// The width of the cuboid in standard units. Width is along the x axis.
- /// The height of the cuboid in standard units. Height is along the y axis.
- /// The depth of the cuboid in standard units. Depth is along the z axis.
- /// The optional material of the cuboid. Otherwise it will be white
- public CuboidModel(float width, float height, float depth, Material material = null)
- {
- Width = width;
- Height = height;
- Depth = depth;
- Material = material;
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/CuboidRoomModel.cs b/Assets/DynamicModelling/Scripts/Models/CuboidRoomModel.cs
deleted file mode 100644
index 5a7e9194..00000000
--- a/Assets/DynamicModelling/Scripts/Models/CuboidRoomModel.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Models
-{
- [System.Serializable]
- public class CuboidRoomModel : IModel
- {
- public Vector3 Position;
- public float Size;
- public float Height;
-
- public Material FloorMaterial;
- public Material CeilingMaterial;
- public Material NorthMaterial;
- public Material EastMaterial;
- public Material SouthMaterial;
- public Material WestMaterial;
-
- public CuboidRoomModel(Vector3 position, float size, float height)
- {
- Position = position;
- Size = size;
- Height = height;
- }
-
- public CuboidRoomModel(Vector3 position, float size, float height, Material floorMaterial = null, Material ceilingMaterial = null, Material northMaterial = null, Material eastMaterial = null, Material southMaterial = null, Material westMaterial = null)
- {
- Position = position;
- Size = size;
- Height = height;
- FloorMaterial = floorMaterial;
- CeilingMaterial = ceilingMaterial;
- NorthMaterial = northMaterial;
- EastMaterial = eastMaterial;
- SouthMaterial = southMaterial;
- WestMaterial = westMaterial;
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/IModel.cs b/Assets/DynamicModelling/Scripts/Models/IModel.cs
deleted file mode 100644
index 8b7c31c4..00000000
--- a/Assets/DynamicModelling/Scripts/Models/IModel.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Unibas.DBIS.DynamicModelling.Models
-{
- public interface IModel
- {
-
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/PolygonRoomModel.cs b/Assets/DynamicModelling/Scripts/Models/PolygonRoomModel.cs
deleted file mode 100644
index e48e3398..00000000
--- a/Assets/DynamicModelling/Scripts/Models/PolygonRoomModel.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Models
-{
- [System.Serializable]
- public class PolygonRoomModel : IModel
- {
- public Vector3 Position;
- private List _walls;
- public Material FloorMaterial;
- public Material CeilingMaterial;
-
- public PolygonRoomModel(Vector3 position, List walls, Material floorMaterial, Material ceilingMaterial)
- {
- Position = position;
- _walls = walls;
- FloorMaterial = floorMaterial;
- CeilingMaterial = ceilingMaterial;
- }
-
- public WallModel[] GetWalls()
- {
- return _walls.ToArray();
- }
-
- public WallModel GetWallAt(int index)
- {
- return _walls[index];
- }
-
- public void Add(WallModel model)
- {
- _walls.Add(model);
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/WallModel.cs b/Assets/DynamicModelling/Scripts/Models/WallModel.cs
deleted file mode 100644
index 848a46ff..00000000
--- a/Assets/DynamicModelling/Scripts/Models/WallModel.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Models
-{
- [System.Serializable]
- public class WallModel: IModel
- {
- public Vector3 Start;
- public Vector3 End;
- public float Height;
- public Material Material;
-
- public WallModel(Vector3 start, Vector3 end, float height, Material material = null)
- {
- Start = start;
- End = end;
- Height = height;
- Material = material;
- }
-
- public WallModel(Vector3 position, float width, float height, Material material = null)
- {
- Start = position;
- End = position + Vector3.right * width;
- Height = height;
- Material = material;
- }
-
- public WallModel(float width, float height, Material material = null)
- {
- Start = Vector3.zero;
- End = Vector3.right * width;
- Height = height;
- Material = material;
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Objects/CuboidObject.cs b/Assets/DynamicModelling/Scripts/Objects/CuboidObject.cs
deleted file mode 100644
index dc0a83f1..00000000
--- a/Assets/DynamicModelling/Scripts/Objects/CuboidObject.cs
+++ /dev/null
@@ -1,216 +0,0 @@
-using System;
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Objects
-{
- ///
- /// Custom cuboid model.
- /// This model's size is actually the one specified, in unity units.
- /// In contrast, the vanilla unity cube object has to be resized, which this one doesn't, to get other shapes than a cube.
- ///
- /// Note The material is copied, so modifications on the material are not reflected at runtime.
- ///
- ///
- /// UV Mapping is based on the smallest dimension, e.g. depending on the texture, further adjustments are required.
- /// This can be achieved by accessing the MeshRenderer via GetComponent.
- ///
- /// If this object's dimensions are changed during runtime, the caller has to call GenerateModel() afterwards,
- /// to reflect the changes on the model.
- ///
- [RequireComponent(typeof(MeshRenderer), typeof(MeshFilter), typeof(BoxCollider))]
- public class CuboidObject : MonoBehaviour, IObject
- {
-
- ///
- /// Creates a cuboid object with the specified dimensions and an optional material parameter
- ///
- /// The width in unity units. Width is along the x axis.
- /// The height in unity units. Height is along the y axis.
- /// The depth in untiy units. Depth is along the z axis.
- /// A gameobject whose mesh and collider represent a cuboid with the specified dimensions.
- public static CuboidObject Create(float width, float height, float depth, Material material = null)
- {
- GameObject go = new GameObject("CuboidObject");
- var co = go.AddComponent();
- co.Width = width;
- co.Height = height;
- co.Depth = depth;
- co.Material = material;
- return co;
- }
-
- ///
- /// The width in unity units. Width is along the x axis.
- ///
- public float Width;
-
- ///
- /// The height in unity units. Height is along the y axis.
- ///
- public float Height;
- ///
- /// The depth in untiy units. Depth is along the z axis.
- ///
- public float Depth;
- ///
- /// The material to use for texturing this cuboid.
- /// Be aware that while drag'n'drop a material to this gameobject works in the scene view,
- /// it is not the same and this material will always override the one from the inspector.
- /// Use null if you want the default object material.
- ///
- public Material Material;
-
- private void OnValidate()
- {
- GenerateModel();
- }
-
- private void Start()
- {
- GenerateModel();
- }
-
- ///
- /// Generates the mesh based on the object's configuration
- ///
- public void GenerateModel()
- {
- MeshFilter meshFilter = GetComponent(); // No null value due to RequireComponent statements
- MeshRenderer meshRenderer = GetComponent();
- Mesh mesh = meshFilter.mesh;
-
- // The naming is always from the front and downwards looking! e.g. From the back, left and right is swapped
- Vector3 frontLeftDown = Vector3.zero;
- Vector3 frontRightDown = new Vector3(Width, 0, 0);
- Vector3 frontLeftUp = new Vector3(0, Height, 0);
- Vector3 frontRightUp = new Vector3(Width, Height, 0);
-
- Vector3 backLeftDown = new Vector3(0, 0, Depth);
- Vector3 backRightDown = new Vector3(Width, 0, Depth);
- Vector3 backLeftUp = new Vector3(0, Height, Depth);
- Vector3 backRightUp = new Vector3(Width, Height, Depth);
-
- Vector3[] vertices = new[]
- {
- // Front
- frontLeftDown, frontRightDown, frontLeftUp, frontRightUp,
- // Back
- backLeftDown, backRightDown, backLeftUp, backRightUp,
- // Left
- backLeftDown, frontLeftDown, backLeftUp, frontLeftUp,
- // Right
- frontRightDown, backRightDown, frontRightUp, backRightUp,
- // Up
- frontLeftUp, frontRightUp, backLeftUp, backRightUp,
- // Down
- frontLeftDown, frontRightDown, backLeftDown, backRightDown
- };
- mesh.vertices = vertices;
-
- int[] triangles = new[]
- {
- // Front
- 0, 2, 1, 2, 3, 1,
- // Back
- 5, 7, 4, 7, 6, 4,
- // Left
- 8, 10, 9, 10, 11, 9,
- // Right
- 12, 14, 13, 14, 15, 13,
- // Up
- 16, 18, 17, 18, 19, 17,
- // Down
- 21, 23, 20, 23, 22, 20
- };
- mesh.triangles = triangles;
-
- Vector3[] normals = new[]
- {
- // Front
- -Vector3.forward, -Vector3.forward, -Vector3.forward, -Vector3.forward,
- // Back
- -Vector3.back, -Vector3.back, -Vector3.back, -Vector3.back,
- // Left
- -Vector3.left, -Vector3.left, -Vector3.left, -Vector3.left,
- // Right
- -Vector3.right, -Vector3.right, -Vector3.right, -Vector3.right,
- // Up
- -Vector3.up, -Vector3.up, -Vector3.up, -Vector3.up,
- // Down
- -Vector3.down, -Vector3.down, -Vector3.down, -Vector3.down
- };
- mesh.normals = normals;
-
-
- /*
- * Unwrapping of mesh for uf like following
- * U
- * LFRB
- * D
- */
-
- var u = Math.Min(Math.Min(Width, Height), Depth);
- var w = Width / u;
- var h = Height / u;
- var d = Depth / u;
-
- Vector2 uvUnits = new Vector2(u,u);
- var fOff = uvUnits.x * Depth;
- var rOff = uvUnits.x * Width + fOff;
- var bOff = uvUnits.x * Depth + rOff;
- var uOff = uvUnits.y * Depth + uvUnits.y * Height;
- Vector2[] uv = new[]
- {
- // Front
- new Vector2(fOff, uvUnits.y * Depth), new Vector2(fOff + uvUnits.x * Width, uvUnits.y * Depth),
- new Vector2(fOff, uvUnits.y * Depth + uvUnits.y * Height),
- new Vector2(fOff + uvUnits.x * Width, uvUnits.y * Depth + uvUnits.y * Height),
-
- // Back
- new Vector2(bOff, uvUnits.y * Depth), new Vector2(bOff + uvUnits.x * Width, uvUnits.y * Depth),
- new Vector2(bOff, uvUnits.y * Depth + uvUnits.y * Height),
- new Vector2(bOff + uvUnits.x * Width, uvUnits.y * Depth + uvUnits.y * Height),
-
- // Left
- new Vector2(0, uvUnits.y * Depth), new Vector2(uvUnits.x * Depth, uvUnits.y * Depth),
- new Vector2(0, uvUnits.y * Depth + uvUnits.y * Height),
- new Vector2(uvUnits.x * Depth, uvUnits.y * Depth + uvUnits.y * Height),
- // Right
- new Vector2(rOff, uvUnits.y * Depth), new Vector2(rOff + uvUnits.x * Depth, uvUnits.y * Depth),
- new Vector2(rOff, uvUnits.y * Depth + uvUnits.y * Height),
- new Vector2(rOff + uvUnits.x * Depth, uvUnits.y * Depth + uvUnits.y * Height),
- // Up
- new Vector2(fOff, uOff), new Vector2(fOff + uvUnits.x * Width, uOff),
- new Vector2(fOff, uOff + uvUnits.y * Depth),
- new Vector2(fOff + uvUnits.x * Width, uOff + uvUnits.y * Depth),
-
- // Down
- new Vector2(fOff, 0), new Vector2(fOff + uvUnits.x * Width, 0), new Vector2(fOff, uvUnits.y * Depth),
- new Vector2(fOff + uvUnits.x * Width, uvUnits.y * Depth)
- };
-
- mesh.uv = uv;
-
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.RecalculateTangents();
-
- if (Material == null)
- {
- meshRenderer.material = new Material(Shader.Find("Standard"));
- meshRenderer.material.name = "Default";
- meshRenderer.material.color = Color.green;
-
- }
- else
- {
- meshRenderer.material.CopyPropertiesFromMaterial(Material);
- meshRenderer.material.name = Material.name + " (Copy)";
- }
-
- var col = GetComponent();
- col.center = new Vector3(Width/2, Height/2, Depth/2);
- col.size = new Vector3(Width,Height,Depth);
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Objects/IObject.cs b/Assets/DynamicModelling/Scripts/Objects/IObject.cs
deleted file mode 100644
index c3d80fef..00000000
--- a/Assets/DynamicModelling/Scripts/Objects/IObject.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using UnityEngine;
-
-namespace Unibas.DBIS.DynamicModelling.Objects
-{
-
- // TODO Rename to something with model, maybe even abstract class instead of interface
-
- public interface IObject
- {
- void GenerateModel();
- }
-}
\ No newline at end of file
diff --git a/Assets/New UXML.uxml b/Assets/New UXML.uxml
deleted file mode 100644
index 271d109a..00000000
--- a/Assets/New UXML.uxml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/Assets/New UXML.uxml.meta b/Assets/New UXML.uxml.meta
deleted file mode 100644
index 7aa3f8a1..00000000
--- a/Assets/New UXML.uxml.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 59ba6b4102d77cd4780cf57e17eb0ece
-ScriptedImporter:
- fileIDToRecycleName:
- 11400000: tree
- 11400002: inlineStyle
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
- script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Assets/Plugins/Editor/JetBrains.meta b/Assets/Plugins/Editor/JetBrains.meta
deleted file mode 100644
index ef029ee7..00000000
--- a/Assets/Plugins/Editor/JetBrains.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: 4761ebe6b6522b249bf7b91988981414
-folderAsset: yes
-timeCreated: 1540415111
-licenseType: Free
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll b/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll
deleted file mode 100644
index 76c68b08..00000000
Binary files a/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll and /dev/null differ
diff --git a/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta b/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta
deleted file mode 100644
index 98b00b74..00000000
--- a/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta
+++ /dev/null
@@ -1,32 +0,0 @@
-fileFormatVersion: 2
-guid: a4cb1cface6b82041ad27e603bfddb66
-timeCreated: 1540543436
-licenseType: Free
-PluginImporter:
- externalObjects: {}
- serializedVersion: 2
- iconMap: {}
- executionOrder: {}
- isPreloaded: 0
- isOverridable: 0
- platformData:
- - first:
- Any:
- second:
- enabled: 0
- settings: {}
- - first:
- Editor: Editor
- second:
- enabled: 1
- settings:
- DefaultValueInitialized: true
- - first:
- Windows Store Apps: WindowsStoreApps
- second:
- enabled: 0
- settings:
- CPU: AnyCPU
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Prefab/Displayal.prefab b/Assets/Prefab/Displayal.prefab
deleted file mode 100644
index 61937aa8..00000000
--- a/Assets/Prefab/Displayal.prefab
+++ /dev/null
@@ -1,780 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1001 &100100000
-Prefab:
- m_ObjectHideFlags: 1
- serializedVersion: 2
- m_Modification:
- m_TransformParent: {fileID: 0}
- m_Modifications: []
- m_RemovedComponents: []
- m_ParentPrefab: {fileID: 0}
- m_RootGameObject: {fileID: 1723144634915134}
- m_IsPrefabParent: 1
---- !u!1 &1252948249754226
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224060020141320070}
- - component: {fileID: 222459678687191998}
- - component: {fileID: 114302990138164502}
- m_Layer: 5
- m_Name: TitlePlaquette
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1353986276004208
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224446323252090680}
- - component: {fileID: 223117270479298574}
- - component: {fileID: 114759047581987320}
- - component: {fileID: 114100792534263084}
- - component: {fileID: 114787337458666904}
- m_Layer: 5
- m_Name: TitlePlaquette
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1637201265278576
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4109601935991362}
- - component: {fileID: 108825092587025252}
- m_Layer: 0
- m_Name: Directional light
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1708492548645724
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224144878835216254}
- - component: {fileID: 223213355586316726}
- - component: {fileID: 114865178109114850}
- - component: {fileID: 114521434601030862}
- - component: {fileID: 114145872248263022}
- m_Layer: 5
- m_Name: DescriptionPlaquette
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1713165086033716
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4991959776836746}
- - component: {fileID: 33838697945103052}
- - component: {fileID: 64643193177418190}
- - component: {fileID: 23721829456853052}
- m_Layer: 0
- m_Name: Plane
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1723144634915134
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4386545470508082}
- - component: {fileID: 114394835898518556}
- m_Layer: 0
- m_Name: Displayal
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1751713187549858
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224733523696523440}
- - component: {fileID: 222687117963447242}
- - component: {fileID: 114050182069843912}
- m_Layer: 5
- m_Name: TitleText
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1786497188386454
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224100897550168486}
- - component: {fileID: 222576530714016308}
- - component: {fileID: 114420626376548140}
- m_Layer: 5
- m_Name: TitleText
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1924922032731184
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224201423252828788}
- - component: {fileID: 222348370431411672}
- - component: {fileID: 114880238729083600}
- m_Layer: 5
- m_Name: TitlePlaquette
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1987613213182048
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4977662649216140}
- - component: {fileID: 33873630901453308}
- - component: {fileID: 23980293081860978}
- m_Layer: 0
- m_Name: Frame
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &4109601935991362
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1637201265278576}
- m_LocalRotation: {x: 0, y: 0, z: 0.6427876, w: 0.7660445}
- m_LocalPosition: {x: 0, y: 1, z: -9.83}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 4386545470508082}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 80}
---- !u!4 &4386545470508082
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1723144634915134}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 4991959776836746}
- - {fileID: 4977662649216140}
- - {fileID: 4109601935991362}
- - {fileID: 224446323252090680}
- - {fileID: 224144878835216254}
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &4977662649216140
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1987613213182048}
- m_LocalRotation: {x: -0, y: -0.38268346, z: -0, w: 0.9238795}
- m_LocalPosition: {x: 0, y: -0.7, z: 0}
- m_LocalScale: {x: 0.11, y: 0.04, z: 0.11}
- m_Children: []
- m_Father: {fileID: 4386545470508082}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &4991959776836746
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1713165086033716}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: -0.7, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 4386545470508082}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!23 &23721829456853052
-MeshRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1713165086033716}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_Materials:
- - {fileID: 2100000, guid: 872c918e12b121d4b9e71fea0604e4ab, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 1
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
---- !u!23 &23980293081860978
-MeshRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1987613213182048}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_Materials:
- - {fileID: 2100000, guid: b24e1b8be8c33ab4695e0dbc2fd4dc36, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
---- !u!33 &33838697945103052
-MeshFilter:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1713165086033716}
- m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!33 &33873630901453308
-MeshFilter:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1987613213182048}
- m_Mesh: {fileID: 4300006, guid: 0743c68fcf30c4bdea39c4b9fe19f8a5, type: 3}
---- !u!64 &64643193177418190
-MeshCollider:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1713165086033716}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 3
- m_Convex: 0
- m_CookingOptions: 14
- m_SkinWidth: 0.01
- m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!108 &108825092587025252
-Light:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1637201265278576}
- m_Enabled: 1
- serializedVersion: 8
- m_Type: 0
- m_Color: {r: 1, g: 0.85490197, b: 0.62352943, a: 1}
- m_Intensity: 1.2
- m_Range: 30
- m_SpotAngle: 70
- m_CookieSize: 10
- m_Shadows:
- m_Type: 2
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 0.3
- m_Bias: 0
- m_NormalBias: 3
- m_NearPlane: 0.2
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_Lightmapping: 4
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 0.1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_ShadowRadius: 0
- m_ShadowAngle: 0
---- !u!114 &114050182069843912
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1751713187549858}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
- m_FontData:
- m_Font: {fileID: 12800000, guid: 36e3ff808c4d44a408eb07452a39988b, type: 3}
- m_FontSize: 14
- m_FontStyle: 0
- m_BestFit: 1
- m_MinSize: 10
- m_MaxSize: 30
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text:
---- !u!114 &114100792534263084
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1353986276004208}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreReversedGraphics: 1
- m_BlockingObjects: 0
- m_BlockingMask:
- serializedVersion: 2
- m_Bits: 4294967295
---- !u!114 &114145872248263022
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1708492548645724}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8dd3ad628df0c254eb0e0cdc0828164b, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- text: {fileID: 114050182069843912}
- font: {fileID: 0}
---- !u!114 &114302990138164502
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1252948249754226}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 2100000, guid: 2067f760c18509c4693e2190b898fe2a, type: 2}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
- m_Texture: {fileID: 0}
- m_UVRect:
- serializedVersion: 2
- x: 0
- y: 0
- width: 1
- height: 1
---- !u!114 &114394835898518556
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1723144634915134}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 6af774a6990477e44be69639f4b78147, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!114 &114420626376548140
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1786497188386454}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0, g: 0, b: 0, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
- m_FontData:
- m_Font: {fileID: 12800000, guid: 4cca38632e100ce4ab77e777934f592f, type: 3}
- m_FontSize: 14
- m_FontStyle: 0
- m_BestFit: 1
- m_MinSize: 10
- m_MaxSize: 30
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text:
---- !u!114 &114521434601030862
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1708492548645724}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreReversedGraphics: 1
- m_BlockingObjects: 0
- m_BlockingMask:
- serializedVersion: 2
- m_Bits: 4294967295
---- !u!114 &114759047581987320
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1353986276004208}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_UiScaleMode: 0
- m_ReferencePixelsPerUnit: 50
- m_ScaleFactor: 1
- m_ReferenceResolution: {x: 800, y: 600}
- m_ScreenMatchMode: 0
- m_MatchWidthOrHeight: 0
- m_PhysicalUnit: 3
- m_FallbackScreenDPI: 96
- m_DefaultSpriteDPI: 96
- m_DynamicPixelsPerUnit: 2
---- !u!114 &114787337458666904
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1353986276004208}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8dd3ad628df0c254eb0e0cdc0828164b, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- text: {fileID: 114420626376548140}
- font: {fileID: 0}
---- !u!114 &114865178109114850
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1708492548645724}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_UiScaleMode: 0
- m_ReferencePixelsPerUnit: 50
- m_ScaleFactor: 1
- m_ReferenceResolution: {x: 800, y: 600}
- m_ScreenMatchMode: 0
- m_MatchWidthOrHeight: 0
- m_PhysicalUnit: 3
- m_FallbackScreenDPI: 96
- m_DefaultSpriteDPI: 96
- m_DynamicPixelsPerUnit: 2
---- !u!114 &114880238729083600
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1924922032731184}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 2100000, guid: 190ae71093c17bb4682fd48babadaa4c, type: 2}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
- m_Texture: {fileID: 0}
- m_UVRect:
- serializedVersion: 2
- x: 0
- y: 0
- width: 1
- height: 1
---- !u!222 &222348370431411672
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1924922032731184}
---- !u!222 &222459678687191998
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1252948249754226}
---- !u!222 &222576530714016308
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1786497188386454}
---- !u!222 &222687117963447242
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1751713187549858}
---- !u!223 &223117270479298574
-Canvas:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1353986276004208}
- m_Enabled: 1
- serializedVersion: 3
- m_RenderMode: 2
- m_Camera: {fileID: 0}
- m_PlaneDistance: 100
- m_PixelPerfect: 0
- m_ReceivesEvents: 1
- m_OverrideSorting: 0
- m_OverridePixelPerfect: 0
- m_SortingBucketNormalizedSize: 0
- m_AdditionalShaderChannelsFlag: 0
- m_SortingLayerID: 0
- m_SortingOrder: 0
- m_TargetDisplay: 0
---- !u!223 &223213355586316726
-Canvas:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1708492548645724}
- m_Enabled: 1
- serializedVersion: 3
- m_RenderMode: 2
- m_Camera: {fileID: 0}
- m_PlaneDistance: 100
- m_PixelPerfect: 0
- m_ReceivesEvents: 1
- m_OverrideSorting: 0
- m_OverridePixelPerfect: 0
- m_SortingBucketNormalizedSize: 0
- m_AdditionalShaderChannelsFlag: 0
- m_SortingLayerID: 0
- m_SortingOrder: 0
- m_TargetDisplay: 0
---- !u!224 &224060020141320070
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1252948249754226}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224446323252090680}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224100897550168486
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1786497188386454}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -0.1}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224446323252090680}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.1, y: 0.1}
- m_AnchorMax: {x: 0.9, y: 0.9}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 60, y: 16}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224144878835216254
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1708492548645724}
- m_LocalRotation: {x: -0, y: 0.7071068, z: -0.7071068, w: 0}
- m_LocalPosition: {x: 0, y: 0, z: 4.81}
- m_LocalScale: {x: 0.010000011, y: 0.0100000035, z: 0.10000005}
- m_Children:
- - {fileID: 224201423252828788}
- - {fileID: 224733523696523440}
- m_Father: {fileID: 4386545470508082}
- m_RootOrder: 4
- m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: -7.44, y: -0.65}
- m_SizeDelta: {x: 300, y: 200}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224201423252828788
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1924922032731184}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224144878835216254}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224446323252090680
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1353986276004208}
- m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
- m_LocalPosition: {x: 0, y: 0, z: 5.39}
- m_LocalScale: {x: 0.01, y: 0.01, z: 0.1}
- m_Children:
- - {fileID: 224060020141320070}
- - {fileID: 224100897550168486}
- m_Father: {fileID: 4386545470508082}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: -0.547}
- m_SizeDelta: {x: 300, y: 60}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224733523696523440
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1751713187549858}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -0.1}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224144878835216254}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.1, y: 0.1}
- m_AnchorMax: {x: 0.9, y: 0.9}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 60, y: 40}
- m_Pivot: {x: 0.5, y: 0.5}
diff --git a/Assets/Prefab/Displayal.prefab.meta b/Assets/Prefab/Displayal.prefab.meta
deleted file mode 100644
index baa4161e..00000000
--- a/Assets/Prefab/Displayal.prefab.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: 693ba3952c1874807ad3166efd424e58
-timeCreated: 1540658633
-licenseType: Free
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Resources/BillingMode.json b/Assets/Resources/BillingMode.json
new file mode 100644
index 00000000..6f4bfb71
--- /dev/null
+++ b/Assets/Resources/BillingMode.json
@@ -0,0 +1 @@
+{"androidStore":"GooglePlay"}
\ No newline at end of file
diff --git a/Assets/Resources/BillingMode.json.meta b/Assets/Resources/BillingMode.json.meta
new file mode 100644
index 00000000..9a67caa7
--- /dev/null
+++ b/Assets/Resources/BillingMode.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 47dccf757d3a2fa48a8714308c052997
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.c4d b/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.c4d
deleted file mode 100644
index 70065d96..00000000
Binary files a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.c4d and /dev/null differ
diff --git a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.3ds b/Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.3ds
similarity index 100%
rename from Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.3ds
rename to Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.3ds
diff --git a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.3ds.meta b/Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.3ds.meta
similarity index 95%
rename from Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.3ds.meta
rename to Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.3ds.meta
index 3b38b965..a0672413 100644
--- a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.3ds.meta
+++ b/Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.3ds.meta
@@ -1,115 +1,115 @@
-fileFormatVersion: 2
-guid: 0743c68fcf30c4bdea39c4b9fe19f8a5
-ModelImporter:
- serializedVersion: 22
- fileIDToRecycleName:
- 100000: Bild
- 100002: //RootNode
- 100004: Glas
- 100006: Licht
- 100008: R_ckseite
- 100010: Ramen
- 100012: Sonne
- 400000: Bild
- 400002: //RootNode
- 400004: Glas
- 400006: Licht
- 400008: R_ckseite
- 400010: Ramen
- 400012: Sonne
- 2100000: R_ckseite
- 2100002: Glas
- 2100004: Bild
- 2100006: Rahmen
- 2300000: Bild
- 2300002: Glas
- 2300004: R_ckseite
- 2300006: Ramen
- 3300000: Bild
- 3300002: Glas
- 3300004: R_ckseite
- 3300006: Ramen
- 4300000: R_ckseite
- 4300002: Glas
- 4300004: Bild
- 4300006: Ramen
- externalObjects: {}
- materials:
- importMaterials: 1
- materialName: 0
- materialSearch: 1
- materialLocation: 1
- animations:
- legacyGenerateAnimations: 4
- bakeSimulation: 0
- resampleCurves: 1
- optimizeGameObjects: 0
- motionNodeName:
- rigImportErrors:
- rigImportWarnings:
- animationImportErrors:
- animationImportWarnings:
- animationRetargetingWarnings:
- animationDoRetargetingWarnings: 0
- importAnimatedCustomProperties: 0
- animationCompression: 1
- animationRotationError: 0.5
- animationPositionError: 0.5
- animationScaleError: 0.5
- animationWrapMode: 0
- extraExposedTransformPaths: []
- extraUserProperties: []
- clipAnimations: []
- isReadable: 1
- meshes:
- lODScreenPercentages: []
- globalScale: 1
- meshCompression: 0
- addColliders: 0
- importVisibility: 1
- importBlendShapes: 1
- importCameras: 1
- importLights: 1
- swapUVChannels: 0
- generateSecondaryUV: 0
- useFileUnits: 1
- optimizeMeshForGPU: 1
- keepQuads: 0
- weldVertices: 1
- preserveHierarchy: 0
- indexFormat: 0
- secondaryUVAngleDistortion: 8
- secondaryUVAreaDistortion: 15.000001
- secondaryUVHardAngle: 88
- secondaryUVPackMargin: 4
- useFileScale: 1
- tangentSpace:
- normalSmoothAngle: 60
- normalImportMode: 0
- tangentImportMode: 3
- normalCalculationMode: 4
- importAnimation: 1
- copyAvatar: 0
- humanDescription:
- serializedVersion: 2
- human: []
- skeleton: []
- armTwist: 0.5
- foreArmTwist: 0.5
- upperLegTwist: 0.5
- legTwist: 0.5
- armStretch: 0.05
- legStretch: 0.05
- feetSpacing: 0
- rootMotionBoneName:
- rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
- hasTranslationDoF: 0
- hasExtraRoot: 0
- skeletonHasParents: 1
- lastHumanDescriptionAvatarSource: {instanceID: 0}
- animationType: 0
- humanoidOversampling: 1
- additionalBone: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+fileFormatVersion: 2
+guid: 0743c68fcf30c4bdea39c4b9fe19f8a5
+ModelImporter:
+ serializedVersion: 22
+ fileIDToRecycleName:
+ 100000: Bild
+ 100002: //RootNode
+ 100004: Glas
+ 100006: Licht
+ 100008: R_ckseite
+ 100010: Ramen
+ 100012: Sonne
+ 400000: Bild
+ 400002: //RootNode
+ 400004: Glas
+ 400006: Licht
+ 400008: R_ckseite
+ 400010: Ramen
+ 400012: Sonne
+ 2100000: R_ckseite
+ 2100002: Glas
+ 2100004: Bild
+ 2100006: Rahmen
+ 2300000: Bild
+ 2300002: Glas
+ 2300004: R_ckseite
+ 2300006: Ramen
+ 3300000: Bild
+ 3300002: Glas
+ 3300004: R_ckseite
+ 3300006: Ramen
+ 4300000: R_ckseite
+ 4300002: Glas
+ 4300004: Bild
+ 4300006: Ramen
+ externalObjects: {}
+ materials:
+ importMaterials: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ optimizeMeshForGPU: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ serializedVersion: 2
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ rootMotionBoneName:
+ rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 0
+ humanoidOversampling: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.fbx b/Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.fbx
similarity index 100%
rename from Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.fbx
rename to Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.fbx
diff --git a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.fbx.meta b/Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.fbx.meta
similarity index 95%
rename from Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.fbx.meta
rename to Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.fbx.meta
index f2cd4e93..7751ec58 100644
--- a/Assets/Resources/Objects/ImageWithFrame/Bild mir Rahmen.fbx.meta
+++ b/Assets/Resources/Objects/ImageWithFrame/Bild mit Rahmen.fbx.meta
@@ -1,118 +1,118 @@
-fileFormatVersion: 2
-guid: 38d7cdab0d1114da595b1a26bea5847c
-ModelImporter:
- serializedVersion: 22
- fileIDToRecycleName:
- 100000: Bild
- 100002: //RootNode
- 100004: Glas
- 100006: Licht
- 100008: Ramen
- 100010: "R\xFCckseite"
- 100012: Sonne
- 400000: Bild
- 400002: //RootNode
- 400004: Glas
- 400006: Licht
- 400008: Ramen
- 400010: "R\xFCckseite"
- 400012: Sonne
- 2100000: "R\xFCckseite"
- 2100002: Glas
- 2100004: Bild
- 2100006: Rahmen
- 2300000: Bild
- 2300002: Glas
- 2300004: Ramen
- 2300006: "R\xFCckseite"
- 3300000: Bild
- 3300002: Glas
- 3300004: Ramen
- 3300006: "R\xFCckseite"
- 4300000: "R\xFCckseite"
- 4300002: Glas
- 4300004: Bild
- 4300006: Ramen
- 9500000: //RootNode
- 10800000: Licht
- 10800002: Sonne
- externalObjects: {}
- materials:
- importMaterials: 1
- materialName: 0
- materialSearch: 1
- materialLocation: 1
- animations:
- legacyGenerateAnimations: 4
- bakeSimulation: 0
- resampleCurves: 1
- optimizeGameObjects: 0
- motionNodeName:
- rigImportErrors:
- rigImportWarnings:
- animationImportErrors:
- animationImportWarnings:
- animationRetargetingWarnings:
- animationDoRetargetingWarnings: 0
- importAnimatedCustomProperties: 0
- animationCompression: 1
- animationRotationError: 0.5
- animationPositionError: 0.5
- animationScaleError: 0.5
- animationWrapMode: 0
- extraExposedTransformPaths: []
- extraUserProperties: []
- clipAnimations: []
- isReadable: 1
- meshes:
- lODScreenPercentages: []
- globalScale: 1
- meshCompression: 0
- addColliders: 0
- importVisibility: 1
- importBlendShapes: 1
- importCameras: 1
- importLights: 1
- swapUVChannels: 0
- generateSecondaryUV: 0
- useFileUnits: 1
- optimizeMeshForGPU: 1
- keepQuads: 0
- weldVertices: 1
- preserveHierarchy: 0
- indexFormat: 0
- secondaryUVAngleDistortion: 8
- secondaryUVAreaDistortion: 15.000001
- secondaryUVHardAngle: 88
- secondaryUVPackMargin: 4
- useFileScale: 1
- tangentSpace:
- normalSmoothAngle: 60
- normalImportMode: 0
- tangentImportMode: 3
- normalCalculationMode: 4
- importAnimation: 1
- copyAvatar: 0
- humanDescription:
- serializedVersion: 2
- human: []
- skeleton: []
- armTwist: 0.5
- foreArmTwist: 0.5
- upperLegTwist: 0.5
- legTwist: 0.5
- armStretch: 0.05
- legStretch: 0.05
- feetSpacing: 0
- rootMotionBoneName:
- rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
- hasTranslationDoF: 0
- hasExtraRoot: 0
- skeletonHasParents: 1
- lastHumanDescriptionAvatarSource: {instanceID: 0}
- animationType: 2
- humanoidOversampling: 1
- additionalBone: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+fileFormatVersion: 2
+guid: 38d7cdab0d1114da595b1a26bea5847c
+ModelImporter:
+ serializedVersion: 22
+ fileIDToRecycleName:
+ 100000: Bild
+ 100002: //RootNode
+ 100004: Glas
+ 100006: Licht
+ 100008: Ramen
+ 100010: "R\xFCckseite"
+ 100012: Sonne
+ 400000: Bild
+ 400002: //RootNode
+ 400004: Glas
+ 400006: Licht
+ 400008: Ramen
+ 400010: "R\xFCckseite"
+ 400012: Sonne
+ 2100000: "R\xFCckseite"
+ 2100002: Glas
+ 2100004: Bild
+ 2100006: Rahmen
+ 2300000: Bild
+ 2300002: Glas
+ 2300004: Ramen
+ 2300006: "R\xFCckseite"
+ 3300000: Bild
+ 3300002: Glas
+ 3300004: Ramen
+ 3300006: "R\xFCckseite"
+ 4300000: "R\xFCckseite"
+ 4300002: Glas
+ 4300004: Bild
+ 4300006: Ramen
+ 9500000: //RootNode
+ 10800000: Licht
+ 10800002: Sonne
+ externalObjects: {}
+ materials:
+ importMaterials: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ optimizeMeshForGPU: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ serializedVersion: 2
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ rootMotionBoneName:
+ rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 2
+ humanoidOversampling: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Prefabs/Displayal.prefab b/Assets/Resources/Prefabs/Displayal.prefab
index 5ee28702..e4fc8b2b 100644
--- a/Assets/Resources/Prefabs/Displayal.prefab
+++ b/Assets/Resources/Prefabs/Displayal.prefab
@@ -1,44 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!1001 &100100000
-Prefab:
- m_ObjectHideFlags: 1
- serializedVersion: 2
- m_Modification:
- m_TransformParent: {fileID: 0}
- m_Modifications: []
- m_RemovedComponents: []
- m_ParentPrefab: {fileID: 0}
- m_RootGameObject: {fileID: 1302269862261132}
- m_IsPrefabParent: 1
---- !u!1 &1033257218762798
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4831132150147046}
- - component: {fileID: 108402919408155458}
- m_Layer: 0
- m_Name: Directional light
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1146698127220840
+--- !u!1 &1252948249754226
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- - component: {fileID: 224898500349374658}
- - component: {fileID: 223838394677348898}
- - component: {fileID: 114416688181433732}
- - component: {fileID: 114593354878245856}
- - component: {fileID: 114035755260652190}
+ - component: {fileID: 224060020141320070}
+ - component: {fileID: 222459678687191998}
+ - component: {fileID: 114302990138164502}
m_Layer: 5
m_Name: TitlePlaquette
m_TagString: Untagged
@@ -46,16 +18,73 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!1 &1279493164949892
+--- !u!224 &224060020141320070
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1252948249754226}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 224446323252090680}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &222459678687191998
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1252948249754226}
+ m_CullTransparentMesh: 1
+--- !u!114 &114302990138164502
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1252948249754226}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: 2067f760c18509c4693e2190b898fe2a, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Texture: {fileID: 0}
+ m_UVRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+--- !u!1 &1353986276004208
GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- - component: {fileID: 224982644317131656}
- - component: {fileID: 222416832003772490}
- - component: {fileID: 114420308021494582}
+ - component: {fileID: 224446323252090680}
+ - component: {fileID: 223117270479298574}
+ - component: {fileID: 114759047581987320}
+ - component: {fileID: 114100792534263084}
+ - component: {fileID: 114787337458666904}
m_Layer: 5
m_Name: TitlePlaquette
m_TagString: Untagged
@@ -63,105 +92,208 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!1 &1302269862261132
-GameObject:
+--- !u!224 &224446323252090680
+RectTransform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4894471851820578}
- - component: {fileID: 114686576913915960}
- - component: {fileID: 65518658933749486}
- m_Layer: 0
- m_Name: Displayal
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1495570396300978
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224688668321344266}
- - component: {fileID: 222153847815872102}
- - component: {fileID: 114783901546005428}
- m_Layer: 5
- m_Name: TitleText
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1550338680515270
-GameObject:
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1353986276004208}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 5.39}
+ m_LocalScale: {x: 0.01, y: 0.01, z: 0.1}
+ m_Children:
+ - {fileID: 224060020141320070}
+ - {fileID: 224100897550168486}
+ m_Father: {fileID: 4386545470508082}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: -0.547}
+ m_SizeDelta: {x: 300, y: 60}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &223117270479298574
+Canvas:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 4716170255960452}
- - component: {fileID: 33772642790513284}
- - component: {fileID: 64305755207969996}
- - component: {fileID: 23951493507061592}
- m_Layer: 0
- m_Name: Plane
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1636588304056794
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224071902039454216}
- - component: {fileID: 222259669601946956}
- - component: {fileID: 114545915762722286}
- m_Layer: 5
- m_Name: TitleText
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1692291792904570
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1353986276004208}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!114 &114759047581987320
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1353986276004208}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 50
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 2
+ m_PresetInfoIsWorld: 1
+--- !u!114 &114100792534263084
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1353986276004208}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &114787337458666904
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1353986276004208}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8dd3ad628df0c254eb0e0cdc0828164b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ text: {fileID: 114420626376548140}
+ font: {fileID: 0}
+--- !u!1 &1637201265278576
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- - component: {fileID: 4573243634688148}
- - component: {fileID: 33389533994231516}
- - component: {fileID: 64282388066525410}
- - component: {fileID: 23624711814364798}
+ - component: {fileID: 4109601935991362}
+ - component: {fileID: 108825092587025252}
m_Layer: 0
- m_Name: Back
+ m_Name: Directional light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!1 &1692428713872368
+--- !u!4 &4109601935991362
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1637201265278576}
+ m_LocalRotation: {x: 0, y: 0, z: 0.6427876, w: 0.7660445}
+ m_LocalPosition: {x: 0, y: 1, z: -9.83}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4386545470508082}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 80}
+--- !u!108 &108825092587025252
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1637201265278576}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 0
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.85490197, b: 0.62352943, a: 1}
+ m_Intensity: 1.2
+ m_Range: 30
+ m_SpotAngle: 70
+ m_InnerSpotAngle: 53.42987
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 0.3
+ m_Bias: 0
+ m_NormalBias: 3
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 0.1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!1 &1708492548645724
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- - component: {fileID: 224747469537501470}
- - component: {fileID: 223083162367953570}
- - component: {fileID: 114708901558555258}
- - component: {fileID: 114866101839128518}
- - component: {fileID: 114044222523643888}
+ - component: {fileID: 224144878835216254}
+ - component: {fileID: 223213355586316726}
+ - component: {fileID: 114865178109114850}
+ - component: {fileID: 114521434601030862}
+ - component: {fileID: 114145872248263022}
m_Layer: 5
m_Name: DescriptionPlaquette
m_TagString: Untagged
@@ -169,185 +301,149 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!1 &1895752110289046
+--- !u!224 &224144878835216254
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708492548645724}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0.7071068, w: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 4.81}
+ m_LocalScale: {x: 0.010000011, y: 0.0100000035, z: 0.10000005}
+ m_Children:
+ - {fileID: 224201423252828788}
+ - {fileID: 224733523696523440}
+ m_Father: {fileID: 4386545470508082}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: -7.44, y: -0.65}
+ m_SizeDelta: {x: 300, y: 200}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &223213355586316726
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708492548645724}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!114 &114865178109114850
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708492548645724}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 50
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 2
+ m_PresetInfoIsWorld: 1
+--- !u!114 &114521434601030862
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708492548645724}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &114145872248263022
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708492548645724}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8dd3ad628df0c254eb0e0cdc0828164b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ text: {fileID: 114050182069843912}
+ font: {fileID: 0}
+--- !u!1 &1713165086033716
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- - component: {fileID: 4346963726472754}
- - component: {fileID: 33165122712933374}
- - component: {fileID: 23107304942307554}
+ - component: {fileID: 4991959776836746}
+ - component: {fileID: 33838697945103052}
+ - component: {fileID: 23721829456853052}
m_Layer: 0
- m_Name: Frame
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!1 &1952636572763874
-GameObject:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 224701556999131010}
- - component: {fileID: 222469059213100282}
- - component: {fileID: 114830972437805028}
- m_Layer: 5
- m_Name: TitlePlaquette
+ m_Name: Plane
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!4 &4346963726472754
+--- !u!4 &4991959776836746
Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1895752110289046}
- m_LocalRotation: {x: -0, y: -0.38268346, z: -0, w: 0.9238795}
- m_LocalPosition: {x: 0, y: -0.7, z: 0}
- m_LocalScale: {x: 0.11, y: 0.04, z: 0.11}
- m_Children: []
- m_Father: {fileID: 4894471851820578}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &4573243634688148
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692291792904570}
- m_LocalRotation: {x: 0, y: 0, z: 1, w: 0}
- m_LocalPosition: {x: 0, y: -0.7, z: -0.1}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 4894471851820578}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
---- !u!4 &4716170255960452
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1550338680515270}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1713165086033716}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.7, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
- m_Father: {fileID: 4894471851820578}
+ m_Father: {fileID: 4386545470508082}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &4831132150147046
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1033257218762798}
- m_LocalRotation: {x: 0, y: 0, z: 0.6427876, w: 0.7660445}
- m_LocalPosition: {x: 0, y: 1, z: -9.83}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 4894471851820578}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 80}
---- !u!4 &4894471851820578
-Transform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1302269862261132}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 4716170255960452}
- - {fileID: 4573243634688148}
- - {fileID: 4346963726472754}
- - {fileID: 4831132150147046}
- - {fileID: 224898500349374658}
- - {fileID: 224747469537501470}
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!23 &23107304942307554
-MeshRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1895752110289046}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_Materials:
- - {fileID: 2100000, guid: b24e1b8be8c33ab4695e0dbc2fd4dc36, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
---- !u!23 &23624711814364798
-MeshRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692291792904570}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_Materials:
- - {fileID: 2100000, guid: 872c918e12b121d4b9e71fea0604e4ab, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 1
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
---- !u!23 &23951493507061592
+--- !u!33 &33838697945103052
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1713165086033716}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &23721829456853052
MeshRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1550338680515270}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1713165086033716}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
@@ -355,6 +451,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 872c918e12b121d4b9e71fea0604e4ab, type: 2}
m_StaticBatchInfo:
@@ -364,6 +464,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -376,197 +477,139 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &33165122712933374
-MeshFilter:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1895752110289046}
- m_Mesh: {fileID: 4300006, guid: 0743c68fcf30c4bdea39c4b9fe19f8a5, type: 3}
---- !u!33 &33389533994231516
-MeshFilter:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692291792904570}
- m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!33 &33772642790513284
-MeshFilter:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1550338680515270}
- m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!64 &64282388066525410
-MeshCollider:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692291792904570}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 3
- m_Convex: 0
- m_CookingOptions: 14
- m_SkinWidth: 0.01
- m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!64 &64305755207969996
-MeshCollider:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1550338680515270}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 3
- m_Convex: 0
- m_CookingOptions: 14
- m_SkinWidth: 0.01
- m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!65 &65518658933749486
-BoxCollider:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1302269862261132}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 2
- m_Size: {x: 11.651288, y: 0.29812765, z: 11.618954}
- m_Center: {x: -0.005042553, y: -0.7, z: 0.003323555}
---- !u!108 &108402919408155458
-Light:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1033257218762798}
- m_Enabled: 1
- serializedVersion: 8
- m_Type: 0
- m_Color: {r: 1, g: 0.85490197, b: 0.62352943, a: 1}
- m_Intensity: 1.2
- m_Range: 30
- m_SpotAngle: 70
- m_CookieSize: 10
- m_Shadows:
- m_Type: 2
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 0.3
- m_Bias: 0
- m_NormalBias: 3
- m_NearPlane: 0.2
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_Lightmapping: 4
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 0.1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_ShadowRadius: 0
- m_ShadowAngle: 0
---- !u!114 &114035755260652190
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1146698127220840}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8dd3ad628df0c254eb0e0cdc0828164b, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- text: {fileID: 114545915762722286}
- font: {fileID: 0}
---- !u!114 &114044222523643888
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692428713872368}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8dd3ad628df0c254eb0e0cdc0828164b, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- text: {fileID: 114783901546005428}
- font: {fileID: 0}
---- !u!114 &114416688181433732
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1723144634915134
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4386545470508082}
+ - component: {fileID: 114394835898518556}
+ - component: {fileID: 6959743349364673984}
+ m_Layer: 0
+ m_Name: Displayal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4386545470508082
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1723144634915134}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4991959776836746}
+ - {fileID: 4977662649216140}
+ - {fileID: 4109601935991362}
+ - {fileID: 224446323252090680}
+ - {fileID: 224144878835216254}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &114394835898518556
MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1146698127220840}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1723144634915134}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 6af774a6990477e44be69639f4b78147, type: 3}
m_Name:
m_EditorClassIdentifier:
- m_UiScaleMode: 0
- m_ReferencePixelsPerUnit: 50
- m_ScaleFactor: 1
- m_ReferenceResolution: {x: 800, y: 600}
- m_ScreenMatchMode: 0
- m_MatchWidthOrHeight: 0
- m_PhysicalUnit: 3
- m_FallbackScreenDPI: 96
- m_DefaultSpriteDPI: 96
- m_DynamicPixelsPerUnit: 2
---- !u!114 &114420308021494582
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1279493164949892}
+ id:
+ originalPosition: {x: 0, y: 0, z: 0}
+ originalRotation: {x: 0, y: 0, z: 0, w: 0}
+--- !u!65 &6959743349364673984
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1723144634915134}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 2100000, guid: 2067f760c18509c4693e2190b898fe2a, type: 2}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
- m_Texture: {fileID: 0}
- m_UVRect:
- serializedVersion: 2
- x: 0
- y: 0
- width: 1
- height: 1
---- !u!114 &114545915762722286
+ serializedVersion: 2
+ m_Size: {x: 12, y: 0.4, z: 12}
+ m_Center: {x: 0, y: -0.7, z: 0}
+--- !u!1 &1751713187549858
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 224733523696523440}
+ - component: {fileID: 222687117963447242}
+ - component: {fileID: 114050182069843912}
+ m_Layer: 5
+ m_Name: TitleText
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &224733523696523440
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1751713187549858}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.1}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 224144878835216254}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.1, y: 0.1}
+ m_AnchorMax: {x: 0.9, y: 0.9}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 60, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &222687117963447242
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1751713187549858}
+ m_CullTransparentMesh: 1
+--- !u!114 &114050182069843912
MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1636588304056794}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1751713187549858}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
- m_Color: {r: 0, g: 0, b: 0, a: 1}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
- m_Font: {fileID: 12800000, guid: 4cca38632e100ce4ab77e777934f592f, type: 3}
+ m_Font: {fileID: 12800000, guid: 36e3ff808c4d44a408eb07452a39988b, type: 3}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 1
@@ -579,75 +622,73 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
---- !u!114 &114593354878245856
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1146698127220840}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreReversedGraphics: 1
- m_BlockingObjects: 0
- m_BlockingMask:
- serializedVersion: 2
- m_Bits: 4294967295
---- !u!114 &114686576913915960
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1302269862261132}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 6af774a6990477e44be69639f4b78147, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!114 &114708901558555258
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692428713872368}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_UiScaleMode: 0
- m_ReferencePixelsPerUnit: 50
- m_ScaleFactor: 1
- m_ReferenceResolution: {x: 800, y: 600}
- m_ScreenMatchMode: 0
- m_MatchWidthOrHeight: 0
- m_PhysicalUnit: 3
- m_FallbackScreenDPI: 96
- m_DefaultSpriteDPI: 96
- m_DynamicPixelsPerUnit: 2
---- !u!114 &114783901546005428
+--- !u!1 &1786497188386454
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 224100897550168486}
+ - component: {fileID: 222576530714016308}
+ - component: {fileID: 114420626376548140}
+ m_Layer: 5
+ m_Name: TitleText
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &224100897550168486
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1786497188386454}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.1}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 224446323252090680}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.1, y: 0.1}
+ m_AnchorMax: {x: 0.9, y: 0.9}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 60, y: 16}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &222576530714016308
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1786497188386454}
+ m_CullTransparentMesh: 1
+--- !u!114 &114420626376548140
MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1495570396300978}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1786497188386454}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
- m_Font: {fileID: 12800000, guid: 36e3ff808c4d44a408eb07452a39988b, type: 3}
+ m_Font: {fileID: 12800000, guid: 4cca38632e100ce4ab77e777934f592f, type: 3}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 1
@@ -660,25 +701,71 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
---- !u!114 &114830972437805028
+--- !u!1 &1924922032731184
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 224201423252828788}
+ - component: {fileID: 222348370431411672}
+ - component: {fileID: 114880238729083600}
+ m_Layer: 5
+ m_Name: TitlePlaquette
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &224201423252828788
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1924922032731184}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 224144878835216254}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &222348370431411672
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1924922032731184}
+ m_CullTransparentMesh: 1
+--- !u!114 &114880238729083600
MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1952636572763874}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1924922032731184}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 190ae71093c17bb4682fd48babadaa4c, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
@@ -686,195 +773,84 @@ MonoBehaviour:
y: 0
width: 1
height: 1
---- !u!114 &114866101839128518
-MonoBehaviour:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692428713872368}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreReversedGraphics: 1
- m_BlockingObjects: 0
- m_BlockingMask:
- serializedVersion: 2
- m_Bits: 4294967295
---- !u!222 &222153847815872102
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1495570396300978}
---- !u!222 &222259669601946956
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1636588304056794}
---- !u!222 &222416832003772490
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1279493164949892}
---- !u!222 &222469059213100282
-CanvasRenderer:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1952636572763874}
---- !u!223 &223083162367953570
-Canvas:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692428713872368}
- m_Enabled: 1
- serializedVersion: 3
- m_RenderMode: 2
- m_Camera: {fileID: 0}
- m_PlaneDistance: 100
- m_PixelPerfect: 0
- m_ReceivesEvents: 1
- m_OverrideSorting: 0
- m_OverridePixelPerfect: 0
- m_SortingBucketNormalizedSize: 0
- m_AdditionalShaderChannelsFlag: 0
- m_SortingLayerID: 0
- m_SortingOrder: 0
- m_TargetDisplay: 0
---- !u!223 &223838394677348898
-Canvas:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1146698127220840}
- m_Enabled: 1
- serializedVersion: 3
- m_RenderMode: 2
- m_Camera: {fileID: 0}
- m_PlaneDistance: 100
- m_PixelPerfect: 0
- m_ReceivesEvents: 1
- m_OverrideSorting: 0
- m_OverridePixelPerfect: 0
- m_SortingBucketNormalizedSize: 0
- m_AdditionalShaderChannelsFlag: 0
- m_SortingLayerID: 0
- m_SortingOrder: 0
- m_TargetDisplay: 0
---- !u!224 &224071902039454216
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1636588304056794}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -0.1}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224898500349374658}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.1, y: 0.1}
- m_AnchorMax: {x: 0.9, y: 0.9}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 60, y: 16}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224688668321344266
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1495570396300978}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -0.1}
- m_LocalScale: {x: 1, y: 1, z: 1}
+--- !u!1 &1987613213182048
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4977662649216140}
+ - component: {fileID: 33873630901453308}
+ - component: {fileID: 23980293081860978}
+ m_Layer: 0
+ m_Name: Frame
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4977662649216140
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1987613213182048}
+ m_LocalRotation: {x: -0, y: -0.38268346, z: -0, w: 0.9238795}
+ m_LocalPosition: {x: 0, y: -0.7, z: 0}
+ m_LocalScale: {x: 0.11, y: 0.04, z: 0.11}
m_Children: []
- m_Father: {fileID: 224747469537501470}
+ m_Father: {fileID: 4386545470508082}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.1, y: 0.1}
- m_AnchorMax: {x: 0.9, y: 0.9}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 60, y: 40}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224701556999131010
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1952636572763874}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224747469537501470}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224747469537501470
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1692428713872368}
- m_LocalRotation: {x: -0, y: 0.7071068, z: -0.7071068, w: 0}
- m_LocalPosition: {x: 0, y: 0, z: 4.81}
- m_LocalScale: {x: 0.010000011, y: 0.0100000035, z: 0.10000005}
- m_Children:
- - {fileID: 224701556999131010}
- - {fileID: 224688668321344266}
- m_Father: {fileID: 4894471851820578}
- m_RootOrder: 5
- m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: -7.44, y: -0.65}
- m_SizeDelta: {x: 300, y: 200}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224898500349374658
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1146698127220840}
- m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
- m_LocalPosition: {x: 0, y: 0, z: 5.39}
- m_LocalScale: {x: 0.01, y: 0.01, z: 0.1}
- m_Children:
- - {fileID: 224982644317131656}
- - {fileID: 224071902039454216}
- m_Father: {fileID: 4894471851820578}
- m_RootOrder: 4
- m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: -0.547}
- m_SizeDelta: {x: 300, y: 60}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!224 &224982644317131656
-RectTransform:
- m_ObjectHideFlags: 1
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 100100000}
- m_GameObject: {fileID: 1279493164949892}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 224898500349374658}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
+--- !u!33 &33873630901453308
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1987613213182048}
+ m_Mesh: {fileID: 4300006, guid: 0743c68fcf30c4bdea39c4b9fe19f8a5, type: 3}
+--- !u!23 &23980293081860978
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1987613213182048}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: b24e1b8be8c33ab4695e0dbc2fd4dc36, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
diff --git a/Assets/Resources/Prefabs/Displayal.prefab.meta b/Assets/Resources/Prefabs/Displayal.prefab.meta
index 565ea3d6..e9549cde 100644
--- a/Assets/Resources/Prefabs/Displayal.prefab.meta
+++ b/Assets/Resources/Prefabs/Displayal.prefab.meta
@@ -1,5 +1,7 @@
fileFormatVersion: 2
-guid: c874740265edf1c41a14d92cddd9afdd
+guid: 693ba3952c1874807ad3166efd424e58
+timeCreated: 1540658633
+licenseType: Free
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
diff --git a/Assets/Resources/Prefabs/ThrowableDisplayal.prefab b/Assets/Resources/Prefabs/ThrowableDisplayal.prefab
new file mode 100644
index 00000000..27ea7959
--- /dev/null
+++ b/Assets/Resources/Prefabs/ThrowableDisplayal.prefab
@@ -0,0 +1,187 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &3983172048088829474
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4023542279716075658}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b93b6a877adcbf94c89a9d6e0c0e844d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ activateActionSetOnAttach:
+ actionSetPath:
+ hideHandOnAttach: 1
+ hideSkeletonOnAttach: 0
+ hideControllerOnAttach: 0
+ handAnimationOnPickup: 0
+ setRangeOfMotionOnPickup: -1
+ useHandObjectAttachmentPoint: 1
+ attachEaseIn: 0
+ snapAttachEaseInCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ snapAttachEaseInTime: 0.15
+ snapAttachEaseInCompleted: 0
+ skeletonPoser: {fileID: 0}
+ handFollowTransform: 1
+ highlightOnHover: 1
+ hideHighlight: []
+ hoverPriority: 0
+--- !u!54 &718238593843748537
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4023542279716075658}
+ serializedVersion: 2
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 1
+ m_IsKinematic: 0
+ m_Interpolate: 0
+ m_Constraints: 0
+ m_CollisionDetection: 0
+--- !u!114 &1571331645399042507
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4023542279716075658}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ffefbea063cab884ca33e5a449e5c22c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ attachmentFlags: 44
+ attachmentOffset: {fileID: 0}
+ catchingSpeedThreshold: -1
+ releaseVelocityStyle: 1
+ releaseVelocityTimeOffset: -0.011
+ scaleReleaseVelocity: 1.1
+ scaleReleaseVelocityThreshold: -1
+ scaleReleaseVelocityCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ restoreOriginalParent: 0
+ onPickUp:
+ m_PersistentCalls:
+ m_Calls: []
+ onDetachFromHand:
+ m_PersistentCalls:
+ m_Calls: []
+ onHeldUpdate:
+ m_PersistentCalls:
+ m_Calls: []
+ interactable: {fileID: 0}
+--- !u!1001 &4021821472575168948
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1723144634915134, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_Name
+ value: Throwable Displayal
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4386545470508082, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 693ba3952c1874807ad3166efd424e58, type: 3}
+--- !u!1 &4023542279716075658 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 1723144634915134, guid: 693ba3952c1874807ad3166efd424e58,
+ type: 3}
+ m_PrefabInstance: {fileID: 4021821472575168948}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Resources/Prefabs/ThrowableDisplayal.prefab.meta b/Assets/Resources/Prefabs/ThrowableDisplayal.prefab.meta
new file mode 100644
index 00000000..088ad45a
--- /dev/null
+++ b/Assets/Resources/Prefabs/ThrowableDisplayal.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9f7bf6b3d84434f28940acdbecb311cb
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/UI/chevron-down.png.meta b/Assets/Resources/Sprites/UI/chevron-down.png.meta
index e53b9aa2..c65f6d6d 100644
--- a/Assets/Resources/Sprites/UI/chevron-down.png.meta
+++ b/Assets/Resources/Sprites/UI/chevron-down.png.meta
@@ -1,9 +1,9 @@
fileFormatVersion: 2
guid: 4d3171f11af7f534d9dc02d7c983cfa6
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 4
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -21,6 +21,9 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -31,7 +34,7 @@ TextureImporter:
serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
+ mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
@@ -51,11 +54,17 @@ TextureImporter:
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 1
platformSettings:
- - buildTarget: DefaultTexturePlatform
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -65,7 +74,9 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - buildTarget: Standalone
+ forceMaximumCompressionQuality_BC6H_BC7: 1
+ - serializedVersion: 3
+ buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -75,12 +86,23 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Resources/Sprites/UI/chevron-left.png.meta b/Assets/Resources/Sprites/UI/chevron-left.png.meta
index a91bf399..089236a7 100644
--- a/Assets/Resources/Sprites/UI/chevron-left.png.meta
+++ b/Assets/Resources/Sprites/UI/chevron-left.png.meta
@@ -1,9 +1,9 @@
fileFormatVersion: 2
guid: e0002731981ae754197fe7fbe6a24645
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 4
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -21,6 +21,9 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -31,7 +34,7 @@ TextureImporter:
serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
+ mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
@@ -51,11 +54,17 @@ TextureImporter:
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 1
platformSettings:
- - buildTarget: DefaultTexturePlatform
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -65,7 +74,9 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - buildTarget: Standalone
+ forceMaximumCompressionQuality_BC6H_BC7: 1
+ - serializedVersion: 3
+ buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -75,12 +86,23 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Resources/Sprites/UI/chevron-right.png.meta b/Assets/Resources/Sprites/UI/chevron-right.png.meta
index d14b97e0..d756fb03 100644
--- a/Assets/Resources/Sprites/UI/chevron-right.png.meta
+++ b/Assets/Resources/Sprites/UI/chevron-right.png.meta
@@ -1,9 +1,9 @@
fileFormatVersion: 2
guid: a234e54f802b57244b4b0e51a1fafdc1
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 4
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -21,6 +21,9 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -31,7 +34,7 @@ TextureImporter:
serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
+ mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
@@ -51,11 +54,17 @@ TextureImporter:
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 1
platformSettings:
- - buildTarget: DefaultTexturePlatform
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -65,7 +74,9 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - buildTarget: Standalone
+ forceMaximumCompressionQuality_BC6H_BC7: 1
+ - serializedVersion: 3
+ buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -75,12 +86,23 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Resources/Sprites/UI/chevron-up.png.meta b/Assets/Resources/Sprites/UI/chevron-up.png.meta
index 80c47329..2a15e279 100644
--- a/Assets/Resources/Sprites/UI/chevron-up.png.meta
+++ b/Assets/Resources/Sprites/UI/chevron-up.png.meta
@@ -1,9 +1,9 @@
fileFormatVersion: 2
guid: aa6d2bda0c420374baeb14046061206f
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 4
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -21,6 +21,9 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -31,7 +34,7 @@ TextureImporter:
serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
+ mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
@@ -51,11 +54,17 @@ TextureImporter:
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 1
platformSettings:
- - buildTarget: DefaultTexturePlatform
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -65,7 +74,9 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - buildTarget: Standalone
+ forceMaximumCompressionQuality_BC6H_BC7: 1
+ - serializedVersion: 3
+ buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -75,12 +86,23 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Scenes/Exhibition.unity b/Assets/Scenes/Exhibition.unity
index 7d387219..461f9520 100644
--- a/Assets/Scenes/Exhibition.unity
+++ b/Assets/Scenes/Exhibition.unity
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
- serializedVersion: 8
+ serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
@@ -38,31 +38,31 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
- m_IndirectSpecularColor: {r: 0.12731749, g: 0.13414757, b: 0.1210787, a: 1}
+ m_IndirectSpecularColor: {r: 0.12731707, g: 0.13414726, b: 0.12107857, a: 1}
+ m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
- serializedVersion: 11
+ serializedVersion: 12
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
- m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
- serializedVersion: 9
+ serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
- m_TextureWidth: 1024
- m_TextureHeight: 1024
+ m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
@@ -77,10 +77,16 @@ LightmapSettings:
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
- m_PVRFilteringMode: 1
+ m_PVREnvironmentMIS: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
@@ -88,9 +94,12 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
- m_ShowResolutionOverlay: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
- m_UseShadowmask: 1
+ m_LightingSettings: {fileID: 4890085278179872738, guid: ef280cb8a1b96844086fbbce111f0aca,
+ type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
@@ -110,18 +119,20 @@ NavMeshSettings:
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &123453529
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 123453532}
- - component: {fileID: 123453531}
- component: {fileID: 123453530}
- component: {fileID: 123453533}
m_Layer: 0
@@ -134,77 +145,68 @@ GameObject:
--- !u!114 &123453530
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 123453529}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bd383596e0c94e46a6268577549e3d30, type: 3}
m_Name:
m_EditorClassIdentifier:
- ExhibitionId: 5c2c65934d7ec8ccb89bef9e
- LobbySpawn: {x: 0, y: -9.9, z: 0}
- Settings:
- StartInLobby: 0
- VREMAddress: 127.0.0.1:4567
+ lobbySpawn: {x: 0, y: -9, z: 0}
+ settings:
+ StartInLobby: 1
+ VREMAddress: http://127.0.0.1:4567
SpotsEnabled: 0
LobbyFloorLogoEnabled: 1
LobbyCeilingLogoEnabled: 1
CeilingLogoEnabled: 1
+ WallTimerCount: 0
PlaygroundEnabled: 0
RequestExhibitions: 0
- exhibitionIds: []
+ ExhibitionId:
settingsPath:
---- !u!114 &123453531
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 123453529}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 6408bd7e6b99ba745a8f2541dbd30bac, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- RoomSize: 10
- Offset: 5
- RoomPrefab: {fileID: 1414472768723842, guid: f3ec7ae51b8e6124797fd84a359dc393, type: 2}
--- !u!4 &123453532
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 123453529}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 3
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &123453533
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 123453529}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 23c68d093f404f82a3a4e01368162c86, type: 3}
m_Name:
m_EditorClassIdentifier:
- Enabled: 0
+ isEnabled: 0
--- !u!1 &169713636
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100002, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 169713637}
- component: {fileID: 169713638}
m_Layer: 0
- m_Name: IndoorPlant1 (2)
+ m_Name: IndoorPlant3
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -213,8 +215,10 @@ GameObject:
--- !u!4 &169713637
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400002, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 169713636}
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
m_LocalPosition: {x: 4.25, y: 0, z: -4.25}
@@ -230,9 +234,10 @@ Transform:
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 9500000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 9500000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 169713636}
m_Enabled: 1
m_Avatar: {fileID: 9000000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
@@ -244,97 +249,34 @@ Animator:
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
---- !u!1 &322547914
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 322547915}
- - component: {fileID: 322547918}
- - component: {fileID: 322547917}
- - component: {fileID: 322547916}
- m_Layer: 0
- m_Name: Cube
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &322547915
-Transform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 322547914}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 0.3, y: 0.3, z: 0.3}
- m_Children: []
- m_Father: {fileID: 1717517717}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!23 &322547916
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 322547914}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_Materials:
- - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 1
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
---- !u!65 &322547917
-BoxCollider:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 322547914}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 2
- m_Size: {x: 1, y: 1, z: 1}
- m_Center: {x: 0, y: 0, z: 0}
---- !u!33 &322547918
-MeshFilter:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 322547914}
- m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+ m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1001 &325534108
-Prefab:
+PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 995871351}
m_Modifications:
+ - target: {fileID: 100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_Name
+ value: UnibasLogoCeiling
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 10000
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 10000
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 10000
+ objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
propertyPath: m_LocalPosition.x
value: 1.6
@@ -347,6 +289,10 @@ Prefab:
propertyPath: m_LocalPosition.z
value: -1.02
objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071068
+ objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
@@ -360,54 +306,33 @@ Prefab:
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalRotation.w
- value: 0.7071068
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -90
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalScale.y
- value: 10000
- objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalScale.z
- value: 10000
- objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalScale.x
- value: 10000
- objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: -90
- objectReference: {fileID: 0}
- - target: {fileID: 100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_Name
- value: UnibasLogoCeiling
- objectReference: {fileID: 0}
m_RemovedComponents: []
- m_ParentPrefab: {fileID: 100100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- m_IsPrefabParent: 0
+ m_SourcePrefab: {fileID: 100100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
--- !u!4 &325534109 stripped
Transform:
- m_PrefabParentObject: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- m_PrefabInternal: {fileID: 325534108}
+ m_CorrespondingSourceObject: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e,
+ type: 3}
+ m_PrefabInstance: {fileID: 325534108}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &338978627
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100008, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100008, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 338978628}
- component: {fileID: 338978629}
@@ -421,8 +346,10 @@ GameObject:
--- !u!4 &338978628
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400008, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400008, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 338978627}
m_LocalRotation: {x: 0.4394856, y: -0.08095074, z: 0.053188283, w: 0.893012}
m_LocalPosition: {x: 1.3324754, y: 13.804519, z: -7.092948}
@@ -434,17 +361,20 @@ Transform:
--- !u!108 &338978629
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 10800002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 10800002, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 338978627}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 0
+ m_Shape: 0
m_Color: {r: 0.54, g: 0.54, b: 0.54, a: 1}
m_Intensity: 1
m_Range: 0.5
m_SpotAngle: 34.08
+ m_InnerSpotAngle: 24.846834
m_CookieSize: 10
m_Shadows:
m_Type: 2
@@ -454,6 +384,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -461,19 +409,25 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &405422128
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 405422129}
- component: {fileID: 405422132}
@@ -489,8 +443,9 @@ GameObject:
--- !u!224 &405422129
RectTransform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 405422128}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0.51}
@@ -508,12 +463,13 @@ RectTransform:
--- !u!114 &405422130
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 405422128}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
@@ -524,12 +480,13 @@ MonoBehaviour:
--- !u!114 &405422131
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 405422128}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
@@ -542,11 +499,13 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
--- !u!223 &405422132
Canvas:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 405422128}
m_Enabled: 1
serializedVersion: 3
@@ -565,9 +524,11 @@ Canvas:
--- !u!1 &458316998
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100008, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100008, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 458316999}
- component: {fileID: 458317000}
@@ -581,8 +542,10 @@ GameObject:
--- !u!4 &458316999
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400008, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400008, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 458316998}
m_LocalRotation: {x: 0.4394856, y: -0.08095074, z: 0.053188283, w: 0.893012}
m_LocalPosition: {x: 1.3324754, y: 13.804519, z: -7.092948}
@@ -594,17 +557,20 @@ Transform:
--- !u!108 &458317000
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 10800002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 10800002, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 458316998}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 0
+ m_Shape: 0
m_Color: {r: 0.54, g: 0.54, b: 0.54, a: 1}
m_Intensity: 1
m_Range: 0.5
m_SpotAngle: 34.08
+ m_InnerSpotAngle: 24.846834
m_CookieSize: 10
m_Shadows:
m_Type: 2
@@ -614,6 +580,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -621,19 +605,26 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &465261837
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100008, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100008, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 465261838}
- component: {fileID: 465261839}
@@ -647,8 +638,10 @@ GameObject:
--- !u!4 &465261838
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400008, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400008, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465261837}
m_LocalRotation: {x: 0.4394856, y: -0.08095074, z: 0.053188283, w: 0.893012}
m_LocalPosition: {x: 1.3324754, y: 13.804519, z: -7.092948}
@@ -660,17 +653,20 @@ Transform:
--- !u!108 &465261839
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 10800002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 10800002, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465261837}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 0
+ m_Shape: 0
m_Color: {r: 0.54, g: 0.54, b: 0.54, a: 1}
m_Intensity: 1
m_Range: 0.5
m_SpotAngle: 34.08
+ m_InnerSpotAngle: 24.846834
m_CookieSize: 10
m_Shadows:
m_Type: 2
@@ -680,6 +676,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -687,23 +701,28 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &471107340
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1091954227334992, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1091954227334992, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 471107342}
- - component: {fileID: 471107341}
- component: {fileID: 471107343}
m_Layer: 0
m_Name: Lobby
@@ -712,29 +731,13 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!114 &471107341
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114247994260953484, guid: 43ad350a40367054ca51c3cb0d240eb8,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 471107340}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f7adf81c04b262a4b8e81b9aff5a8793, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- PlanePrefab: {fileID: 1723144634915134, guid: 693ba3952c1874807ad3166efd424e58,
- type: 2}
- audio: {fileID: 0}
- GlobePrefab: {fileID: 1051155230607358, guid: 31ec8781b97bb41f09b6daa2cea5b36f,
- type: 2}
--- !u!4 &471107342
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4415345949160624, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4415345949160624, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 471107340}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -10, z: 0}
@@ -754,15 +757,15 @@ Transform:
- {fileID: 1432769504}
- {fileID: 169713637}
- {fileID: 1913549275}
- - {fileID: 1717517717}
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &471107343
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 471107340}
m_Enabled: 1
m_EditorHideFlags: 0
@@ -772,9 +775,11 @@ MonoBehaviour:
--- !u!1 &477856384
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100004, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100004, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 477856385}
- component: {fileID: 477856387}
@@ -789,8 +794,10 @@ GameObject:
--- !u!4 &477856385
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400004, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400004, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 477856384}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
@@ -802,9 +809,10 @@ Transform:
--- !u!23 &477856386
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 2300000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 2300000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 477856384}
m_Enabled: 1
m_CastShadows: 1
@@ -813,6 +821,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a0ddbdd7cfb8ae94c8454c138df77a64, type: 2}
- {fileID: 2100000, guid: ec1565be7383e2e49a2300ec6ea284b6, type: 2}
@@ -827,6 +839,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -839,99 +852,120 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &477856387
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 3300000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 3300000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 477856384}
m_Mesh: {fileID: 4300000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
--- !u!1001 &515702456
-Prefab:
+PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 107946, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: m_TagString
+ value: Player
+ objectReference: {fileID: 0}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: m_LocalRotation.w
+ - target: {fileID: 5475726, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: m_Interpolate
value: 1
objectReference: {fileID: 0}
- - target: {fileID: 447954, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: m_RootOrder
+ - target: {fileID: 5475726, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: m_IsKinematic
value: 1
objectReference: {fileID: 0}
- - target: {fileID: 107946, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: m_TagString
- value: Player
+ - target: {fileID: 5475726, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: m_CollisionDetection
+ value: 2
objectReference: {fileID: 0}
- - target: {fileID: 13693334, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 11455280, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
+ propertyPath: head
+ value:
+ objectReference: {fileID: 731344901}
+ - target: {fileID: 11455280, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- - target: {fileID: 11455280, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 13693334, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- - target: {fileID: 11455280, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: head
- value:
- objectReference: {fileID: 731344901}
- - target: {fileID: 5475726, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: m_CollisionDetection
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 13693334, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 13693334, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_Center.y
value: 0.5
objectReference: {fileID: 0}
- - target: {fileID: 5475726, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: m_Interpolate
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 5475726, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- propertyPath: m_IsKinematic
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 13693334, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
+ - target: {fileID: 13693334, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
propertyPath: m_IsTrigger
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
- m_ParentPrefab: {fileID: 100100000, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- m_IsPrefabParent: 0
+ m_SourcePrefab: {fileID: 100100000, guid: dc06161b6d97feb419f45f03b62e14b9, type: 3}
--- !u!1001 &561656636
-Prefab:
+PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1389145820}
m_Modifications:
+ - target: {fileID: 100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_Name
+ value: UnibasLogoFloor
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 10000.014
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 10000.01
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 10000.01
+ objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
propertyPath: m_LocalPosition.x
value: 1.6
@@ -944,6 +978,10 @@ Prefab:
propertyPath: m_LocalPosition.z
value: -1.02
objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071068
+ objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
@@ -957,136 +995,102 @@ Prefab:
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalRotation.w
- value: 0.7071068
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -90
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalScale.y
- value: 10000.01
- objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalScale.z
- value: 10000.01
- objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalScale.x
- value: 10000.014
- objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: -90
- objectReference: {fileID: 0}
- - target: {fileID: 100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- propertyPath: m_Name
- value: UnibasLogoFloor
- objectReference: {fileID: 0}
m_RemovedComponents: []
- m_ParentPrefab: {fileID: 100100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- m_IsPrefabParent: 0
+ m_SourcePrefab: {fileID: 100100000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
--- !u!4 &561656637 stripped
Transform:
- m_PrefabParentObject: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e, type: 3}
- m_PrefabInternal: {fileID: 561656636}
+ m_CorrespondingSourceObject: {fileID: 400000, guid: 9041ee39b903f90438ef3b7227756c8e,
+ type: 3}
+ m_PrefabInstance: {fileID: 561656636}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &720665647
-Prefab:
+PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 471107342}
m_Modifications:
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
+ - target: {fileID: 142912, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_IsActive
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 198004, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_IsActive
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
propertyPath: m_LocalPosition.x
value: 4
objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_LocalRotation.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_LocalRotation.y
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_LocalRotation.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_RootOrder
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 11479906, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: teleportType
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 13593758, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_IsTrigger
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 11479906, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: markerActive
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- - target: {fileID: 11479906, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: title
- value:
- objectReference: {fileID: 0}
- - target: {fileID: 198004, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_IsActive
+ - target: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 142912, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: m_IsActive
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 2356592, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
+ - target: {fileID: 2356592, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 510c6e0b8b5c948458c2b4bc3de5a637, type: 2}
- - target: {fileID: 11479906, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- propertyPath: locked
+ - target: {fileID: 13593758, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
+ propertyPath: m_IsTrigger
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
- m_ParentPrefab: {fileID: 100100000, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- m_IsPrefabParent: 0
+ m_SourcePrefab: {fileID: 100100000, guid: 73ac470d3d909d645a6c89a4664b6849, type: 3}
--- !u!4 &720665648 stripped
Transform:
- m_PrefabParentObject: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849, type: 2}
- m_PrefabInternal: {fileID: 720665647}
+ m_CorrespondingSourceObject: {fileID: 428928, guid: 73ac470d3d909d645a6c89a4664b6849,
+ type: 3}
+ m_PrefabInstance: {fileID: 720665647}
+ m_PrefabAsset: {fileID: 0}
--- !u!4 &731344901 stripped
Transform:
- m_PrefabParentObject: {fileID: 429506, guid: dc06161b6d97feb419f45f03b62e14b9, type: 2}
- m_PrefabInternal: {fileID: 515702456}
+ m_CorrespondingSourceObject: {fileID: 429506, guid: dc06161b6d97feb419f45f03b62e14b9,
+ type: 3}
+ m_PrefabInstance: {fileID: 515702456}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &738498677
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100004, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100004, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 738498678}
- component: {fileID: 738498680}
@@ -1101,8 +1105,10 @@ GameObject:
--- !u!4 &738498678
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400004, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400004, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 738498677}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
@@ -1114,9 +1120,10 @@ Transform:
--- !u!23 &738498679
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 2300000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 2300000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 738498677}
m_Enabled: 1
m_CastShadows: 1
@@ -1125,6 +1132,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a0ddbdd7cfb8ae94c8454c138df77a64, type: 2}
- {fileID: 2100000, guid: ec1565be7383e2e49a2300ec6ea284b6, type: 2}
@@ -1139,6 +1150,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -1151,20 +1163,24 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &738498680
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 3300000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 3300000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 738498677}
m_Mesh: {fileID: 4300000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
--- !u!1 &870455544
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 870455545}
- component: {fileID: 870455546}
@@ -1178,8 +1194,10 @@ GameObject:
--- !u!4 &870455545
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 870455544}
m_LocalRotation: {x: 0.50595576, y: -0.15491147, z: -0.14537717, w: 0.83598846}
m_LocalPosition: {x: 1.3324754, y: 13.512797, z: -8.130181}
@@ -1191,17 +1209,20 @@ Transform:
--- !u!108 &870455546
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 10800000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 10800000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 870455544}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 1
+ m_Shape: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 0.29999998
m_Range: 10
m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 0
@@ -1211,6 +1232,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -1218,19 +1257,25 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &879060031
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 879060032}
- component: {fileID: 879060034}
@@ -1245,8 +1290,9 @@ GameObject:
--- !u!224 &879060032
RectTransform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 879060031}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
@@ -1263,22 +1309,23 @@ RectTransform:
--- !u!114 &879060033
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 879060031}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
@@ -1296,22 +1343,24 @@ MonoBehaviour:
--- !u!222 &879060034
CanvasRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 879060031}
+ m_CullTransparentMesh: 1
--- !u!1 &913630414
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1729293968386264, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1729293968386264, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 913630415}
- component: {fileID: 913630419}
- component: {fileID: 913630418}
- component: {fileID: 913630417}
- - component: {fileID: 913630416}
m_Layer: 0
m_Name: SouthWall
m_TagString: Untagged
@@ -1322,9 +1371,10 @@ GameObject:
--- !u!4 &913630415
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4489302658765550, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4489302658765550, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 913630414}
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
m_LocalPosition: {x: -5.5, y: 2.5, z: 0}
@@ -1333,26 +1383,13 @@ Transform:
m_Father: {fileID: 471107342}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
---- !u!114 &913630416
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114846969025674480, guid: 43ad350a40367054ca51c3cb0d240eb8,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 913630414}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 453b6e0995157534e90ddd721f3fc607, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- Orientation: 2
- RoomRadius: 5
--- !u!23 &913630417
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23496733994142770, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23496733994142770, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 913630414}
m_Enabled: 1
m_CastShadows: 1
@@ -1361,6 +1398,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6cafa1d1c58356f4981fd9832800bf69, type: 2}
m_StaticBatchInfo:
@@ -1370,6 +1411,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -1382,12 +1424,14 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &913630418
BoxCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 65302388588502814, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 65302388588502814, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 913630414}
m_Material: {fileID: 0}
m_IsTrigger: 0
@@ -1398,17 +1442,19 @@ BoxCollider:
--- !u!33 &913630419
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33881291610697942, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33881291610697942, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 913630414}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &937120730
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 937120731}
- component: {fileID: 937120736}
@@ -1427,8 +1473,9 @@ GameObject:
--- !u!224 &937120731
RectTransform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
@@ -1446,8 +1493,9 @@ RectTransform:
--- !u!114 &937120732
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
m_Enabled: 1
m_EditorHideFlags: 0
@@ -1458,6 +1506,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1913549276}
+ m_TargetAssemblyTypeName:
m_MethodName: TeleportPlayer
m_Mode: 1
m_Arguments:
@@ -1468,44 +1517,73 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_TypeName: Valve.VR.InteractionSystem.CustomEvents+UnityEventHand, Assembly-CSharp,
- Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
--- !u!114 &937120733
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b93b6a877adcbf94c89a9d6e0c0e844d, type: 3}
m_Name:
m_EditorClassIdentifier:
- activateActionSetOnAttach: {fileID: 0}
+ activateActionSetOnAttach:
+ actionSetPath:
hideHandOnAttach: 1
hideSkeletonOnAttach: 0
hideControllerOnAttach: 0
handAnimationOnPickup: 0
setRangeOfMotionOnPickup: -1
useHandObjectAttachmentPoint: 1
- handFollowTransform: {fileID: 0}
- handFollowTransformPosition: 1
- handFollowTransformRotation: 1
+ attachEaseIn: 0
+ snapAttachEaseInCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ snapAttachEaseInTime: 0.15
+ snapAttachEaseInCompleted: 0
+ skeletonPoser: {fileID: 0}
+ handFollowTransform: 1
highlightOnHover: 1
hideHighlight: []
+ hoverPriority: 0
--- !u!114 &937120734
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -1515,44 +1593,46 @@ MonoBehaviour:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 937120735}
m_OnClick:
m_PersistentCalls:
m_Calls: []
- m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
- Culture=neutral, PublicKeyToken=null
--- !u!114 &937120735
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
@@ -1561,17 +1641,22 @@ MonoBehaviour:
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!222 &937120736
CanvasRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
+ m_CullTransparentMesh: 1
--- !u!65 &937120737
BoxCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 937120730}
m_Material: {fileID: 0}
m_IsTrigger: 0
@@ -1582,10 +1667,11 @@ BoxCollider:
--- !u!1 &995871350
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1381129657105970, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1381129657105970, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 995871351}
- component: {fileID: 995871355}
@@ -1602,9 +1688,10 @@ GameObject:
--- !u!4 &995871351
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4380875659379194, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4380875659379194, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 995871350}
m_LocalRotation: {x: 0, y: 0, z: 1, w: 0}
m_LocalPosition: {x: 0, y: 5, z: 0}
@@ -1617,9 +1704,10 @@ Transform:
--- !u!114 &995871352
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114398750414707916, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 114398750414707916, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 995871350}
m_Enabled: 1
m_EditorHideFlags: 0
@@ -1629,9 +1717,10 @@ MonoBehaviour:
--- !u!23 &995871353
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23612666943450240, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23612666943450240, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 995871350}
m_Enabled: 1
m_CastShadows: 1
@@ -1640,6 +1729,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 3894610d5dbb44b43b07127f8f20b3a8, type: 2}
m_StaticBatchInfo:
@@ -1649,6 +1742,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -1661,35 +1755,39 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &995871354
MeshCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 64217718344059280, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 64217718344059280, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 995871350}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
- serializedVersion: 3
+ serializedVersion: 4
m_Convex: 0
- m_CookingOptions: 14
- m_SkinWidth: 0.01
+ m_CookingOptions: 30
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &995871355
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33691126756034102, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33691126756034102, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 995871350}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1073577007
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1073577008}
- component: {fileID: 1073577009}
@@ -1703,8 +1801,10 @@ GameObject:
--- !u!4 &1073577008
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1073577007}
m_LocalRotation: {x: 0.50595576, y: -0.15491147, z: -0.14537717, w: 0.83598846}
m_LocalPosition: {x: 1.3324754, y: 13.512797, z: -8.130181}
@@ -1716,17 +1816,20 @@ Transform:
--- !u!108 &1073577009
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 10800000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 10800000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1073577007}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 1
+ m_Shape: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 0.29999998
m_Range: 10
m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 0
@@ -1736,6 +1839,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -1743,104 +1864,26 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
---- !u!1 &1204909359
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 1204909360}
- - component: {fileID: 1204909363}
- - component: {fileID: 1204909362}
- - component: {fileID: 1204909361}
- m_Layer: 0
- m_Name: Capsule
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1204909360
-Transform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1204909359}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 0.3, y: 0.3, z: 0.3}
- m_Children: []
- m_Father: {fileID: 1717517717}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!23 &1204909361
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1204909359}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_Materials:
- - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 1
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
---- !u!136 &1204909362
-CapsuleCollider:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1204909359}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- m_Radius: 0.5
- m_Height: 2
- m_Direction: 1
- m_Center: {x: 0, y: 0, z: 0}
---- !u!33 &1204909363
-MeshFilter:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1204909359}
- m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1289380961
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1289380962}
- component: {fileID: 1289380963}
@@ -1854,8 +1897,10 @@ GameObject:
--- !u!4 &1289380962
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1289380961}
m_LocalRotation: {x: 0.50595576, y: -0.15491147, z: -0.14537717, w: 0.83598846}
m_LocalPosition: {x: 1.3324754, y: 13.512797, z: -8.130181}
@@ -1867,17 +1912,20 @@ Transform:
--- !u!108 &1289380963
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 10800000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 10800000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1289380961}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 1
+ m_Shape: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 0.29999998
m_Range: 10
m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 0
@@ -1887,6 +1935,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -1894,26 +1960,31 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &1294949431
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1600139916946542, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1600139916946542, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1294949432}
- component: {fileID: 1294949436}
- component: {fileID: 1294949435}
- component: {fileID: 1294949434}
- - component: {fileID: 1294949433}
m_Layer: 0
m_Name: WestWall
m_TagString: Untagged
@@ -1924,9 +1995,10 @@ GameObject:
--- !u!4 &1294949432
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4715313820008144, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4715313820008144, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1294949431}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 2.5, z: -5.5}
@@ -1935,26 +2007,13 @@ Transform:
m_Father: {fileID: 471107342}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1294949433
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114859673643067282, guid: 43ad350a40367054ca51c3cb0d240eb8,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1294949431}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 453b6e0995157534e90ddd721f3fc607, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- Orientation: 3
- RoomRadius: 5
--- !u!23 &1294949434
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23858465925333696, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23858465925333696, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1294949431}
m_Enabled: 1
m_CastShadows: 1
@@ -1963,6 +2022,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6cafa1d1c58356f4981fd9832800bf69, type: 2}
m_StaticBatchInfo:
@@ -1972,6 +2035,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -1984,12 +2048,14 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1294949435
BoxCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 65560704715985190, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 65560704715985190, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1294949431}
m_Material: {fileID: 0}
m_IsTrigger: 0
@@ -2000,18 +2066,20 @@ BoxCollider:
--- !u!33 &1294949436
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33731531607506108, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33731531607506108, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1294949431}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1389145819
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1493211288455760, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1493211288455760, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1389145820}
- component: {fileID: 1389145824}
@@ -2028,9 +2096,10 @@ GameObject:
--- !u!4 &1389145820
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4394856343597108, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4394856343597108, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1389145819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
@@ -2043,9 +2112,10 @@ Transform:
--- !u!114 &1389145821
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114569960176821088, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 114569960176821088, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1389145819}
m_Enabled: 1
m_EditorHideFlags: 0
@@ -2055,9 +2125,10 @@ MonoBehaviour:
--- !u!23 &1389145822
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23988839637209296, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23988839637209296, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1389145819}
m_Enabled: 1
m_CastShadows: 1
@@ -2066,6 +2137,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: d080de54422fc074da28032623a48860, type: 2}
m_StaticBatchInfo:
@@ -2075,6 +2150,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -2087,42 +2163,44 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &1389145823
MeshCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 64824310659656924, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 64824310659656924, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1389145819}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
- serializedVersion: 3
+ serializedVersion: 4
m_Convex: 0
- m_CookingOptions: 14
- m_SkinWidth: 0.01
+ m_CookingOptions: 30
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &1389145824
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33881137363756132, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33881137363756132, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1389145819}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1393683088
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1471210206939388, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1471210206939388, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1393683089}
- component: {fileID: 1393683093}
- component: {fileID: 1393683092}
- component: {fileID: 1393683091}
- - component: {fileID: 1393683090}
m_Layer: 0
m_Name: NorthWall
m_TagString: Untagged
@@ -2133,9 +2211,10 @@ GameObject:
--- !u!4 &1393683089
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4123904704037662, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4123904704037662, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393683088}
m_LocalRotation: {x: 0, y: 0.7071068, z: -0, w: -0.7071068}
m_LocalPosition: {x: 5.5, y: 2.5, z: 0}
@@ -2144,26 +2223,13 @@ Transform:
m_Father: {fileID: 471107342}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 270, z: 0}
---- !u!114 &1393683090
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114957097166043772, guid: 43ad350a40367054ca51c3cb0d240eb8,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1393683088}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 453b6e0995157534e90ddd721f3fc607, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- Orientation: 0
- RoomRadius: 5
--- !u!23 &1393683091
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23540454350119734, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23540454350119734, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393683088}
m_Enabled: 1
m_CastShadows: 1
@@ -2172,6 +2238,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 5ca7add038ee24f4f99ca733a846e082, type: 2}
m_StaticBatchInfo:
@@ -2181,6 +2251,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -2193,12 +2264,14 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1393683092
BoxCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 65750050019559060, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 65750050019559060, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393683088}
m_Material: {fileID: 0}
m_IsTrigger: 0
@@ -2209,24 +2282,25 @@ BoxCollider:
--- !u!33 &1393683093
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33698469859399172, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33698469859399172, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393683088}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1402571953
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1167024307849844, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1167024307849844, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1402571954}
- component: {fileID: 1402571958}
- component: {fileID: 1402571957}
- component: {fileID: 1402571956}
- - component: {fileID: 1402571955}
m_Layer: 0
m_Name: EastWall
m_TagString: Untagged
@@ -2237,9 +2311,10 @@ GameObject:
--- !u!4 &1402571954
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4836259712654746, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4836259712654746, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1402571953}
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 0, y: 2.5, z: 5.5}
@@ -2248,26 +2323,13 @@ Transform:
m_Father: {fileID: 471107342}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
---- !u!114 &1402571955
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114187801076618424, guid: 43ad350a40367054ca51c3cb0d240eb8,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1402571953}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 453b6e0995157534e90ddd721f3fc607, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- Orientation: 1
- RoomRadius: 5
--- !u!23 &1402571956
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23276166737891744, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23276166737891744, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1402571953}
m_Enabled: 1
m_CastShadows: 1
@@ -2276,6 +2338,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 5ca7add038ee24f4f99ca733a846e082, type: 2}
m_StaticBatchInfo:
@@ -2285,6 +2351,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -2297,12 +2364,14 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1402571957
BoxCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 65779432455423020, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 65779432455423020, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1402571953}
m_Material: {fileID: 0}
m_IsTrigger: 0
@@ -2313,80 +2382,25 @@ BoxCollider:
--- !u!33 &1402571958
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33963883579405500, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33963883579405500, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1402571953}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
---- !u!1001 &1417515579
-Prefab:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- m_TransformParent: {fileID: 0}
- m_Modifications:
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalRotation.x
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_RootOrder
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 12071126, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: m_DynamicOccludee
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 11445746, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: debugFloor
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 11445746, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: showOffsetReticle
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 11445746, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- propertyPath: pointHighlightedMaterial
- value:
- objectReference: {fileID: 2100000, guid: 510c6e0b8b5c948458c2b4bc3de5a637, type: 2}
- m_RemovedComponents: []
- m_ParentPrefab: {fileID: 100100000, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 2}
- m_IsPrefabParent: 0
--- !u!1 &1432769503
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100002, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1432769504}
- component: {fileID: 1432769505}
m_Layer: 0
- m_Name: IndoorPlant1 (1)
+ m_Name: IndoorPlant2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2395,8 +2409,10 @@ GameObject:
--- !u!4 &1432769504
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400002, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1432769503}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -4.25, y: 0, z: 4.25}
@@ -2412,9 +2428,10 @@ Transform:
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 9500000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 9500000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1432769503}
m_Enabled: 1
m_Avatar: {fileID: 9000000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
@@ -2426,12 +2443,15 @@ Animator:
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1 &1491220644
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100002, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1491220645}
- component: {fileID: 1491220646}
@@ -2445,8 +2465,10 @@ GameObject:
--- !u!4 &1491220645
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400002, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400002, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1491220644}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 4.25, y: 0, z: 4.25}
@@ -2462,9 +2484,10 @@ Transform:
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 9500000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 9500000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1491220644}
m_Enabled: 1
m_Avatar: {fileID: 9000000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
@@ -2476,13 +2499,15 @@ Animator:
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1 &1559008200
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1163618553892468, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1163618553892468, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1559008201}
- component: {fileID: 1559008205}
@@ -2499,9 +2524,10 @@ GameObject:
--- !u!4 &1559008201
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4478756644364986, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4478756644364986, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559008200}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.01, z: 0}
@@ -2513,9 +2539,10 @@ Transform:
--- !u!114 &1559008202
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 114860609840922904, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 114860609840922904, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559008200}
m_Enabled: 1
m_EditorHideFlags: 0
@@ -2527,17 +2554,22 @@ MonoBehaviour:
--- !u!23 &1559008203
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 23847835417151178, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 23847835417151178, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559008200}
- m_Enabled: 1
+ m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 417e639b66cd3a24e9c5312be99ce3bd, type: 2}
m_StaticBatchInfo:
@@ -2547,6 +2579,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -2559,35 +2592,39 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &1559008204
MeshCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 64280608297398338, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 64280608297398338, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559008200}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
- serializedVersion: 3
+ serializedVersion: 4
m_Convex: 0
- m_CookingOptions: 14
- m_SkinWidth: 0.01
+ m_CookingOptions: 30
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &1559008205
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 33157466841060802, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 33157466841060802, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559008200}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1668980313
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 100004, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 100004, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1668980314}
- component: {fileID: 1668980316}
@@ -2602,8 +2639,10 @@ GameObject:
--- !u!4 &1668980314
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 400004, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 400004, guid: ce6402bc5c0679344a343b08fe9026d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668980313}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
@@ -2615,9 +2654,10 @@ Transform:
--- !u!23 &1668980315
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 2300000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 2300000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668980313}
m_Enabled: 1
m_CastShadows: 1
@@ -2626,6 +2666,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a0ddbdd7cfb8ae94c8454c138df77a64, type: 2}
- {fileID: 2100000, guid: ec1565be7383e2e49a2300ec6ea284b6, type: 2}
@@ -2640,6 +2684,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -2652,157 +2697,24 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1668980316
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 3300000, guid: ce6402bc5c0679344a343b08fe9026d4,
+ m_CorrespondingSourceObject: {fileID: 3300000, guid: ce6402bc5c0679344a343b08fe9026d4,
type: 3}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668980313}
m_Mesh: {fileID: 4300000, guid: ce6402bc5c0679344a343b08fe9026d4, type: 3}
---- !u!1 &1717517716
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
- m_Component:
- - component: {fileID: 1717517717}
- - component: {fileID: 1717517721}
- - component: {fileID: 1717517720}
- - component: {fileID: 1717517719}
- - component: {fileID: 1717517718}
- m_Layer: 0
- m_Name: TestThrowable
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1717517717
-Transform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1717517716}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 2.269, y: 0.935, z: 3.374}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 1204909360}
- - {fileID: 322547915}
- m_Father: {fileID: 471107342}
- m_RootOrder: 14
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1717517718
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1717517716}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: ffefbea063cab884ca33e5a449e5c22c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- attachmentFlags: 44
- attachmentOffset: {fileID: 0}
- catchingSpeedThreshold: -1
- releaseVelocityStyle: 1
- releaseVelocityTimeOffset: -0.011
- scaleReleaseVelocity: 1.1
- restoreOriginalParent: 0
- attachEaseIn: 0
- snapAttachEaseInCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 2
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- - serializedVersion: 2
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- snapAttachEaseInTime: 0.15
- onPickUp:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
- Culture=neutral, PublicKeyToken=null
- onDetachFromHand:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
- Culture=neutral, PublicKeyToken=null
- snapAttachEaseInCompleted: 0
- interactable: {fileID: 0}
---- !u!114 &1717517719
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1717517716}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: b93b6a877adcbf94c89a9d6e0c0e844d, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- activateActionSetOnAttach: {fileID: 0}
- hideHandOnAttach: 1
- hideSkeletonOnAttach: 0
- hideControllerOnAttach: 0
- handAnimationOnPickup: 0
- setRangeOfMotionOnPickup: -1
- useHandObjectAttachmentPoint: 1
- handFollowTransform: {fileID: 0}
- handFollowTransformPosition: 1
- handFollowTransformRotation: 1
- highlightOnHover: 1
- hideHighlight: []
---- !u!54 &1717517720
-Rigidbody:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1717517716}
- serializedVersion: 2
- m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
- m_UseGravity: 1
- m_IsKinematic: 0
- m_Interpolate: 0
- m_Constraints: 0
- m_CollisionDetection: 0
---- !u!114 &1717517721
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1717517716}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 783750eec4c41da428b7651515146d14, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- velocityAverageFrames: 5
- angularVelocityAverageFrames: 11
- estimateOnAwake: 0
--- !u!1 &1740654616
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1446357605606800, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1446357605606800, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1740654617}
- component: {fileID: 1740654618}
@@ -2816,9 +2728,10 @@ GameObject:
--- !u!4 &1740654617
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4983058559591610, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4983058559591610, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1740654616}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 2.5, z: 0}
@@ -2830,17 +2743,20 @@ Transform:
--- !u!108 &1740654618
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 108182542944349988, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 108182542944349988, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1740654616}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 2
+ m_Shape: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1.5
m_Range: 8
m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 0
@@ -2850,6 +2766,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -2857,20 +2791,26 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 1
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &1804425771
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 1347579624763508, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 1347579624763508, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1804425772}
- component: {fileID: 1804425773}
@@ -2884,9 +2824,10 @@ GameObject:
--- !u!4 &1804425772
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 4648397159026360, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 4648397159026360, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1804425771}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 5, z: 0}
@@ -2898,17 +2839,20 @@ Transform:
--- !u!108 &1804425773
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 108790063669734454, guid: 43ad350a40367054ca51c3cb0d240eb8,
+ m_CorrespondingSourceObject: {fileID: 108790063669734454, guid: 43ad350a40367054ca51c3cb0d240eb8,
type: 2}
- m_PrefabInternal: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1804425771}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 1
+ m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
@@ -2918,6 +2862,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -2925,19 +2887,25 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &1913549274
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 1913549275}
- component: {fileID: 1913549279}
@@ -2954,8 +2922,9 @@ GameObject:
--- !u!4 &1913549275
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1913549274}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: 4.5}
@@ -2968,21 +2937,23 @@ Transform:
--- !u!114 &1913549276
MonoBehaviour:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1913549274}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf19c800ac07f2347a6149846709dc15, type: 3}
m_Name:
m_EditorClassIdentifier:
- Destination: {x: 0, y: 0, z: 0}
- MinDistance: 1
+ destination: {x: 0, y: 0, z: 0}
+ minDistance: 1
--- !u!23 &1913549277
MeshRenderer:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1913549274}
m_Enabled: 1
m_CastShadows: 1
@@ -2991,6 +2962,10 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
@@ -3000,6 +2975,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -3012,11 +2988,13 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1913549278
BoxCollider:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1913549274}
m_Material: {fileID: 0}
m_IsTrigger: 0
@@ -3027,16 +3005,75 @@ BoxCollider:
--- !u!33 &1913549279
MeshFilter:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1913549274}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1001 &1960535419
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 153878, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_Name
+ value: Teleporting
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 475244, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7a135b1a2cb9c8f488d4dd00c55ab283, type: 3}
--- !u!1 &2042787372
GameObject:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 5
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
m_Component:
- component: {fileID: 2042787374}
- component: {fileID: 2042787373}
@@ -3050,16 +3087,19 @@ GameObject:
--- !u!108 &2042787373
Light:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2042787372}
m_Enabled: 1
- serializedVersion: 8
+ serializedVersion: 10
m_Type: 1
+ m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
@@ -3069,6 +3109,24 @@ Light:
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
@@ -3076,18 +3134,24 @@ Light:
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
+ m_RenderingLayerMask: 1
m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &2042787374
Transform:
m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2042787372}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
diff --git a/Assets/Scripts/ObjImport.meta b/Assets/Scripts/ObjImport.meta
index d02be668..a92f76ba 100644
--- a/Assets/Scripts/ObjImport.meta
+++ b/Assets/Scripts/ObjImport.meta
@@ -1,3 +1,8 @@
-fileFormatVersion: 2
-guid: e13219550518426495bf40a9a0ec1076
-timeCreated: 1540641673
\ No newline at end of file
+fileFormatVersion: 2
+guid: e13219550518426495bf40a9a0ec1076
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ObjImport/FastObjImporter.cs b/Assets/Scripts/ObjImport/FastObjImporter.cs
index 9cd3db90..54b00003 100644
--- a/Assets/Scripts/ObjImport/FastObjImporter.cs
+++ b/Assets/Scripts/ObjImport/FastObjImporter.cs
@@ -2,243 +2,277 @@
using System.Text;
using UnityEngine;
-namespace DefaultNamespace.ObjImport {
-
- ///
- /// Kindly provided at http://wiki.unity3d.com/index.php/FastObjImporter
- /// Modified version to work with web
- ///
- public sealed class FastObjImporter {
- /* FastObjImporter.cs
+namespace ObjImport
+{
+ ///
+ /// Kindly provided at http://wiki.unity3d.com/index.php/FastObjImporter
+ /// Modified version to work with web
+ ///
+ public sealed class FastObjImporter
+ {
+ /* FastObjImporter.cs
* by Marc Kusters (Nighteyes)
- *
* Used for loading .obj files exported by Blender
* Example usage: Mesh myMesh = FastObjImporter.Instance.ImportFile("path_to_obj_file.obj");
*/
+ #region singleton
- #region singleton
+ // Singleton code
+ // Static can be called from anywhere without having to make an instance
+ private static FastObjImporter _instance;
- // Singleton code
- // Static can be called from anywhere without having to make an instance
- private static FastObjImporter _instance;
+ // If called check if there is an instance, otherwise create it
+ public static FastObjImporter Instance
+ {
+ get { return _instance ??= new FastObjImporter(); }
+ }
- // If called check if there is an instance, otherwise create it
- public static FastObjImporter Instance
- {
- get { return _instance ?? (_instance = new FastObjImporter()); }
- }
+ #endregion
+
+ private List _triangles;
+ private List _vertices;
+ private List _uv;
+ private List _normals;
+ private List _faceData;
+ private List _intArray;
+
+ private const int MIN_POW_10 = -16;
+ private const int MAX_POW_10 = 16;
+ private const int NUM_POWS_10 = MAX_POW_10 - MIN_POW_10 + 1;
+ private static readonly float[] Pow10 = GenerateLookupTable();
+
+ // Use this for initialization
+ public Mesh ImportFile(string text)
+ {
+ _triangles = new List();
+ _vertices = new List();
+ _uv = new List();
+ _normals = new List();
+ _faceData = new List();
+ _intArray = new List();
+
+ LoadMeshData(text);
+
+ var newVerts = new Vector3[_faceData.Count];
+ var newUVs = new Vector2[_faceData.Count];
+ var newNormals = new Vector3[_faceData.Count];
+
+ /* The following foreach loops through the facedata and assigns the appropriate vertex, uv, or normal
+ * for the appropriate Unity mesh array.
+ */
+ for (var i = 0; i < _faceData.Count; i++)
+ {
+ newVerts[i] = _vertices[_faceData[i].X - 1];
+ if (_faceData[i].Y >= 1)
+ newUVs[i] = _uv[_faceData[i].Y - 1];
+
+ if (_faceData[i].Z >= 1)
+ newNormals[i] = _normals[_faceData[i].Z - 1];
+ }
+
+ var mesh = new Mesh
+ {
+ vertices = newVerts, uv = newUVs, normals = newNormals, triangles = _triangles.ToArray()
+ };
+
+
+ mesh.RecalculateBounds();
+ //mesh.Optimize();
+
+ return mesh;
+ }
- #endregion
-
- private List triangles;
- private List vertices;
- private List uv;
- private List normals;
- private List faceData;
- private List intArray;
-
- private const int MIN_POW_10 = -16;
- private const int MAX_POW_10 = 16;
- private const int NUM_POWS_10 = MAX_POW_10 - MIN_POW_10 + 1;
- private static readonly float[] pow10 = GenerateLookupTable();
-
- // Use this for initialization
- public Mesh ImportFile(string text) {
- triangles = new List();
- vertices = new List();
- uv = new List();
- normals = new List();
- faceData = new List();
- intArray = new List();
-
- LoadMeshData(text);
-
- Vector3[] newVerts = new Vector3[faceData.Count];
- Vector2[] newUVs = new Vector2[faceData.Count];
- Vector3[] newNormals = new Vector3[faceData.Count];
-
- /* The following foreach loops through the facedata and assigns the appropriate vertex, uv, or normal
- * for the appropriate Unity mesh array.
- */
- for (int i = 0; i < faceData.Count; i++) {
- newVerts[i] = vertices[faceData[i].x - 1];
- if (faceData[i].y >= 1)
- newUVs[i] = uv[faceData[i].y - 1];
-
- if (faceData[i].z >= 1)
- newNormals[i] = normals[faceData[i].z - 1];
- }
+ private void LoadMeshData(string text)
+ {
+ var sb = new StringBuilder();
+ var start = 0;
+ string objectName = null;
+ var faceDataCount = 0;
- Mesh mesh = new Mesh();
+ var sbFloat = new StringBuilder();
- mesh.vertices = newVerts;
- mesh.uv = newUVs;
- mesh.normals = newNormals;
- mesh.triangles = triangles.ToArray();
+ for (var i = 0; i < text.Length; i++)
+ {
+ if (text[i] != '\n') continue;
- mesh.RecalculateBounds();
- //mesh.Optimize();
+ sb.Remove(0, sb.Length);
- return mesh;
- }
+ // Start +1 for whitespace '\n'
+ sb.Append(text, start + 1, i - start);
+ start = i;
- private void LoadMeshData(string text) {
-
- StringBuilder sb = new StringBuilder();
- int start = 0;
- string objectName = null;
- int faceDataCount = 0;
-
- StringBuilder sbFloat = new StringBuilder();
-
- for (int i = 0; i < text.Length; i++) {
- if (text[i] == '\n') {
- sb.Remove(0, sb.Length);
-
- // Start +1 for whitespace '\n'
- sb.Append(text, start + 1, i - start);
- start = i;
-
- if (sb[0] == 'o' && sb[1] == ' ') {
- sbFloat.Remove(0, sbFloat.Length);
- int j = 2;
- while (j < sb.Length) {
- objectName += sb[j];
- j++;
- }
- } else if (sb[0] == 'v' && sb[1] == ' ') // Vertices
- {
- int splitStart = 2;
-
- vertices.Add(new Vector3(GetFloat(sb, ref splitStart, ref sbFloat),
- GetFloat(sb, ref splitStart, ref sbFloat), GetFloat(sb, ref splitStart, ref sbFloat)));
- } else if (sb[0] == 'v' && sb[1] == 't' && sb[2] == ' ') // UV
- {
- int splitStart = 3;
-
- uv.Add(new Vector2(GetFloat(sb, ref splitStart, ref sbFloat),
- GetFloat(sb, ref splitStart, ref sbFloat)));
- } else if (sb[0] == 'v' && sb[1] == 'n' && sb[2] == ' ') // Normals
- {
- int splitStart = 3;
-
- normals.Add(new Vector3(GetFloat(sb, ref splitStart, ref sbFloat),
- GetFloat(sb, ref splitStart, ref sbFloat), GetFloat(sb, ref splitStart, ref sbFloat)));
- } else if (sb[0] == 'f' && sb[1] == ' ') {
- int splitStart = 2;
-
- int j = 1;
- intArray.Clear();
- int info = 0;
- // Add faceData, a face can contain multiple triangles, facedata is stored in following order vert, uv, normal. If uv or normal are / set it to a 0
- while (splitStart < sb.Length && char.IsDigit(sb[splitStart])) {
- faceData.Add(new Vector3Int(GetInt(sb, ref splitStart, ref sbFloat),
- GetInt(sb, ref splitStart, ref sbFloat), GetInt(sb, ref splitStart, ref sbFloat)));
- j++;
-
- intArray.Add(faceDataCount);
- faceDataCount++;
- }
-
- info += j;
- j = 1;
- while (j + 2 < info
- ) //Create triangles out of the face data. There will generally be more than 1 triangle per face.
- {
- triangles.Add(intArray[0]);
- triangles.Add(intArray[j]);
- triangles.Add(intArray[j + 1]);
-
- j++;
- }
- }
- }
+ switch (sb[0])
+ {
+ case 'o' when sb[1] == ' ':
+ {
+ sbFloat.Remove(0, sbFloat.Length);
+ var j = 2;
+ while (j < sb.Length)
+ {
+ objectName += sb[j];
+ j++;
}
- }
- private float GetFloat(StringBuilder sb, ref int start, ref StringBuilder sbFloat) {
- sbFloat.Remove(0, sbFloat.Length);
- while (start < sb.Length &&
- (char.IsDigit(sb[start]) || sb[start] == '-' || sb[start] == '.')) {
- sbFloat.Append(sb[start]);
- start++;
+ break;
+ }
+ // Vertices
+ case 'v' when sb[1] == ' ':
+ {
+ var splitStart = 2;
+
+ _vertices.Add(new Vector3(GetFloat(sb, ref splitStart, ref sbFloat),
+ GetFloat(sb, ref splitStart, ref sbFloat), GetFloat(sb, ref splitStart, ref sbFloat)));
+ break;
+ }
+ // UV
+ case 'v' when sb[1] == 't' && sb[2] == ' ':
+ {
+ var splitStart = 3;
+
+ _uv.Add(new Vector2(GetFloat(sb, ref splitStart, ref sbFloat),
+ GetFloat(sb, ref splitStart, ref sbFloat)));
+ break;
+ }
+ // Normals
+ case 'v' when sb[1] == 'n' && sb[2] == ' ':
+ {
+ var splitStart = 3;
+
+ _normals.Add(new Vector3(GetFloat(sb, ref splitStart, ref sbFloat),
+ GetFloat(sb, ref splitStart, ref sbFloat), GetFloat(sb, ref splitStart, ref sbFloat)));
+ break;
+ }
+ case 'f' when sb[1] == ' ':
+ {
+ var splitStart = 2;
+
+ var j = 1;
+ _intArray.Clear();
+ var info = 0;
+ // Add faceData, a face can contain multiple triangles, facedata is stored in following order vert, uv, normal. If uv or normal are / set it to a 0
+ while (splitStart < sb.Length && char.IsDigit(sb[splitStart]))
+ {
+ _faceData.Add(new Vector3Int(GetInt(sb, ref splitStart, ref sbFloat),
+ GetInt(sb, ref splitStart, ref sbFloat), GetInt(sb, ref splitStart, ref sbFloat)));
+ j++;
+
+ _intArray.Add(faceDataCount);
+ faceDataCount++;
}
- start++;
+ info += j;
+ j = 1;
+ while (j + 2 < info
+ ) //Create triangles out of the face data. There will generally be more than 1 triangle per face.
+ {
+ _triangles.Add(_intArray[0]);
+ _triangles.Add(_intArray[j]);
+ _triangles.Add(_intArray[j + 1]);
+
+ j++;
+ }
- return ParseFloat(sbFloat);
+ break;
+ }
}
+ }
+ }
- private int GetInt(StringBuilder sb, ref int start, ref StringBuilder sbInt) {
- sbInt.Remove(0, sbInt.Length);
- while (start < sb.Length &&
- (char.IsDigit(sb[start]))) {
- sbInt.Append(sb[start]);
- start++;
- }
+ private float GetFloat(StringBuilder sb, ref int start, ref StringBuilder sbFloat)
+ {
+ sbFloat.Remove(0, sbFloat.Length);
+ while (start < sb.Length &&
+ (char.IsDigit(sb[start]) || sb[start] == '-' || sb[start] == '.'))
+ {
+ sbFloat.Append(sb[start]);
+ start++;
+ }
- start++;
+ start++;
- return IntParseFast(sbInt);
- }
+ return ParseFloat(sbFloat);
+ }
+ private int GetInt(StringBuilder sb, ref int start, ref StringBuilder sbInt)
+ {
+ sbInt.Remove(0, sbInt.Length);
+ while (start < sb.Length &&
+ (char.IsDigit(sb[start])))
+ {
+ sbInt.Append(sb[start]);
+ start++;
+ }
- private static float[] GenerateLookupTable() {
- var result = new float[(-MIN_POW_10 + MAX_POW_10) * 10];
- for (int i = 0; i < result.Length; i++)
- result[i] = (float) ((i / NUM_POWS_10) *
- Mathf.Pow(10, i % NUM_POWS_10 + MIN_POW_10));
- return result;
- }
+ start++;
- private float ParseFloat(StringBuilder value) {
- float result = 0;
- bool negate = false;
- int len = value.Length;
- int decimalIndex = value.Length;
- for (int i = len - 1; i >= 0; i--)
- if (value[i] == '.') {
- decimalIndex = i;
- break;
- }
-
- int offset = -MIN_POW_10 + decimalIndex;
- for (int i = 0; i < decimalIndex; i++)
- if (i != decimalIndex && value[i] != '-')
- result += pow10[(value[i] - '0') * NUM_POWS_10 + offset - i - 1];
- else if (value[i] == '-')
- negate = true;
- for (int i = decimalIndex + 1; i < len; i++)
- if (i != decimalIndex)
- result += pow10[(value[i] - '0') * NUM_POWS_10 + offset - i];
- if (negate)
- result = -result;
- return result;
- }
+ return IntParseFast(sbInt);
+ }
- private int IntParseFast(StringBuilder value) {
- // An optimized int parse method.
- int result = 0;
- for (int i = 0; i < value.Length; i++) {
- result = 10 * result + (value[i] - 48);
- }
- return result;
+ private static float[] GenerateLookupTable()
+ {
+ var result = new float[(-MIN_POW_10 + MAX_POW_10) * 10];
+ for (var i = 0; i < result.Length; i++)
+ result[i] = (float) i / NUM_POWS_10 * Mathf.Pow(10, i % NUM_POWS_10 + MIN_POW_10);
+ return result;
+ }
+
+ private static float ParseFloat(StringBuilder value)
+ {
+ float result = 0;
+ var negate = false;
+ var len = value.Length;
+ var decimalIndex = value.Length;
+ for (var i = len - 1; i >= 0; i--)
+ if (value[i] == '.')
+ {
+ decimalIndex = i;
+ break;
}
+
+ var offset = -MIN_POW_10 + decimalIndex;
+ for (var i = 0; i < decimalIndex; i++)
+ if (i != decimalIndex && value[i] != '-')
+ result += Pow10[(value[i] - '0') * NUM_POWS_10 + offset - i - 1];
+ else if (value[i] == '-')
+ negate = true;
+ for (var i = decimalIndex + 1; i < len; i++)
+ if (i != decimalIndex)
+ result += Pow10[(value[i] - '0') * NUM_POWS_10 + offset - i];
+ if (negate)
+ result = -result;
+ return result;
}
- public sealed class Vector3Int {
- public int x { get; set; }
- public int y { get; set; }
- public int z { get; set; }
+ private static int IntParseFast(StringBuilder value)
+ {
+ // An optimized int parse method.
+ var result = 0;
+ for (var i = 0; i < value.Length; i++)
+ {
+ result = 10 * result + (value[i] - 48);
+ }
- public Vector3Int() { }
+ return result;
+ }
+ }
- public Vector3Int(int x, int y, int z) {
- this.x = x;
- this.y = y;
- this.z = z;
- }
+ public sealed class Vector3Int
+ {
+ public int X { get; set; }
+ public int Y { get; set; }
+ public int Z { get; set; }
+
+ public Vector3Int()
+ {
+ }
+
+ public Vector3Int(int x, int y, int z)
+ {
+ X = x;
+ Y = y;
+ Z = z;
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/ObjImport/ObjLoader.cs b/Assets/Scripts/ObjImport/ObjLoader.cs
index 8e9a1902..ecc39846 100644
--- a/Assets/Scripts/ObjImport/ObjLoader.cs
+++ b/Assets/Scripts/ObjImport/ObjLoader.cs
@@ -2,70 +2,35 @@
using UnityEngine;
using UnityEngine.Networking;
-namespace DefaultNamespace.ObjImport {
- public class ObjLoader : MonoBehaviour{
-
-
-
- void Start() {
-
- }
-
- public void Load(string url) {
- StartCoroutine(LoadModel(url));
- }
-
- private IEnumerator LoadModel(string url) {
- Debug.Log("Loading "+url);
- using (var request = UnityWebRequest.Get(url)) {
- yield return request.SendWebRequest();
- if (!(request.isNetworkError || request.isHttpError)) {
- Debug.Log(request.downloadHandler.text);
- Mesh holderMesh = new Mesh();
-
- holderMesh = FastObjImporter.Instance.ImportFile(request.downloadHandler.text);
-
- MeshRenderer renderer = gameObject.AddComponent();
- MeshFilter filter = gameObject.AddComponent();
- filter.mesh = holderMesh;
- } else {
- Debug.LogError(request.error);
- }
- }
- }
-
-
+namespace ObjImport
+{
+ public class ObjLoader : MonoBehaviour
+ {
+ public void Load(string url)
+ {
+ StartCoroutine(LoadModel(url));
+ }
+
+ private IEnumerator LoadModel(string url)
+ {
+ Debug.Log("Loading " + url);
+ using var request = UnityWebRequest.Get(url);
+
+ yield return request.SendWebRequest();
+ if (!(request.result == UnityWebRequest.Result.ConnectionError ||
+ request.result == UnityWebRequest.Result.ProtocolError))
+ {
+ Debug.Log(request.downloadHandler.text);
+ var holderMesh = FastObjImporter.Instance.ImportFile(request.downloadHandler.text);
+
+ gameObject.AddComponent();
+ var filter = gameObject.AddComponent();
+ filter.mesh = holderMesh;
+ }
+ else
+ {
+ Debug.LogError(request.error);
+ }
+ }
}
-
- /*
- * private MeshRenderer _renderer;
-
- // Use this for initialization
- void Start () {
- _renderer = GetComponent();
- //StartCoroutine(LoadImage());
- }
-
- private IEnumerator LoadImage(string url)
- {
- Texture2D tex = new Texture2D(4, 4, TextureFormat.DXT1, false);
- using (WWW www = new WWW(url))
- {
- yield return www;
- www.LoadImageIntoTexture(tex);
- GetComponent().material.mainTexture = tex;
- }
-
- _renderer.material.mainTexture = tex;
- }
-
- ///
- ///
- ///
- ///
- public void ReloadImage(string url)
- {
- StartCoroutine(LoadImage(url));
- }
- */
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS.meta b/Assets/Scripts/Unibas/DBIS.meta
index 2f6e8a8f..201cb7c0 100644
--- a/Assets/Scripts/Unibas/DBIS.meta
+++ b/Assets/Scripts/Unibas/DBIS.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
-guid: 7c4568b525c146d1819568ed95ef9836
-timeCreated: 1546810889
\ No newline at end of file
+fileFormatVersion: 2
+guid: 76459217530d4b59b6965923f134c3ce
+timeCreated: 1626864074
\ No newline at end of file
diff --git a/Assets/DynamicModelling.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling.meta
similarity index 100%
rename from Assets/DynamicModelling.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling.meta
diff --git a/Assets/DynamicModelling/Scripts/ModelContainer.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelContainer.cs
similarity index 51%
rename from Assets/DynamicModelling/Scripts/ModelContainer.cs
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelContainer.cs
index 37eb31ab..af933b5b 100644
--- a/Assets/DynamicModelling/Scripts/ModelContainer.cs
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelContainer.cs
@@ -3,8 +3,8 @@
namespace Unibas.DBIS.DynamicModelling
{
- public class ModelContainer : MonoBehaviour
- {
- public IModel Model;
- }
+ public class ModelContainer : MonoBehaviour
+ {
+ public IModel Model;
+ }
}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/ModelContainer.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelContainer.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/ModelContainer.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelContainer.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelFactory.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelFactory.cs
new file mode 100644
index 00000000..5cc29831
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelFactory.cs
@@ -0,0 +1,592 @@
+using System;
+using Unibas.DBIS.DynamicModelling.Models;
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling
+{
+ public static class ModelFactory
+ {
+ ///
+ /// Quad of sorts:
+ ///
+ /// c---d
+ /// | |
+ /// a---b
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static GameObject CreateFreeformQuad(Vector3 a, Vector3 b, Vector3 c, Vector3 d,
+ Material material = null)
+ {
+ var go = new GameObject("FreeformQuad");
+ var meshFilter = go.AddComponent();
+ var meshRenderer = go.AddComponent();
+ var mesh = meshFilter.mesh;
+ var vertices = new[]
+ {
+ a, b, c, d
+ };
+ mesh.vertices = vertices;
+
+ var tri = new int[6];
+
+ tri[0] = 0;
+ tri[1] = 2;
+ tri[2] = 1;
+
+ tri[3] = 2;
+ tri[4] = 3;
+ tri[5] = 1;
+
+ mesh.triangles = tri;
+
+ /*
+ Vector3[] normals = new Vector3[4];
+
+ normals[0] = -Vector3.forward;
+ normals[1] = -Vector3.forward;
+ normals[2] = -Vector3.forward;
+ normals[3] = -Vector3.forward;
+
+ mesh.normals = normals;*/
+
+ var uv = new Vector2[4];
+
+ /*
+ float xUnit = 1;
+ float yUnit = 1;
+
+ if (width > height)
+ {
+ xUnit = width / height;
+ }
+ else
+ {
+ yUnit = height / width;
+ }
+ */
+
+ // TODO
+
+ uv[0] = new Vector2(0, 0);
+ uv[1] = new Vector2(1, 0);
+ uv[2] = new Vector2(0, 1);
+ uv[3] = new Vector2(1, 1);
+
+ mesh.uv = uv;
+
+ mesh.RecalculateBounds();
+ mesh.RecalculateNormals();
+ mesh.RecalculateTangents();
+
+ if (material != null)
+ {
+ var mat = meshRenderer.material;
+ mat.CopyPropertiesFromMaterial(material);
+ //meshRenderer.material.SetTextureScale("_MainTex", new Vector2(1,1));
+ mat.name = material.name + "(Instance)";
+ }
+ else
+ {
+ meshRenderer.material = new Material(Shader.Find("Standard"));
+ meshRenderer.material.color = Color.white;
+ }
+
+
+ return go;
+ }
+
+ ///
+ /// Creates a wall between two positions
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static GameObject CreatePositionedWall(Vector3 start, Vector3 end, float height,
+ string materialName = null)
+ {
+ var width = Vector3.Distance(start, end);
+ var a = Vector3.Angle(end - start, Vector3.right);
+ var go = new GameObject("PositionedWall");
+ var wall = CreateWall(width, height, materialName);
+
+ wall.transform.parent = go.transform;
+ wall.transform.position = Vector3.zero;
+ wall.transform.Rotate(Vector3.up, -a);
+ go.transform.position = start;
+ return go;
+ }
+
+ public static GameObject CreateWall(WallModel model)
+ {
+ var width = Vector3.Distance(model.start, model.end);
+ var a = Vector3.Angle(model.start - model.end, Vector3.right);
+ var go = new GameObject("PositionedWall");
+ var wall = CreateWall(width, model.height, model.material);
+
+ wall.transform.parent = go.transform;
+ wall.transform.position = Vector3.zero;
+ wall.transform.Rotate(Vector3.up, -a);
+ go.transform.position = model.start;
+ go.AddComponent().Model = model;
+ return go;
+ }
+
+
+ ///
+ ///
+ ///
+ /// center of room
+ ///
+ ///
+ /// 0 floor, 1 ceiling, 2 north (pos z), 3 east (pos x), 4 south (neg z), 5 west (neg x)
+ ///
+ public static GameObject CreateCuboidRoom(Vector3 position, float size, float height, string[] materialNames)
+ {
+ var root = new GameObject("SquareRoom");
+
+ var halfSize = size / 2f;
+
+ // North wall
+ var north = CreateWall(size, height, materialNames[2]);
+ north.name = "NorthWall";
+ north.transform.parent = root.transform;
+ north.transform.position = new Vector3(-halfSize, 0, halfSize);
+ // East wall
+ var east = CreateWall(size, height, materialNames[3]);
+ east.name = "EastWall";
+ east.transform.parent = root.transform;
+ east.transform.position = new Vector3(halfSize, 0, halfSize);
+ east.transform.Rotate(Vector3.up, 90);
+ // South wall
+ var south = CreateWall(size, height, materialNames[4]);
+ south.name = "SouthWall";
+ south.transform.parent = root.transform;
+ south.transform.position = new Vector3(halfSize, 0, -halfSize);
+ south.transform.Rotate(Vector3.up, 180);
+ // West wall
+ var west = CreateWall(size, height, materialNames[5]);
+ west.name = "WestWall";
+ west.transform.parent = root.transform;
+ west.transform.position = new Vector3(-halfSize, 0, -halfSize);
+ west.transform.Rotate(Vector3.up, 270);
+
+ // Floor
+ var floorAnchor = new GameObject("FloorAnchor");
+ floorAnchor.transform.parent = root.transform;
+
+ var floor = CreateWall(size, size, materialNames[0]);
+ floor.name = "Floor";
+ floor.transform.parent = floorAnchor.transform;
+ // North Aligned
+ floorAnchor.transform.position = new Vector3(-halfSize, 0, -halfSize);
+ floorAnchor.transform.Rotate(Vector3.right, 90);
+ // East Aligned
+ //floorAnchor.transform.position = new Vector3(-halfSize, 0, halfSize);
+ //floorAnchor.transform.Rotate(Vector3f.back,90);
+
+ // Ceiling
+ var ceilingAnchor = new GameObject("CeilingAnchor");
+ ceilingAnchor.transform.parent = root.transform;
+
+ var ceiling = CreateWall(size, size, materialNames[1]);
+ ceiling.name = "Ceiling";
+ ceiling.transform.parent = ceilingAnchor.transform;
+
+ root.transform.position = position;
+ // North Aligned
+ ceilingAnchor.transform.position = new Vector3(halfSize, height, halfSize);
+ ceilingAnchor.transform.Rotate(Vector3.right, -90);
+ // East Aligned
+ //ceilingAnchor.transform.position = new Vector3(halfSize, height, -halfSize);
+ //ceilingAnchor.transform.Rotate( Vector3.back, -90);
+
+ return root;
+ }
+
+ public static GameObject CreateCuboidRoom(CuboidRoomModel model)
+ {
+ var root = new GameObject("CuboidRoom");
+
+ var halfSize = model.size / 2f;
+
+ // North wall
+ var north = CreateWall(model.size, model.height, model.northMaterial);
+ north.name = "NorthWall";
+ north.transform.parent = root.transform;
+ north.transform.position = new Vector3(-halfSize, 0, halfSize);
+ // East wall
+ var east = CreateWall(model.size, model.height, model.eastMaterial);
+ east.name = "EastWall";
+ east.transform.parent = root.transform;
+ east.transform.position = new Vector3(halfSize, 0, halfSize);
+ east.transform.Rotate(Vector3.up, 90);
+ // South wall
+ var south = CreateWall(model.size, model.height, model.southMaterial);
+ south.name = "SouthWall";
+ south.transform.parent = root.transform;
+ south.transform.position = new Vector3(halfSize, 0, -halfSize);
+ south.transform.Rotate(Vector3.up, 180);
+ // West wall
+ var west = CreateWall(model.size, model.height, model.westMaterial);
+ west.name = "WestWall";
+ west.transform.parent = root.transform;
+ west.transform.position = new Vector3(-halfSize, 0, -halfSize);
+ west.transform.Rotate(Vector3.up, 270);
+
+ // Floor
+ var floorAnchor = new GameObject("FloorAnchor");
+ floorAnchor.transform.parent = root.transform;
+
+ var floor = CreateWall(model.size, model.size, model.floorMaterial);
+ floor.name = "Floor";
+ floor.transform.parent = floorAnchor.transform;
+ // North Aligned
+ floorAnchor.transform.position = new Vector3(-halfSize, 0, -halfSize);
+ floorAnchor.transform.Rotate(Vector3.right, 90);
+ // East Aligned
+ //floorAnchor.transform.position = new Vector3(-halfSize, 0, halfSize);
+ //floorAnchor.transform.Rotate(Vector3f.back,90);
+
+ // Ceiling
+ var ceilingAnchor = new GameObject("CeilingAnchor");
+ ceilingAnchor.transform.parent = root.transform;
+
+ var ceiling = CreateWall(model.size, model.size, model.ceilingMaterial);
+ ceiling.name = "Ceiling";
+ ceiling.transform.parent = ceilingAnchor.transform;
+
+
+ // North Aligned
+ ceilingAnchor.transform.position = new Vector3(-halfSize, model.height, halfSize);
+ ceilingAnchor.transform.Rotate(Vector3.right, -90);
+ // East Aligned
+ //ceilingAnchor.transform.position = new Vector3(halfSize, height, -halfSize);
+ //ceilingAnchor.transform.Rotate( Vector3.back, -90);
+
+ root.transform.position = model.position;
+
+ root.AddComponent().Model = model;
+ return root;
+ }
+
+
+ ///
+ /// Creates a wall game object to position later.
+ /// The wall is flat and always "upright", e.g. the normal of the mesh is negative z.
+ /// Use the resulting gameobject to rotate and re-position the wall.
+ ///
+ /// The width of the wall in Unity units
+ /// The height of the wall in Unity units
+ /// The wall's material name. Expects the material file to be at Resources/Materials/materalName. If no present, the word Material will be suffixed.
+ ///
+ public static GameObject CreateWall(float width, float height, string materialName = null)
+ {
+ return CreateWall(width, height, LoadMaterialByName(materialName));
+ }
+
+ private static Material LoadMaterialByName(string materialName)
+ {
+ if (!string.IsNullOrEmpty(materialName))
+ {
+ if (!materialName.EndsWith("Material"))
+ {
+ materialName = materialName + "Material";
+ }
+
+ return Resources.Load("Materials/" + materialName);
+ }
+
+ return null;
+ }
+
+ public static GameObject CreateWall(float width, float height, Material mat = null)
+ {
+ var go = new GameObject("Wall");
+ var meshFilter = go.AddComponent();
+ var meshRenderer = go.AddComponent();
+ var mesh = meshFilter.mesh;
+ var vertices = new Vector3[4];
+ vertices[0] = new Vector3(0, 0, 0);
+ vertices[1] = new Vector3(width, 0, 0);
+ vertices[2] = new Vector3(0, height, 0);
+ vertices[3] = new Vector3(width, height, 0);
+
+ mesh.vertices = vertices;
+
+ var tri = new int[6];
+
+ tri[0] = 0;
+ tri[1] = 2;
+ tri[2] = 1;
+
+ tri[3] = 2;
+ tri[4] = 3;
+ tri[5] = 1;
+
+ mesh.triangles = tri;
+
+ var normals = new Vector3[4];
+
+ normals[0] = -Vector3.forward;
+ normals[1] = -Vector3.forward;
+ normals[2] = -Vector3.forward;
+ normals[3] = -Vector3.forward;
+
+ mesh.normals = normals;
+
+ var uv = new Vector2[4];
+
+ float xUnit = 1;
+ float yUnit = 1;
+
+ if (width > height)
+ {
+ xUnit = width / height;
+ }
+ else
+ {
+ yUnit = height / width;
+ }
+
+ uv[0] = new Vector2(0, 0);
+ uv[1] = new Vector2(xUnit, 0);
+ uv[2] = new Vector2(0, yUnit);
+ uv[3] = new Vector2(xUnit, yUnit);
+
+ mesh.uv = uv;
+
+ mesh.RecalculateBounds();
+ mesh.RecalculateNormals();
+ mesh.RecalculateTangents();
+
+ if (mat != null)
+ {
+ var material = meshRenderer.material;
+ material.CopyPropertiesFromMaterial(mat);
+ //meshRenderer.material.SetTextureScale("_MainTex", new Vector2(1,1));
+ material.name = mat.name;
+ }
+ else
+ {
+ meshRenderer.material = new Material(Shader.Find("Standard"));
+ meshRenderer.material.color = Color.white;
+ }
+
+ // TODO Highly experimental!
+
+ var boxCollider = go.AddComponent();
+ boxCollider.size = new Vector3(width, height, 0.0001f);
+
+ return go;
+ }
+
+
+ private static Vector3 CalculateUnit(Vector3 dimensions)
+ {
+ var m = Math.Max(Math.Max(dimensions.x, dimensions.y), dimensions.z);
+ return new Vector3(m / dimensions.x, m / dimensions.y, m / dimensions.z);
+ }
+
+ private static Vector2 CalculateUnit(float width, float height)
+ {
+ return CalculateNormalizedToLeastSquareUnit(width, height);
+ }
+
+ private static Vector2 CalculateNormalizedToLeastSquareUnit(float width, float height)
+ {
+ float xUnit = 1,
+ yUnit = 1;
+
+ if (width > height)
+ {
+ xUnit = width / height;
+ }
+ else
+ {
+ yUnit = height / width;
+ }
+
+ return new Vector2(xUnit, yUnit);
+ }
+
+ private static Vector2 CalculateNormalizedToOneUnit(float width, float height)
+ {
+ return new Vector2(1f / width, 1f / height);
+ }
+
+ public static GameObject CreateCuboid(CuboidModel cuboid)
+ {
+ var cub = CreateCuboid(cuboid.width, cuboid.height, cuboid.depth);
+ var meshRenderer = cub.GetComponent();
+ if (cuboid.material != null)
+ {
+ meshRenderer.material.CopyPropertiesFromMaterial(cuboid.material);
+ }
+ else
+ {
+ var material = new Material(Shader.Find("Standard"));
+ meshRenderer.material = material;
+ material.name = "Default";
+ material.color = Color.white;
+ }
+
+ cub.AddComponent().Model = cuboid;
+ return cub;
+ }
+
+ public static GameObject CreateCuboid(float width, float height, float depth)
+ {
+ var go = new GameObject("Cuboid");
+ var meshFilter = go.AddComponent();
+ var meshRenderer = go.AddComponent();
+ var mesh = meshFilter.mesh;
+
+ // The naming is always from the front and downwards looking! e.g. From the back, left and right is swapped
+ var frontLeftDown = Vector3.zero;
+ var frontRightDown = new Vector3(width, 0, 0);
+ var frontLeftUp = new Vector3(0, height, 0);
+ var frontRightUp = new Vector3(width, height, 0);
+
+ var backLeftDown = new Vector3(0, 0, depth);
+ var backRightDown = new Vector3(width, 0, depth);
+ var backLeftUp = new Vector3(0, height, depth);
+ var backRightUp = new Vector3(width, height, depth);
+
+ var vertices = new[]
+ {
+ // Front
+ frontLeftDown, frontRightDown, frontLeftUp, frontRightUp,
+ // Back
+ backLeftDown, backRightDown, backLeftUp, backRightUp,
+ // Left
+ backLeftDown, frontLeftDown, backLeftUp, frontLeftUp,
+ // Right
+ frontRightDown, backRightDown, frontRightUp, backRightUp,
+ // Up
+ frontLeftUp, frontRightUp, backLeftUp, backRightUp,
+ // Down
+ frontLeftDown, frontRightDown, backLeftDown, backRightDown
+ };
+ mesh.vertices = vertices;
+
+ var triangles = new[]
+ {
+ // Front
+ 0, 2, 1, 2, 3, 1,
+ // Back
+ 5, 7, 4, 7, 6, 4,
+ // Left
+ 8, 10, 9, 10, 11, 9,
+ // Right
+ 12, 14, 13, 14, 15, 13,
+ // Up
+ 16, 18, 17, 18, 19, 17,
+ // Down
+ 21, 23, 20, 23, 22, 20
+ };
+ mesh.triangles = triangles;
+
+ var normals = new[]
+ {
+ // Front
+ -Vector3.forward, -Vector3.forward, -Vector3.forward, -Vector3.forward,
+ // Back
+ -Vector3.back, -Vector3.back, -Vector3.back, -Vector3.back,
+ // Left
+ -Vector3.left, -Vector3.left, -Vector3.left, -Vector3.left,
+ // Right
+ -Vector3.right, -Vector3.right, -Vector3.right, -Vector3.right,
+ // Up
+ -Vector3.up, -Vector3.up, -Vector3.up, -Vector3.up,
+ // Down
+ -Vector3.down, -Vector3.down, -Vector3.down, -Vector3.down
+ };
+ mesh.normals = normals;
+
+
+ /*
+ * Unwrapping of mesh for uf like following
+ * U
+ * LFRB
+ * D
+ */
+
+ var u = Math.Min(Math.Min(width, height), depth);
+ // var w = width / u;
+ // var h = height / u;
+ // var d = depth / u;
+
+ var uvUnits = new Vector2(u, u);
+ var fOff = uvUnits.x * depth;
+ var rOff = uvUnits.x * width + fOff;
+ var bOff = uvUnits.x * depth + rOff;
+ var uOff = uvUnits.y * depth + uvUnits.y * height;
+ var uv = new[]
+ {
+ // Front
+ new Vector2(fOff, uvUnits.y * depth), new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth),
+ new Vector2(fOff, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth + uvUnits.y * height),
+
+ // Back
+ new Vector2(bOff, uvUnits.y * depth), new Vector2(bOff + uvUnits.x * width, uvUnits.y * depth),
+ new Vector2(bOff, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(bOff + uvUnits.x * width, uvUnits.y * depth + uvUnits.y * height),
+
+ // Left
+ new Vector2(0, uvUnits.y * depth), new Vector2(uvUnits.x * depth, uvUnits.y * depth),
+ new Vector2(0, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(uvUnits.x * depth, uvUnits.y * depth + uvUnits.y * height),
+ // Right
+ new Vector2(rOff, uvUnits.y * depth), new Vector2(rOff + uvUnits.x * depth, uvUnits.y * depth),
+ new Vector2(rOff, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(rOff + uvUnits.x * depth, uvUnits.y * depth + uvUnits.y * height),
+ // Up
+ new Vector2(fOff, uOff), new Vector2(fOff + uvUnits.x * width, uOff),
+ new Vector2(fOff, uOff + uvUnits.y * depth),
+ new Vector2(fOff + uvUnits.x * width, uOff + uvUnits.y * depth),
+
+ // Down
+ new Vector2(fOff, 0), new Vector2(fOff + uvUnits.x * width, 0), new Vector2(fOff, uvUnits.y * depth),
+ new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth)
+ };
+
+ mesh.uv = uv;
+
+ mesh.RecalculateBounds();
+ mesh.RecalculateNormals();
+ mesh.RecalculateTangents();
+
+ var material = new Material(Shader.Find("Standard"));
+ meshRenderer.material = material;
+ material.name = "Default";
+ material.color = Color.green;
+
+ return go;
+ }
+
+ public static GameObject CreateModel(ComplexCuboidModel model)
+ {
+ var root = new GameObject("ComplexCuboid");
+ for (var i = 0; i < model.Size(); i++)
+ {
+ var pos = model.GetPositionAt(i);
+ var cuboid = model.GetCuboidAt(i);
+ var cub = CreateCuboid(cuboid);
+ cub.transform.parent = root.transform;
+ cub.transform.position = pos;
+ }
+
+ root.AddComponent().Model = model;
+ return root;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/ModelFactory.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelFactory.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/ModelFactory.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/ModelFactory.cs.meta
diff --git a/Assets/DynamicModelling/Scripts/Models.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/ComplexCuboidModel.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/ComplexCuboidModel.cs
new file mode 100644
index 00000000..6c67ed78
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/ComplexCuboidModel.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling.Models
+{
+ ///
+ /// Represents a complex model, based on cuboids.
+ /// Each cuboid has a position relative to the model's origin.
+ ///
+ /// This class is basically a list of (pos, cuboidmodel) tuples.
+ ///
+ [Serializable]
+ public class ComplexCuboidModel : IModel
+ {
+ private List _positions = new List();
+ private List _cuboids = new List();
+
+ public ComplexCuboidModel(Vector3[] positions, CuboidModel[] models)
+ {
+ if (positions.Length != models.Length)
+ {
+ throw new ArgumentException("Must have equal amount of positions and cuboids");
+ }
+
+ _positions.AddRange(positions);
+ _cuboids.AddRange(models);
+ }
+
+ public ComplexCuboidModel()
+ {
+ }
+
+ public void Add(Vector3 position, CuboidModel cuboid)
+ {
+ _positions.Add(position);
+ _cuboids.Add(cuboid);
+ }
+
+ public Vector3 GetPositionAt(int index)
+ {
+ return _positions[index];
+ }
+
+ public CuboidModel GetCuboidAt(int index)
+ {
+ return _cuboids[index];
+ }
+
+ public int Size()
+ {
+ return _positions.Count;
+ }
+
+ public bool IsEmpty()
+ {
+ return _cuboids.Count == 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/ComplexCuboidModel.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/ComplexCuboidModel.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models/ComplexCuboidModel.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/ComplexCuboidModel.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidModel.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidModel.cs
new file mode 100644
index 00000000..0ddae3dd
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidModel.cs
@@ -0,0 +1,51 @@
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling.Models
+{
+ ///
+ /// Abstract cuboid representation.
+ /// A cuboid consists of three parameters:
+ /// Width, Height and Depth.
+ /// In Unity3d these parameters are along the x, y and z axis.
+ ///
+ ///
+ [System.Serializable]
+ public class CuboidModel : IModel
+ {
+ ///
+ /// The width of the cuboid (along the X axis) in standard units.
+ ///
+ public float width;
+
+ ///
+ /// The height of the cuboid (along the Y axis) in standard units.
+ ///
+ public float height;
+
+ ///
+ /// The depth of the cuboid (along the Z axis) in standard units.
+ ///
+ public float depth;
+
+ ///
+ /// The cuboid's material, iff any.
+ ///
+ public Material material;
+
+ ///
+ /// Creates a new cuboid based on its width, height and depth.
+ /// Also optionally with a material
+ ///
+ /// The width of the cuboid in standard units. Width is along the x axis.
+ /// The height of the cuboid in standard units. Height is along the y axis.
+ /// The depth of the cuboid in standard units. Depth is along the z axis.
+ /// The optional material of the cuboid. Otherwise it will be white
+ public CuboidModel(float width, float height, float depth, Material material = null)
+ {
+ this.width = width;
+ this.height = height;
+ this.depth = depth;
+ this.material = material;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/CuboidModel.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidModel.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models/CuboidModel.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidModel.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidRoomModel.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidRoomModel.cs
new file mode 100644
index 00000000..a18b66d6
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidRoomModel.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling.Models
+{
+ [System.Serializable]
+ public class CuboidRoomModel : IModel
+ {
+ public Vector3 position;
+ public float size;
+ public float height;
+
+ public Material floorMaterial;
+ public Material ceilingMaterial;
+ public Material northMaterial;
+ public Material eastMaterial;
+ public Material southMaterial;
+ public Material westMaterial;
+
+ public CuboidRoomModel(Vector3 position, float size, float height)
+ {
+ this.position = position;
+ this.size = size;
+ this.height = height;
+ }
+
+ public CuboidRoomModel(Vector3 position, float size, float height, Material floorMaterial = null,
+ Material ceilingMaterial = null, Material northMaterial = null, Material eastMaterial = null,
+ Material southMaterial = null, Material westMaterial = null)
+ {
+ this.position = position;
+ this.size = size;
+ this.height = height;
+ this.floorMaterial = floorMaterial;
+ this.ceilingMaterial = ceilingMaterial;
+ this.northMaterial = northMaterial;
+ this.eastMaterial = eastMaterial;
+ this.southMaterial = southMaterial;
+ this.westMaterial = westMaterial;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/CuboidRoomModel.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidRoomModel.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models/CuboidRoomModel.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/CuboidRoomModel.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/IModel.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/IModel.cs
new file mode 100644
index 00000000..2f6f43e0
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/IModel.cs
@@ -0,0 +1,6 @@
+namespace Unibas.DBIS.DynamicModelling.Models
+{
+ public interface IModel
+ {
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/IModel.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/IModel.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models/IModel.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/IModel.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/PolygonRoomModel.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/PolygonRoomModel.cs
new file mode 100644
index 00000000..5bc71282
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/PolygonRoomModel.cs
@@ -0,0 +1,37 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling.Models
+{
+ [System.Serializable]
+ public class PolygonRoomModel : IModel
+ {
+ public Vector3 position;
+ private List _walls;
+ public Material floorMaterial;
+ public Material ceilingMaterial;
+
+ public PolygonRoomModel(Vector3 position, List walls, Material floorMaterial, Material ceilingMaterial)
+ {
+ this.position = position;
+ _walls = walls;
+ this.floorMaterial = floorMaterial;
+ this.ceilingMaterial = ceilingMaterial;
+ }
+
+ public WallModel[] GetWalls()
+ {
+ return _walls.ToArray();
+ }
+
+ public WallModel GetWallAt(int index)
+ {
+ return _walls[index];
+ }
+
+ public void Add(WallModel model)
+ {
+ _walls.Add(model);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/PolygonRoomModel.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/PolygonRoomModel.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models/PolygonRoomModel.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/PolygonRoomModel.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/WallModel.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/WallModel.cs
new file mode 100644
index 00000000..ce26bbb1
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/WallModel.cs
@@ -0,0 +1,37 @@
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling.Models
+{
+ [System.Serializable]
+ public class WallModel : IModel
+ {
+ public Vector3 start;
+ public Vector3 end;
+ public float height;
+ public Material material;
+
+ public WallModel(Vector3 start, Vector3 end, float height, Material material = null)
+ {
+ this.start = start;
+ this.end = end;
+ this.height = height;
+ this.material = material;
+ }
+
+ public WallModel(Vector3 position, float width, float height, Material material = null)
+ {
+ start = position;
+ end = position + Vector3.right * width;
+ this.height = height;
+ this.material = material;
+ }
+
+ public WallModel(float width, float height, Material material = null)
+ {
+ start = Vector3.zero;
+ end = Vector3.right * width;
+ this.height = height;
+ this.material = material;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Models/WallModel.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/WallModel.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Models/WallModel.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Models/WallModel.cs.meta
diff --git a/Assets/DynamicModelling/Scripts/Objects.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Objects.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/CuboidObject.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/CuboidObject.cs
new file mode 100644
index 00000000..f756be5d
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/CuboidObject.cs
@@ -0,0 +1,219 @@
+using System;
+using UnityEngine;
+
+namespace Unibas.DBIS.DynamicModelling.Objects
+{
+ ///
+ /// Custom cuboid model.
+ /// This model's size is actually the one specified, in unity units.
+ /// In contrast, the vanilla unity cube object has to be resized, which this one doesn't, to get other shapes than a cube.
+ ///
+ /// Note The material is copied, so modifications on the material are not reflected at runtime.
+ ///
+ ///
+ /// UV Mapping is based on the smallest dimension, e.g. depending on the texture, further adjustments are required.
+ /// This can be achieved by accessing the MeshRenderer via GetComponent.
+ ///
+ /// If this object's dimensions are changed during runtime, the caller has to call GenerateModel() afterwards,
+ /// to reflect the changes on the model.
+ ///
+ [RequireComponent(typeof(MeshRenderer), typeof(MeshFilter), typeof(BoxCollider))]
+ public class CuboidObject : MonoBehaviour, IObject
+ {
+ ///
+ /// Creates a cuboid object with the specified dimensions and an optional material parameter
+ ///
+ /// The width in unity units. Width is along the x axis.
+ /// The height in unity units. Height is along the y axis.
+ /// The depth in unity units. Depth is along the z axis.
+ /// The material to use (defaults to white)
+ /// A gameobject whose mesh and collider represent a cuboid with the specified dimensions.
+ public static CuboidObject Create(float width, float height, float depth, Material material = null)
+ {
+ var go = new GameObject("CuboidObject");
+ var co = go.AddComponent();
+ co.width = width;
+ co.height = height;
+ co.depth = depth;
+ co.material = material;
+ return co;
+ }
+
+ ///
+ /// The width in unity units. Width is along the x axis.
+ ///
+ public float width;
+
+ ///
+ /// The height in unity units. Height is along the y axis.
+ ///
+ public float height;
+
+ ///
+ /// The depth in untiy units. Depth is along the z axis.
+ ///
+ public float depth;
+
+ ///
+ /// The material to use for texturing this cuboid.
+ /// Be aware that while drag'n'drop a material to this gameobject works in the scene view,
+ /// it is not the same and this material will always override the one from the inspector.
+ /// Use null if you want the default object material.
+ ///
+ public Material material;
+
+ private void OnValidate()
+ {
+ GenerateModel();
+ }
+
+ private void Start()
+ {
+ GenerateModel();
+ }
+
+ ///
+ /// Generates the mesh based on the object's configuration
+ ///
+ public void GenerateModel()
+ {
+ var meshFilter = GetComponent(); // No null value due to RequireComponent statements
+ var meshRenderer = GetComponent();
+ var mesh = meshFilter.mesh;
+
+ // The naming is always from the front and downwards looking! e.g. From the back, left and right is swapped
+ var frontLeftDown = Vector3.zero;
+ var frontRightDown = new Vector3(width, 0, 0);
+ var frontLeftUp = new Vector3(0, height, 0);
+ var frontRightUp = new Vector3(width, height, 0);
+
+ var backLeftDown = new Vector3(0, 0, depth);
+ var backRightDown = new Vector3(width, 0, depth);
+ var backLeftUp = new Vector3(0, height, depth);
+ var backRightUp = new Vector3(width, height, depth);
+
+ var vertices = new[]
+ {
+ // Front
+ frontLeftDown, frontRightDown, frontLeftUp, frontRightUp,
+ // Back
+ backLeftDown, backRightDown, backLeftUp, backRightUp,
+ // Left
+ backLeftDown, frontLeftDown, backLeftUp, frontLeftUp,
+ // Right
+ frontRightDown, backRightDown, frontRightUp, backRightUp,
+ // Up
+ frontLeftUp, frontRightUp, backLeftUp, backRightUp,
+ // Down
+ frontLeftDown, frontRightDown, backLeftDown, backRightDown
+ };
+ mesh.vertices = vertices;
+
+ var triangles = new[]
+ {
+ // Front
+ 0, 2, 1, 2, 3, 1,
+ // Back
+ 5, 7, 4, 7, 6, 4,
+ // Left
+ 8, 10, 9, 10, 11, 9,
+ // Right
+ 12, 14, 13, 14, 15, 13,
+ // Up
+ 16, 18, 17, 18, 19, 17,
+ // Down
+ 21, 23, 20, 23, 22, 20
+ };
+ mesh.triangles = triangles;
+
+ var normals = new[]
+ {
+ // Front
+ -Vector3.forward, -Vector3.forward, -Vector3.forward, -Vector3.forward,
+ // Back
+ -Vector3.back, -Vector3.back, -Vector3.back, -Vector3.back,
+ // Left
+ -Vector3.left, -Vector3.left, -Vector3.left, -Vector3.left,
+ // Right
+ -Vector3.right, -Vector3.right, -Vector3.right, -Vector3.right,
+ // Up
+ -Vector3.up, -Vector3.up, -Vector3.up, -Vector3.up,
+ // Down
+ -Vector3.down, -Vector3.down, -Vector3.down, -Vector3.down
+ };
+ mesh.normals = normals;
+
+
+ /*
+ * Unwrapping of mesh for uf like following
+ * U
+ * LFRB
+ * D
+ */
+
+ var u = Math.Min(Math.Min(width, height), depth);
+ // var w = width / u;
+ // var h = height / u;
+ // var d = depth / u;
+
+ var uvUnits = new Vector2(u, u);
+ var fOff = uvUnits.x * depth;
+ var rOff = uvUnits.x * width + fOff;
+ var bOff = uvUnits.x * depth + rOff;
+ var uOff = uvUnits.y * depth + uvUnits.y * height;
+ var uv = new[]
+ {
+ // Front
+ new Vector2(fOff, uvUnits.y * depth), new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth),
+ new Vector2(fOff, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth + uvUnits.y * height),
+
+ // Back
+ new Vector2(bOff, uvUnits.y * depth), new Vector2(bOff + uvUnits.x * width, uvUnits.y * depth),
+ new Vector2(bOff, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(bOff + uvUnits.x * width, uvUnits.y * depth + uvUnits.y * height),
+
+ // Left
+ new Vector2(0, uvUnits.y * depth), new Vector2(uvUnits.x * depth, uvUnits.y * depth),
+ new Vector2(0, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(uvUnits.x * depth, uvUnits.y * depth + uvUnits.y * height),
+ // Right
+ new Vector2(rOff, uvUnits.y * depth), new Vector2(rOff + uvUnits.x * depth, uvUnits.y * depth),
+ new Vector2(rOff, uvUnits.y * depth + uvUnits.y * height),
+ new Vector2(rOff + uvUnits.x * depth, uvUnits.y * depth + uvUnits.y * height),
+ // Up
+ new Vector2(fOff, uOff), new Vector2(fOff + uvUnits.x * width, uOff),
+ new Vector2(fOff, uOff + uvUnits.y * depth),
+ new Vector2(fOff + uvUnits.x * width, uOff + uvUnits.y * depth),
+
+ // Down
+ new Vector2(fOff, 0), new Vector2(fOff + uvUnits.x * width, 0), new Vector2(fOff, uvUnits.y * depth),
+ new Vector2(fOff + uvUnits.x * width, uvUnits.y * depth)
+ };
+
+ mesh.uv = uv;
+
+ mesh.RecalculateBounds();
+ mesh.RecalculateNormals();
+ mesh.RecalculateTangents();
+
+ if (material == null)
+ {
+ var mat = new Material(Shader.Find("Standard"));
+ meshRenderer.material = mat;
+ mat.name = "Default";
+ mat.color = Color.green;
+ }
+ else
+ {
+ Material mat;
+ (mat = meshRenderer.material).CopyPropertiesFromMaterial(material);
+ mat.name = material.name + " (Copy)";
+ }
+
+ var col = GetComponent();
+ col.center = new Vector3(width / 2, height / 2, depth / 2);
+ col.size = new Vector3(width, height, depth);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Objects/CuboidObject.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/CuboidObject.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Objects/CuboidObject.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/CuboidObject.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/IObject.cs b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/IObject.cs
new file mode 100644
index 00000000..ff66229e
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/IObject.cs
@@ -0,0 +1,9 @@
+namespace Unibas.DBIS.DynamicModelling.Objects
+{
+ // TODO Rename to something with model, maybe even abstract class instead of interface
+
+ public interface IObject
+ {
+ void GenerateModel();
+ }
+}
\ No newline at end of file
diff --git a/Assets/DynamicModelling/Scripts/Objects/IObject.cs.meta b/Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/IObject.cs.meta
similarity index 100%
rename from Assets/DynamicModelling/Scripts/Objects/IObject.cs.meta
rename to Assets/Scripts/Unibas/DBIS/DynamicModelling/Objects/IObject.cs.meta
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Core/ExhibitionManager.cs b/Assets/Scripts/Unibas/DBIS/VREP/Core/ExhibitionManager.cs
index e1967b72..daa252cc 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Core/ExhibitionManager.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Core/ExhibitionManager.cs
@@ -1,168 +1,169 @@
using System.Collections.Generic;
-using DefaultNamespace;
-using DefaultNamespace.VREM.Model;
+using Unibas.DBIS.VREP.Utils;
+using Unibas.DBIS.VREP.VREM.Model;
using Unibas.DBIS.VREP.World;
using UnityEngine;
-using World;
namespace Unibas.DBIS.VREP.Core
{
- public class ExhibitionManager
+ ///
+ /// Exhibition manager to create and load exhibitions from model exhibitions to actual VR exhibitions.
+ ///
+ public class ExhibitionManager
+ {
+ private Exhibition _exhibition;
+ private List _rooms = new List();
+
+ public ExhibitionManager(Exhibition exhibition)
{
- private Exhibition _exhibition;
+ _exhibition = exhibition;
+ }
- public ExhibitionManager(Exhibition exhibition)
- {
- this._exhibition = exhibition;
- }
+ public CuboidExhibitionRoom GetRoomByIndex(int index)
+ {
+ return _rooms[index];
+ }
- private List _rooms = new List();
+ ///
+ /// Restores all exhibits of the currently loaded exhibition.
+ ///
+ public void RestoreExhibits()
+ {
+ _rooms.ForEach(r => r.RestoreWallExhibits());
+ }
- public CuboidExhibitionRoom GetRoomByIndex(int index)
- {
- return _rooms[index];
- }
+ private int GetNextRoomIndex(int pos)
+ {
+ return (pos + 1) % _exhibition.rooms.Length;
+ }
- public void RestoreExhibits() {
- _rooms.ForEach(r => r.RestoreWallExhibits());
- }
+ private int GetPreviousRoomIndex(int pos)
+ {
+ return (pos - 1 + _exhibition.rooms.Length) % _exhibition.rooms.Length;
+ }
- private int GetNextRoomIndex(int pos)
+ private int GetRoomIndex(Room room)
+ {
+ for (var i = 0; i < _exhibition.rooms.Length; i++)
+ {
+ if (room.Equals(_exhibition.rooms[i]))
{
- return (pos + 1) % _exhibition.rooms.Length;
+ return i;
}
+ }
- private int GetPreviousRoomIndex(int pos)
- {
- return (pos - 1 + _exhibition.rooms.Length) % _exhibition.rooms.Length;
- }
+ return -1;
+ }
- private int GetRoomIndex(DefaultNamespace.VREM.Model.Room room)
- {
- for (int i = 0; i < _exhibition.rooms.Length; i++)
- {
- if (room.Equals(_exhibition.rooms[i]))
- {
- return i;
- }
- }
-
- return -1;
- }
+ private Room GetNext(Room room)
+ {
+ var pos = GetRoomIndex(room);
- private DefaultNamespace.VREM.Model.Room GetNext(DefaultNamespace.VREM.Model.Room room)
- {
- var pos = GetRoomIndex(room);
- if (pos == -1)
- {
- // TODO This should not happen
- return null;
- }
-
- return _exhibition.rooms[GetNextRoomIndex(pos)];
- }
+ return _exhibition.rooms[GetNextRoomIndex(pos)];
+ }
- private DefaultNamespace.VREM.Model.Room GetPrevious(DefaultNamespace.VREM.Model.Room room)
+ private Room GetPrevious(Room room)
+ {
+ var pos = GetRoomIndex(room);
+
+ return _exhibition.rooms[GetPreviousRoomIndex(pos)];
+ }
+
+ ///
+ /// Creates and loads the exhibition from the Exhibition model object currently stored.
+ /// This includes building all rooms with their walls and generating displayals from exhibits.
+ ///
+ public void GenerateExhibition()
+ {
+ foreach (var room in _exhibition.rooms)
+ {
+ var roomGameObject = ObjectFactory.BuildRoom(room);
+ var exhibitionRoom = roomGameObject.GetComponent();
+ _rooms.Add(exhibitionRoom);
+
+ if (VrepController.Instance.settings.CeilingLogoEnabled)
{
- var pos = GetRoomIndex(room);
- if (pos == -1)
- {
- // TODO This should not happen
- return null;
- }
-
- return _exhibition.rooms[GetPreviousRoomIndex(pos)];
+ var pref = Resources.Load("Objects/unibas");
+ var logo = Object.Instantiate(pref, exhibitionRoom.transform, false);
+
+ logo.name = "UnibasLogo";
+ logo.transform.localPosition = new Vector3(-1.493f, room.size.y - .01f, 3.35f); // manually found values
+ logo.transform.localRotation = Quaternion.Euler(new Vector3(90, 180));
+ logo.transform.localScale = Vector3.one * 10000;
}
- public void GenerateExhibition()
+ if (VrepController.Instance.settings.WallTimerCount > 0)
{
- foreach (var room in _exhibition.rooms)
- {
- var roomGameObject = ObjectFactory.BuildRoom(room);
- var exhibitionRoom = roomGameObject.GetComponent();
- _rooms.Add(exhibitionRoom);
-
- if (VREPController.Instance.Settings.CeilingLogoEnabled)
- {
- GameObject pref = Resources.Load("Objects/unibas");
- var logo = GameObject.Instantiate(pref);
- logo.name = "UnibasLogo";
- logo.transform.SetParent(exhibitionRoom.transform, false);
- //logo.transform.localPosition = new Vector3(-1.493f, room.size.y-.01f, -0.642f); // manually found values
- logo.transform.localPosition =
- new Vector3(-1.493f, room.size.y - .01f, 3.35f); // manually found values
- logo.transform.localRotation = Quaternion.Euler(new Vector3(90, 180));
- logo.transform.localScale = Vector3.one * 10000;
- }
- if (VREPController.Instance.Settings.WallTimerCount > 0)
- {
- GameObject obj = new GameObject("Timer");
- obj.transform.SetParent(exhibitionRoom.transform, false);
- obj.transform.localPosition =
- new Vector3(-room.size.x/2 + 0.2f, room.size.y - 0.2f, room.size.z/2); // manually found values
- obj.transform.localScale = Vector3.one * 0.05f;
- TextMesh textMesh = obj.AddComponent();
- textMesh.fontSize = 150;
- Countdown timer = obj.AddComponent();
- timer.countdown = textMesh;
- timer.initTime = VREPController.Instance.Settings.WallTimerCount;
- obj.transform.GetComponent().enabled = false;
- }
- }
-
- // For teleporting, each room needs to be created.
- foreach (var room in _rooms)
- {
- CreateAndAttachTeleporters(room);
- }
- }
+ var obj = new GameObject("Timer");
+ obj.transform.SetParent(exhibitionRoom.transform, false);
+ obj.transform.localPosition =
+ new Vector3(-room.size.x / 2 + 0.2f, room.size.y - 0.2f, room.size.z / 2); // manually found values
+ obj.transform.localScale = Vector3.one * 0.05f;
+ var textMesh = obj.AddComponent();
+ textMesh.fontSize = 150;
- private void CreateAndAttachTeleporters(CuboidExhibitionRoom room)
- {
- var index = GetRoomIndex(room.RoomData);
- var next = _rooms[GetNextRoomIndex(index)];
- var prev = _rooms[GetPreviousRoomIndex(index)];
-
- var nd = next.GetEntryPoint();
- var pd = prev.GetEntryPoint();
-
- var backPos = new Vector3(-.25f, 0, .2f);
- var nextPos = new Vector3(.25f, 0, .2f);
-
- // TODO Configurable TPBtnModel
- var model = new SteamVRTeleportButton.TeleportButtonModel(0.1f, .02f, 1f,
- TexturingUtility.LoadMaterialByName("none"),
- TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic"));
-
- if (_exhibition.rooms.Length > 1)
- {
- // back teleporter
- var backTpBtn = SteamVRTeleportButton.Create(room.gameObject, backPos, pd, model
- ,
- Resources.Load("Sprites/UI/chevron-left"));
-
- backTpBtn.OnTeleportStart = room.OnRoomLeave;
- backTpBtn.OnTeleportEnd = prev.OnRoomEnter;
-
- // back teleporter
- var nextTpBtn = SteamVRTeleportButton.Create(room.gameObject, nextPos, nd,
- model,
- Resources.Load("Sprites/UI/chevron-right"));
-
- nextTpBtn.OnTeleportStart = room.OnRoomLeave;
- nextTpBtn.OnTeleportEnd = next.OnRoomEnter;
- }
-
-
- if (VREPController.Instance.Settings.StartInLobby)
- {
- var lobbyTpBtn = SteamVRTeleportButton.Create(room.gameObject, new Vector3(0, 0, .2f),
- VREPController.Instance.LobbySpawn,
- model,
- "Lobby");
- lobbyTpBtn.OnTeleportStart = room.OnRoomLeave;
- }
+ var timer = obj.AddComponent();
+ timer.countdown = textMesh;
+ timer.initTime = VrepController.Instance.settings.WallTimerCount;
+
+ obj.transform.GetComponent().enabled = false;
}
+ }
+
+ // For teleporting, each room needs to be created.
+ foreach (var room in _rooms)
+ {
+ CreateAndAttachTeleporters(room);
+ }
+ }
+
+ ///
+ /// Attaches teleporters to a previously generated CuboidExhibitionRoom for an exhibition.
+ /// To properly navigate rooms, this includes one forward teleporter into the next room
+ /// and one backward teleporter to the previous room.
+ ///
+ /// The CuboidExhibitionRoom to generate the teleporters for.
+ private void CreateAndAttachTeleporters(CuboidExhibitionRoom room)
+ {
+ var index = GetRoomIndex(room.RoomData);
+ var next = _rooms[GetNextRoomIndex(index)];
+ var prev = _rooms[GetPreviousRoomIndex(index)];
+
+ var nd = next.GetEntryPoint();
+ var pd = prev.GetEntryPoint();
+
+ var backPos = new Vector3(-.25f, 0, .2f);
+ var nextPos = new Vector3(.25f, 0, .2f);
+
+ // TODO Configurable TPBtnModel.
+ var model = new SteamVRTeleportButton.TeleportButtonModel(0.1f, .02f, 1f, null,
+ TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic"));
+
+ if (_exhibition.rooms.Length > 1)
+ {
+ // Back teleporter.
+ var backTpBtn = SteamVRTeleportButton.Create(room.gameObject, backPos, pd, model,
+ Resources.Load("Sprites/UI/chevron-left"));
+
+ backTpBtn.OnTeleportStart = room.OnRoomLeave;
+ backTpBtn.OnTeleportEnd = prev.OnRoomEnter;
+
+ // Forward teleporter.
+ var nextTpBtn = SteamVRTeleportButton.Create(room.gameObject, nextPos, nd, model,
+ Resources.Load("Sprites/UI/chevron-right"));
+
+ nextTpBtn.OnTeleportStart = room.OnRoomLeave;
+ nextTpBtn.OnTeleportEnd = next.OnRoomEnter;
+ }
+
+ // If we start in the lobby, also allow the user to teleport back to the lobby.
+ if (VrepController.Instance.settings.StartInLobby)
+ {
+ var lobbyTpBtn = SteamVRTeleportButton.Create(room.gameObject, new Vector3(0, 0, .2f),
+ VrepController.Instance.lobbySpawn, model, "Lobby");
+ lobbyTpBtn.OnTeleportStart = room.OnRoomLeave;
+ }
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Core/Sandbox.cs b/Assets/Scripts/Unibas/DBIS/VREP/Core/Sandbox.cs
index 80597ef4..9a8db838 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Core/Sandbox.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Core/Sandbox.cs
@@ -1,46 +1,41 @@
-using UnityEngine;
-using World;
-using Wall = DefaultNamespace.VREM.Model.Wall;
+using Unibas.DBIS.VREP.VREM.Model;
+using Unibas.DBIS.VREP.World;
+using UnityEngine;
-namespace DefaultNamespace {
- public class Sandbox : MonoBehaviour {
+namespace Unibas.DBIS.VREP.Core
+{
+ ///
+ /// Sandbox component to test things.
+ ///
+ public class Sandbox : MonoBehaviour
+ {
+ public bool isEnabled;
- public bool Enabled;
-
- void Start() {
- if (Enabled) {
+ private void Start()
+ {
+ if (isEnabled)
+ {
TestObjectFactory();
}
-
}
- private void TestObjectFactory() {
- var nw = new VREM.Model.Wall();
- nw.direction = "NORTH";
- nw.texture = "NBricks";
- var ew = new VREM.Model.Wall();
- ew.direction = "EAST";
- ew.texture = "LimeBricks";
- var sw = new VREM.Model.Wall();
- sw.direction = "SOUTH";
- sw.texture = "NConcrete";
- var ww = new VREM.Model.Wall();
- ww.direction = "WEST";
- ww.texture = "MarbleBricks";
+ private static void TestObjectFactory()
+ {
+ var nw = new Wall {direction = "NORTH", texture = "NBricks"};
+ var ew = new Wall {direction = "EAST", texture = "LimeBricks"};
+ var sw = new Wall {direction = "SOUTH", texture = "NConcrete"};
+ var ww = new Wall {direction = "WEST", texture = "MarbleBricks"};
- var room = new VREM.Model.Room();
- room.floor = "MarbleTiles";
- room.size = new Vector3(10,5,10);
- room.position = new Vector3(10,-10,10);
- room.ceiling = "NFabric";
- room.walls = new[] {
- nw, ew, sw, ww
+ var room = new Room
+ {
+ floor = "MarbleTiles",
+ size = new Vector3(10, 5, 10),
+ position = new Vector3(10, -10, 10),
+ ceiling = "NFabric",
+ walls = new[] {nw, ew, sw, ww}
};
ObjectFactory.BuildRoom(room);
}
-
}
-
-
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Core/Settings.cs b/Assets/Scripts/Unibas/DBIS/VREP/Core/Settings.cs
index b4ccdbe5..b103332c 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Core/Settings.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Core/Settings.cs
@@ -1,162 +1,172 @@
-using System;
-using System.IO;
-using UnityEngine;
-
-namespace DefaultNamespace
-{
- [Serializable]
- public class Settings
- {
- ///
- /// Whether the player starts in the lobby
- /// Default: False
- ///
- public bool StartInLobby = true;
-
- ///
- /// The Address of the VREM server instance, inclusive port
- /// Usually this is 127.0.0.1:4567
- /// Default: 127.0.0.1:4567
- ///
- public string VREMAddress = "http://127.0.0.1:4567";
-
- ///
- /// Whether each exhibit has its own spotlight
- /// Default: False
- ///
- public bool SpotsEnabled = false;
-
- ///
- /// Whether in the Lobby the UNIBAS logo is displayed on the floor
- /// Default: True
- ///
- public bool LobbyFloorLogoEnabled = true;
-
- ///
- /// Whether in the Lobby the UNIBAS logo is displayed on the ceiling
- /// Default: True
- ///
- public bool LobbyCeilingLogoEnabled = true;
-
- ///
- /// Whether in each room the Logo is placed on the ceiling.
- ///
- public bool CeilingLogoEnabled = true;
-
- ///
- /// Whether in each room a timer is placed on the wall, counting down provided seconds.
- ///
- public int WallTimerCount;
-
- ///
- /// Whether experimental, "playground" features are enabled
- /// Default: False
- ///
- public bool PlaygroundEnabled = false;
-
- ///
- /// Whether the server will be queried for exhibitions
- /// Default: False
- ///
- public bool RequestExhibitions = false;
-
- ///
- /// A list of exhibition ids, which shall be loaded
- /// Default: Empty
- ///
- public string[] exhibitionIds = new string[0];
-
- ///
- /// The file name of this settings file.
- ///
- public const string FILE_NAME = "settings.json";
-
- private bool _default = false;
-
- ///
- /// Returns whether this settings file is the default one.
- ///
- /// Whether this settings file is the default one
- public bool IsDefault()
- {
- return _default;
- }
-
- ///
- /// Loads the settings file. In UnityEditor this is at Assets/settings.json, in standalone this should be a sibling of the executable
- ///
- ///
- public static Settings LoadSettings()
- {
- Debug.Log("Settings path: " + getPath());
- if (File.Exists(getPath()))
- {
- string json = File.ReadAllText(getPath());
- return JsonUtility.FromJson(json);
- }
- else
- {
- return createDefault();
- }
- }
-
- public static Settings LoadSettings(string path)
- {
- var filePath = Application.dataPath + "/" + path;
- if (File.Exists(filePath))
- {
- string json = File.ReadAllText(filePath);
- return JsonUtility.FromJson(json);
- }
- else
- {
- return createDefault();
- }
- }
-
- private Settings()
- {
- // no public constructor allowed
- }
-
- private static Settings createDefault()
- {
- Settings s = new Settings();
- s._default = true;
- return s;
- }
-
- public static Settings Default()
- {
- return createDefault();
- }
-
- private static string getPath()
- {
- if (Application.isEditor)
- {
- return Application.dataPath + "/" + FILE_NAME;
- }
- else
- {
- return Application.dataPath + "/../" + FILE_NAME;
- }
- }
-
- ///
- /// Stores this settings file at the preferred location, if there isn't already one
- ///
- public void StoreSettings()
- {
- if (!File.Exists(getPath()))
- {
- string json = JsonUtility.ToJson(this, true);
- File.WriteAllText(getPath(), json);
- }
- else
- {
- Debug.LogWarning("Will not override settings");
- }
- }
- }
+using System;
+using System.IO;
+using UnityEngine;
+
+namespace Unibas.DBIS.VREP.Core
+{
+ ///
+ /// Settings class; serialized from/to JSON.
+ ///
+ [Serializable]
+ public class Settings
+ {
+ ///
+ /// The Address of the VREM server instance, inclusive port.
+ ///
+ public string VremAddress;
+
+ ///
+ /// Whether the player starts in the lobby.
+ /// Default: False
+ ///
+ public bool StartInLobby = true;
+
+ ///
+ /// Whether each exhibit has its own spotlight.
+ /// Default: False
+ ///
+ public bool SpotsEnabled;
+
+ ///
+ /// Whether in the Lobby the Unibas logo is displayed on the floor.
+ /// Default: True
+ ///
+ public bool LobbyFloorLogoEnabled = true;
+
+ ///
+ /// Whether in the Lobby the Unibas logo is displayed on the ceiling.
+ /// Default: True
+ ///
+ public bool LobbyCeilingLogoEnabled = true;
+
+ ///
+ /// Whether in each room the Logo is placed on the ceiling.
+ ///
+ public bool CeilingLogoEnabled = true;
+
+ ///
+ /// Whether in each room a timer is placed on the wall, counting down provided seconds.
+ ///
+ public int WallTimerCount;
+
+ ///
+ /// Whether experimental features are enabled.
+ /// Default: False
+ ///
+ public bool PlaygroundEnabled;
+
+ ///
+ /// The ID of the exhibition to load.
+ /// Default: Empty
+ ///
+ public string ExhibitionId;
+
+ ///
+ /// The file name of this settings file.
+ ///
+ [NonSerialized] public const string FileName = "settings.json";
+
+ [NonSerialized] private bool _default;
+
+ ///
+ /// Returns whether this settings object is a default configuration (unless you programatically changed attributes).
+ ///
+ /// True if this is the default config, false otherwise.
+ public bool IsDefault()
+ {
+ return _default;
+ }
+
+ ///
+ /// Loads the settings file.
+ /// In the UnityEditor this is at Assets/settings.json, in the standalone this should be a sibling of the executable.
+ /// Default settings are used if the settings file cannot be read.
+ ///
+ /// The resulting Settings object.
+ public static Settings LoadSettings()
+ {
+ Debug.Log("Settings path: " + GetPath());
+
+ if (File.Exists(GetPath()))
+ {
+ var json = File.ReadAllText(GetPath());
+ return JsonUtility.FromJson(json);
+ }
+
+ return CreateDefault();
+ }
+
+ ///
+ /// Loads the settings file from a provided path.
+ /// Default settings are used if the settings file cannot be read.
+ ///
+ ///
+ /// The resulting Settings object.
+ public static Settings LoadSettings(string path)
+ {
+ var filePath = Application.dataPath + "/" + path;
+
+ if (!File.Exists(filePath)) return CreateDefault();
+
+ var json = File.ReadAllText(filePath);
+ return JsonUtility.FromJson(json);
+ }
+
+ private Settings()
+ {
+ // Settings can only be loaded via LoadSettings or Default!
+ }
+
+ ///
+ /// Creates default settings.
+ ///
+ /// The created default Settings object.
+ private static Settings CreateDefault()
+ {
+ var s = new Settings {_default = true};
+ return s;
+ }
+
+ ///
+ /// Creates default settings.
+ ///
+ /// The created default Settings object.
+ public static Settings Default()
+ {
+ return CreateDefault();
+ }
+
+ ///
+ /// Obtains the path of the configuration file, depending on whether we're running from the editor or not.
+ /// For the actual deployment, the configuration file is assumed to be a sibling of the executable.
+ ///
+ /// The path to the configuration file.
+ private static string GetPath()
+ {
+ if (Application.isEditor)
+ {
+ return Application.dataPath + "/" + FileName;
+ }
+ else
+ {
+ return Application.dataPath + "/../" + FileName;
+ }
+ }
+
+ ///
+ /// Stores this settings file at the preferred location unless the file already exists.
+ ///
+ public void StoreSettings()
+ {
+ if (!File.Exists(GetPath()))
+ {
+ var json = JsonUtility.ToJson(this, true);
+ File.WriteAllText(GetPath(), json);
+ }
+ else
+ {
+ Debug.Log("Configuration already exists, will not override settings.");
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Core/VREPController.cs b/Assets/Scripts/Unibas/DBIS/VREP/Core/VREPController.cs
deleted file mode 100644
index 4abca510..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/Core/VREPController.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-using System;
-using DefaultNamespace;
-using DefaultNamespace.VREM;
-using DefaultNamespace.VREM.Model;
-using Unibas.DBIS.VREP.Core;
-using UnityEngine;
-
-namespace Unibas.DBIS.VREP
-{
- public class VREPController : MonoBehaviour
- {
- private VREMClient _vremClient;
- private BuildingManager _buildingManager;
- public String ExhibitionId = "5c17b10ea6abfddbb3fa66ae";
-
- public Vector3 LobbySpawn = new Vector3(0, -9, 0);
-
- public Settings Settings;
-
- public string settingsPath;
-
- public static VREPController Instance;
- private ExhibitionManager _exhibitionManager;
-
- private void Awake()
- {
- if (Application.isEditor)
- {
- if (string.IsNullOrEmpty(settingsPath))
- {
- Settings = Settings.LoadSettings();
- }
- else
- {
- Settings = Settings.LoadSettings(settingsPath);
- }
- }
- else
- {
- Settings = Settings.LoadSettings();
- }
-
- SanitizeHost();
- Instance = this;
- }
-
- private void SanitizeHost()
- {
- if (!Settings.VREMAddress.EndsWith("/"))
- {
- Settings.VREMAddress += "/";
- }
-
- if (!Settings.VREMAddress.StartsWith("http://"))
- {
- Settings.VREMAddress = "http://" + Settings.VREMAddress;
- }
- }
-
- private void OnApplicationQuit()
- {
- Settings.StoreSettings();
- }
-
- private void Start()
- {
- if (Settings == null)
- {
- Settings = Settings.LoadSettings();
- if (Settings == null)
- {
- Settings = Settings.Default();
- }
- }
- var go = GameObject.FindWithTag("Player");
- if (go != null && Settings.StartInLobby)
- {
- go.transform.position = new Vector3(0, -9.9f, 0);
- }
-
- var lby = GameObject.Find("Lobby");
- if (lby != null && !Settings.StartInLobby)
- {
- lby.SetActive(false);
- }
-
- Debug.Log("Starting ExMan");
- _vremClient = gameObject.AddComponent();
- _buildingManager = GetComponent();
-
- LoadAndCreateExhibition();
- }
-
- public void LoadAndCreateExhibition()
- {
- _vremClient.ServerUrl = Settings.VREMAddress;
-
- var exId = "";
- if (Settings.exhibitionIds != null && Settings.exhibitionIds.Length > 0 && Settings.exhibitionIds[0] != null)
- {
- exId = Settings.exhibitionIds[0];
- }
- else
- {
- exId = ExhibitionId;
- }
-
-
- _vremClient.RequestExhibition(exId, ParseExhibition);
- Debug.Log("Requested ex");
- }
-
- private void Update() {
- if (Input.GetKey(KeyCode.F12)) {
- _exhibitionManager.RestoreExhibits();
- }
- }
-
- private void ParseExhibition(string json)
- {
- if (json == null)
- {
- Debug.LogError("Couldn't load exhibition from backend");
- Debug.Log("Loading placeholder instead");
- var jtf = Resources.Load("Configs/placeholder-exhibition");
- json = jtf.text;
- }
-
- Debug.Log(json);
- Exhibition ex = JsonUtility.FromJson(json);
- Debug.Log(json);
- Debug.Log(ex);
- Debug.Log(_buildingManager);
- // TODO create lobby
-
- _exhibitionManager = new ExhibitionManager(ex);
- _exhibitionManager.GenerateExhibition();
- if (VREPController.Instance.Settings.StartInLobby)
- {
- GameObject.Find("Lobby").GetComponent().activateRoomTrigger(_exhibitionManager);
- }
- else
- {
- GameObject.Find("Room").gameObject.transform.Find("Timer").transform.GetComponent().enabled = true;
- }
-
- //_buildingManager.Create(ex);
-
-
- //_buildingManager.BuildRoom(ex.rooms[0]);
-/*
- if (Settings.PlaygroundEnabled)
- {*/
- /*
- ex.rooms[0].position = new Vector3(15,0,0);
- ObjectFactory.BuildRoom(ex.rooms[0]);
- */
- // }
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Core/VrepController.cs b/Assets/Scripts/Unibas/DBIS/VREP/Core/VrepController.cs
new file mode 100644
index 00000000..f9367b1d
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Core/VrepController.cs
@@ -0,0 +1,153 @@
+using Unibas.DBIS.VREP.VREM;
+using Unibas.DBIS.VREP.VREM.Model;
+using Unibas.DBIS.VREP.World;
+using UnityEngine;
+
+namespace Unibas.DBIS.VREP.Core
+{
+ ///
+ /// Controller component for VirtualExhibitionManager.
+ ///
+ public class VrepController : MonoBehaviour
+ {
+ private VremClient _vremClient;
+
+ public Vector3 lobbySpawn = new Vector3(0, -9, 0);
+
+ public Settings settings;
+ public string settingsPath;
+
+ public static VrepController Instance;
+ private ExhibitionManager _exhibitionManager;
+
+ ///
+ /// Upon awaking, the settings are loaded and the VREM host address is sanitized and set.
+ ///
+ private void Awake()
+ {
+ if (Application.isEditor)
+ {
+ settings = string.IsNullOrEmpty(settingsPath) ? Settings.LoadSettings() : Settings.LoadSettings(settingsPath);
+ }
+ else
+ {
+ settings = Settings.LoadSettings();
+ }
+
+ SanitizeHost();
+
+ // Set instance.
+ Instance = this;
+ }
+
+ ///
+ /// Fixes the server URL by adding the http:// prefix and/or trailing /.
+ ///
+ private void SanitizeHost()
+ {
+ if (!settings.VremAddress.EndsWith("/"))
+ {
+ settings.VremAddress += "/";
+ }
+
+ // TODO TLS support.
+ if (!settings.VremAddress.StartsWith("http://"))
+ {
+ settings.VremAddress = "http://" + settings.VremAddress;
+ }
+ }
+
+ ///
+ /// Write settings on termination if the file doesn't already exist.
+ ///
+ private void OnApplicationQuit()
+ {
+ settings.StoreSettings();
+ }
+
+ ///
+ /// Handles lobby start settings and loads the exhibition.
+ ///
+ private void Start()
+ {
+ // TODO After what happens in Awake, this is not necessary.
+ settings ??= Settings.LoadSettings() ?? Settings.Default();
+
+ var go = GameObject.FindWithTag("Player");
+ if (go != null && settings.StartInLobby)
+ {
+ go.transform.position = new Vector3(0, -9.9f, 0);
+ }
+
+ var lby = GameObject.Find("Lobby");
+ if (lby != null && !settings.StartInLobby)
+ {
+ lby.SetActive(false);
+ }
+
+ Debug.Log("Starting Exhibition manager.");
+ _vremClient = gameObject.AddComponent();
+
+ LoadAndCreateExhibition();
+ }
+
+ ///
+ /// Creates and loads the exhibition specified in the configuration.
+ ///
+ public void LoadAndCreateExhibition()
+ {
+ _vremClient.serverUrl = settings.VremAddress;
+
+ _vremClient.RequestExhibition(settings.ExhibitionId, ParseExhibition);
+ Debug.Log("Requested exhibition.");
+ }
+
+ ///
+ /// Restores exhibits upon pressing F12.
+ ///
+ private void Update()
+ {
+ if (Input.GetKey(KeyCode.F12))
+ {
+ _exhibitionManager.RestoreExhibits();
+ }
+ }
+
+ ///
+ /// Parses an exhibition in JSON format loaded from VREM and calls the exhibition manager to actually
+ /// generate the loaded/parsed exhibition.
+ ///
+ /// The JSON string to parse.
+ private void ParseExhibition(string json)
+ {
+ if (json == null)
+ {
+ Debug.LogError("Couldn't load exhibition from backend.");
+ Debug.Log("Loading placeholder instead.");
+ var jtf = Resources.Load("Configs/placeholder-exhibition");
+ json = jtf.text;
+ }
+
+ Debug.Log(json);
+
+ // Actual parsing to Exhibition model object.
+ var ex = JsonUtility.FromJson(json);
+
+ // TODO Create lobby.
+
+ // Create exhibition manager and generate the exhibition.
+ _exhibitionManager = new ExhibitionManager(ex);
+ _exhibitionManager.GenerateExhibition();
+
+ if (Instance.settings.StartInLobby)
+ {
+ GameObject.Find("Lobby").GetComponent().ActivateRoomTrigger(_exhibitionManager);
+ }
+ else
+ {
+ GameObject.Find("Room").gameObject.transform.Find("Timer").transform.GetComponent().enabled =
+ true;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Core/VREPController.cs.meta b/Assets/Scripts/Unibas/DBIS/VREP/Core/VrepController.cs.meta
similarity index 97%
rename from Assets/Scripts/Unibas/DBIS/VREP/Core/VREPController.cs.meta
rename to Assets/Scripts/Unibas/DBIS/VREP/Core/VrepController.cs.meta
index a6e0a9ea..8cbd39b8 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Core/VREPController.cs.meta
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Core/VrepController.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
-guid: bd383596e0c94e46a6268577549e3d30
+fileFormatVersion: 2
+guid: bd383596e0c94e46a6268577549e3d30
timeCreated: 1540578983
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Displayal.cs b/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Displayal.cs
index 1dd59405..dbd2d0da 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Displayal.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Displayal.cs
@@ -1,115 +1,112 @@
-using System.Collections;
-using System.Collections.Generic;
-using DefaultNamespace.VREM.Model;
-using Unibas.DBIS.DynamicModelling;
-using Unibas.DBIS.DynamicModelling.Models;
-using Unibas.DBIS.VREP;
-using UnityEngine;
-using Valve.VR.InteractionSystem;
-
-public class Displayal : MonoBehaviour
-{
- private Exhibit _exhibitModel;
-
-
- public string id;
-
- public Vector3 OriginalPosition;
- public Quaternion OriginalRotation;
-
- private CuboidModel _anchor = new CuboidModel(1,0.01f,.1f);
-
-
- public void RestorePosition() {
- transform.localPosition = OriginalPosition;
- transform.localRotation = OriginalRotation;
- var rigid = GetComponent();
- if (rigid != null)
- {
- rigid.velocity = Vector3.zero;
- }
- }
-
- public void SetExhibitModel(Exhibit exhibit)
- {
- _exhibitModel = exhibit;
- id = _exhibitModel.id;
- name = "Displayal (" + id + ")";
- var tp = transform.Find("TitlePlaquette");
- if (tp != null)
- {
- if (string.IsNullOrEmpty(exhibit.name))
- {
- tp.gameObject.SetActive(false);
- }
- else
- {
- tp.GetComponent().text.text = exhibit.name;
- }
- }
- else
- {
- Debug.LogError("no tp");
- }
-
- var dp = transform.Find("DescriptionPlaquette");
- if (dp != null)
- {
- if (string.IsNullOrEmpty(exhibit.description))
- {
- dp.gameObject.SetActive(false);
- }
- else
- {
- dp.GetComponent().text.text = exhibit.description;
- }
- }
- else
- {
- Debug.LogError("no dp");
- }
-
- if (VREPController.Instance.Settings.PlaygroundEnabled)
- {
- var magicOffset = 0.17f;
- var t = gameObject.AddComponent();
- t.attachmentFlags = Hand.AttachmentFlags.VelocityMovement | Hand.AttachmentFlags.TurnOffGravity;
- //Hand.AttachmentFlags.VelocityMovement Hand.AttachmentFlags.TurnOffGravity;
- t.releaseVelocityStyle = ReleaseStyle.AdvancedEstimation;
-
- // Fix non-convex meshcollider since unity5 not allowed...
- var plane = transform.Find("Plane");
- plane.GetComponent().convex = true;
- var back = transform.Find("Back");
- back.GetComponent().convex = true;
-
- var anch = ModelFactory.CreateCuboid(_anchor);
- var col = anch.AddComponent();
- col.center = new Vector3(_anchor.Width / 2, _anchor.Height / 2, _anchor.Depth/2);
- col.size = new Vector3(_anchor.Width, _anchor.Height, _anchor.Depth);
- anch.name = "Anchor (" + id + ")";
- anch.transform.parent = transform.parent;
- anch.transform.localPosition = new Vector3(_exhibitModel.position.x-_anchor.Width/2, _exhibitModel.position.y-(_exhibitModel.size.y/2+magicOffset), -_anchor.Depth); //0.2 is magic number for frame
- anch.transform.localRotation = Quaternion.Euler(Vector3.zero);
- }
- }
-
- public Exhibit GetExhibit()
- {
- return _exhibitModel;
- }
-
-
- Renderer m_Renderer;
-
- // Use this for initialization
- void Start()
- {
- m_Renderer = GetComponent();
- }
-
- // Update is called once per frame
- void Update()
- {
- }
+using Unibas.DBIS.DynamicModelling;
+using Unibas.DBIS.DynamicModelling.Models;
+using Unibas.DBIS.VREP.Core;
+using Unibas.DBIS.VREP.VREM.Model;
+using UnityEngine;
+
+namespace Unibas.DBIS.VREP.LegacyObjects
+{
+ ///
+ /// Displayal object, GameObject representation of an Exhibit.
+ ///
+ public class Displayal : MonoBehaviour
+ {
+ // The corresponding exhibit for this displayal.
+ private Exhibit _exhibitModel;
+ public string id;
+
+ public Vector3 originalPosition;
+ public Quaternion originalRotation;
+
+ private readonly CuboidModel _anchor = new CuboidModel(1, 0.01f, .1f);
+
+ ///
+ /// Restores the original position and resets velocity for this displayal.
+ ///
+ public void RestorePosition()
+ {
+ var t = transform;
+ t.localPosition = originalPosition;
+ t.localRotation = originalRotation;
+ var rigid = GetComponent();
+ if (rigid != null)
+ {
+ rigid.velocity = Vector3.zero;
+ }
+ }
+
+ ///
+ /// Sets the exhibit model for this displayal object, also processing the text to display on the plaquette
+ /// and the image to load.
+ ///
+ ///
+ public void SetExhibitModel(Exhibit exhibit)
+ {
+ _exhibitModel = exhibit;
+ id = _exhibitModel.id;
+ name = "Displayal (" + id + ")";
+
+ var tp = transform.Find("TitlePlaquette");
+ if (tp != null)
+ {
+ if (string.IsNullOrEmpty(exhibit.name))
+ {
+ tp.gameObject.SetActive(false);
+ }
+ else
+ {
+ tp.GetComponent().text.text = exhibit.name;
+ }
+ }
+ else
+ {
+ Debug.LogError("no tp");
+ }
+
+ var dp = transform.Find("DescriptionPlaquette");
+ if (dp != null)
+ {
+ if (string.IsNullOrEmpty(exhibit.description))
+ {
+ dp.gameObject.SetActive(false);
+ }
+ else
+ {
+ dp.GetComponent().text.text = exhibit.description;
+ }
+ }
+ else
+ {
+ Debug.LogError("no dp");
+ }
+
+ if (VrepController.Instance.settings.PlaygroundEnabled)
+ {
+ // TODO Find a fix so this works regardless of image dimensions.
+ const float magicOffset = 0.5f;
+
+ var anchor = ModelFactory.CreateCuboid(_anchor);
+ var col = anchor.AddComponent();
+
+ col.center = new Vector3(_anchor.width / 2, _anchor.height / 2, _anchor.depth / 2);
+ col.size = new Vector3(_anchor.width, _anchor.height, _anchor.depth);
+
+ anchor.name = "Anchor (" + id + ")";
+ anchor.transform.parent = transform.parent;
+ anchor.transform.localPosition = new Vector3(_exhibitModel.position.x - _anchor.width / 2,
+ _exhibitModel.position.y - (_exhibitModel.size.y / 2 + magicOffset),
+ -_anchor.depth);
+ anchor.transform.localRotation = Quaternion.Euler(Vector3.zero);
+ }
+ }
+
+ ///
+ /// Obtains the exhibit associated to this displayal.
+ ///
+ /// The associated exhibit model.
+ public Exhibit GetExhibit()
+ {
+ return _exhibitModel;
+ }
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Plaquette.cs b/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Plaquette.cs
index d7dd4477..494de845 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Plaquette.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/LegacyObjects/Plaquette.cs
@@ -1,20 +1,26 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
+using UnityEngine;
using UnityEngine.UI;
-public class Plaquette : MonoBehaviour
+namespace Unibas.DBIS.VREP.LegacyObjects
{
+ ///
+ /// Plaquette component describing the title of an image.
+ ///
+ public class Plaquette : MonoBehaviour
+ {
public Text text;
public Font font;
- // Use this for initialization
- void Start()
+ ///
+ /// Sets the text font if a font has been provided.
+ ///
+ private void Start()
{
- if (font != null)
- {
- text.font = font;
- }
+ if (font != null)
+ {
+ text.font = font;
+ }
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts.meta b/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts.meta
deleted file mode 100644
index de453629..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: a3509960955e4eff86f18ec70bb41a3c
-timeCreated: 1546809951
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/BuildingManager.cs b/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/BuildingManager.cs
deleted file mode 100644
index 06703ccf..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/BuildingManager.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using DefaultNamespace.VREM.Model;
-using UnityEngine;
-using Valve.VR.InteractionSystem;
-
-public class BuildingManager : MonoBehaviour {
-
-
- public float RoomSize = 10f;
-
- public float Offset = 5f;
-
- public GameObject RoomPrefab;
-
- private Exhibition _exhibition;
- private int currentPosition = 0;
-
- private GameObject roomObject;
- private Room roomLogic;
-
- private List theRooms = new List();
-
- private int GetNextPosition(int pos) {
- return (pos + 1) % _exhibition.rooms.Length;
- }
-
- private int GetPreviousPosition(int pos) {
- return (pos - 1 + _exhibition.rooms.Length) % _exhibition.rooms.Length;
- }
-
-
- private Vector3 CalculateRoomPosition(DefaultNamespace.VREM.Model.Room room) {
- float x = room.position.x, y = room.position.y, z = room.position.z;
- return new Vector3(x * RoomSize + x * Offset, y * RoomSize + y * Offset, z * RoomSize + z * Offset);
- }
-
- public void BuildRoom(DefaultNamespace.VREM.Model.Room room) {
- var goRoom = Instantiate(RoomPrefab);
- goRoom.transform.position = CalculateRoomPosition(room);
- Room roomLogic = goRoom.GetComponent();
- roomLogic.Populate(room);
- }
-
- private Room CreateRoom(DefaultNamespace.VREM.Model.Room room) {
- var goRoom = Instantiate(RoomPrefab);
- goRoom.transform.position = CalculateRoomPosition(room);
- Room roomLogic = goRoom.GetComponent();
- return roomLogic;
- }
-
-
-
- public void Create(Exhibition exhibition) {
- _exhibition = exhibition;
- foreach (var room in exhibition.rooms) {
- Room r = CreateRoom(room);
- theRooms.Add(r);
- r.Populate(room);
- }
-
- for (int i = 0; i < exhibition.rooms.Length; i++)
- {
- Room r = theRooms[i];
- r.SetNextRoom(theRooms[GetNextPosition(i)]);
- var tp = r.gameObject.transform.Find("TeleportPoint");
- if (tp != null && theRooms.Count > 1)
- {
- var porter = tp.GetComponent();
- var dest = CalculateRoomPosition(r.GetNextRoom().GetRoomModel());
- porter.destination = dest;
- r.SetPrevRoom(theRooms[GetPreviousPosition(i)]);
- }
- }
- }
-
-}
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/Room.cs b/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/Room.cs
deleted file mode 100644
index 063cc5a0..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/Room.cs
+++ /dev/null
@@ -1,282 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using DefaultNamespace;
-using DefaultNamespace.ObjImport;
-using DefaultNamespace.VREM.Model;
-using Unibas.DBIS.VREP;
-using UnityEngine;
-using Valve.VR.InteractionSystem;
-using World;
-
-[Obsolete("Got replaced by CuboidExhibitionRoom")]
-public class Room : MonoBehaviour {
-
- private string _northWallName = "NorthWall";
- private string _eastWallName = "EastWall";
- private string _southWallName = "SouthWall";
- private string _westWallName = "WestWall";
-
- public GameObject PlanePrefab;
-
- public AudioLoader audio;
-
- private List displayedImages = new List();
-
- private bool LightingActivated = false;
-
- public GameObject GlobePrefab;
-
- // Use this for initialization
- void Start () {
- if (audio == null)
- {
- audio = gameObject.AddComponent();
- }
- }
-
-
- ///
- ///
- ///
- void OnLeave()
- {
- //TODO: call this when leaving room
- audio.Stop();
- }
-
-
- ///
- ///
- ///
- ///
- ///
- private Wall GetWall(string name) {
- var go = transform.Find(name);
- string str = "Components: ";
-
- foreach( var e in go.transform.GetComponents()) {
- str += e.ToString();
- }
-
- Debug.Log("[Room] "+str);
-
- return transform.Find(name).GetComponent();
- }
-
-
- ///
- ///
- ///
- ///
- ///
- ///
- private Wall GetWallForOrientation(WallOrientation orientation) {
- switch (orientation) {
- case WallOrientation.NORTH:
- return GetWall(_northWallName);
- case WallOrientation.EAST:
- return GetWall(_eastWallName);
- case WallOrientation.SOUTH:
- return GetWall(_southWallName);
- case WallOrientation.WEST:
- return GetWall(_westWallName);
- default:
- throw new ArgumentOutOfRangeException("orientation", orientation, null);
- }
- }
-
-
- ///
- ///
- ///
- /// url to access image
- /// wall orientation
- /// x coordinate for corresponding wall based on left lower anchor
- /// x coordinate for corresponding wall based on left lower anchor
- public Displayal Display(string url, WallOrientation wall, float x, float y, float w, float h, bool lightOn = true, string audioUrl = null) {
- Debug.Log(string.Format("{0}, {1}, {2}/{3}, {4}/{5}",url,wall,x,y,w,h));
- GameObject displayal = Instantiate(PlanePrefab);
-
- var go = GameObject.Find("VirtualExhibitionManager");
- if (go.GetComponent().Settings.PlaygroundEnabled)
- {
- //var r = displayal.AddComponent();
- //r.useGravity = false;
- /*var i = displayal.AddComponent();
- i.hideHandOnAttach = true;
- i.useHandObjectAttachmentPoint = true;
- i.handFollowTransformPosition = true;
- i.handFollowTransformRotation = true;
- i.highlightOnHover = true;
- var t = displayal.AddComponent();
- t.releaseVelocityStyle = ReleaseStyle.NoChange;
- t.restoreOriginalParent = false;*/
- }
-
- if(!LightingActivated || !lightOn){
- displayal.transform.Find("Directional light").gameObject.SetActive(false);
- }
-
-
- Displayal disp = displayal.gameObject.GetComponent();
-
- ImageLoader image = displayal.transform.Find("Plane").gameObject.AddComponent(); // Displayal
- //ImageLoader image = displayal.AddComponent();// ImageDisplayPlane
- image.ReloadImage(url);
- Debug.Log(GetWallForOrientation(wall));
- Vector3 pos = GetWallForOrientation(wall).CalculatePosition(transform.position,new Vector2(x,y));
- Vector3 rot = GetWallForOrientation(wall).CalculateRotation();
- displayal.transform.position = pos;
- displayal.transform.rotation = Quaternion.Euler(rot);
- displayal.transform.localScale = ScalingUtility.convertMeters2PlaneScaleSize(w, h);
-
- if (audioUrl != null)
- {
- Debug.Log("added audio to display object");
- var closenessDetector = displayal.AddComponent();
- closenessDetector.url = audioUrl;
- }
-
-
- displayedImages.Add(displayal);
- return disp;
- }
-
-
- // UNUSED
- private volatile bool first = true;
-
-
- // Update is called once per frame
- void Update () {
- /*
- if (first) {
- // TESTING:
- Debug.Log("[Room] debug");
- Display("https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg", WallOrientation.NORTH, 5,5, .53f, .77f);
- Display("https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg", WallOrientation.EAST, 5,5, .53f, .77f);
- Display("https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg", WallOrientation.SOUTH, 5,5, .53f, .77f);
- Display("https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg", WallOrientation.WEST, 5,5, .53f, .77f);
- first = false;
- }*/
- }
-
- private DefaultNamespace.VREM.Model.Room _roomModel;
-
- private Room next;
- private Room prev;
-
- public void SetNextRoom(Room next) {
- this.next = next;
- }
-
- public void SetPrevRoom(Room prev) {
- this.prev = prev;
- }
-
- public Room GetNextRoom() {
- return next;
- }
-
- public Room GetPrevRoom() {
- return prev;
- }
-
-
- public DefaultNamespace.VREM.Model.Room GetRoomModel() {
- return _roomModel;
- }
-
- public void Populate(DefaultNamespace.VREM.Model.Room room) {
- Debug.Log(room);
- Debug.Log(room.walls);
- _roomModel = room;
-
-
- Debug.Log("adjusting ceiling and floor");
- // TODO Use new material loading code
- this.gameObject.transform.Find("Ceiling").gameObject.GetComponent().LoadMaterial(TexturingUtility.Translate(room.ceiling));
- this.gameObject.transform.Find("Floor").gameObject.GetComponent().LoadMaterial(TexturingUtility.Translate(room.floor));
-
- /*Debug.Log("add globe");
- if(GlobePrefab != null){ //TODO: add a new check
- var globe = Instantiate(GlobePrefab) as GameObject;
- globe.transform.rotation = Quaternion.Euler(-90, -90, 0);
- globe.transform.position = new Vector3(-2.5f, 0, -2.5f);
- globe.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
- }*/
-
- if (!string.IsNullOrEmpty(room.GetURLEncodedAudioPath()))
- {
- Debug.Log("add audio to room");
-
- if (audio == null)
- {
- audio = gameObject.AddComponent();
- }
-
- audio.ReloadAudio(room.GetURLEncodedAudioPath());
- }
- //
-
- PopulateWalls(room.walls);
- //PlaceExhibits(room.exhibits);
-
-
- // DEBUG TESTING TODO REMOVE this when done
- //Debug.Log("Test");
- //LoadAndPlaceModel(ServerSettings.SERVER_ID+"content/get/5bd3292c64aa33a460bcdade%2f1%2fexhibits%2fearth.obj", new Vector3(0,1,0));
-
- }
-
- private void PlaceExhibits(DefaultNamespace.VREM.Model.Exhibit[] exhibits) {
- foreach (Exhibit exhibit in exhibits) {
- LoadAndPlaceModel(exhibit.GetURLEncodedPath(), exhibit.position);
- }
- }
-
- private void LoadAndPlaceModel(string url, Vector3 pos) {
- GameObject parent = new GameObject("Model Anchor");
- GameObject model = new GameObject("Model");
- model.transform.SetParent(parent.transform);
- parent.transform.position = pos;
- ObjLoader objLoader = model.AddComponent();
- model.transform.Rotate(-90,0,0);
- model.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
- objLoader.Load(url);
- }
-
- private void PopulateWalls(DefaultNamespace.VREM.Model.Wall[] walls) {
- foreach (var wall in walls) {
- if (wall.direction == "NORTH") {
- LoadExhibits(wall, WallOrientation.NORTH);
- GetWallForOrientation(WallOrientation.NORTH).LoadMaterial(TexturingUtility.Translate(wall.texture));
- }
-
- if (wall.direction == "EAST") {
- LoadExhibits(wall, WallOrientation.EAST);
- GetWallForOrientation(WallOrientation.EAST).LoadMaterial(TexturingUtility.Translate(wall.texture));
- }
-
- if (wall.direction == "SOUTH") {
- LoadExhibits(wall, WallOrientation.SOUTH);
- GetWallForOrientation(WallOrientation.SOUTH).LoadMaterial(TexturingUtility.Translate(wall.texture));
- }
-
- if (wall.direction == "WEST") {
- LoadExhibits(wall, WallOrientation.WEST);
- GetWallForOrientation(WallOrientation.WEST).LoadMaterial(TexturingUtility.Translate(wall.texture));
- }
- }
- }
-
- private void LoadExhibits(DefaultNamespace.VREM.Model.Wall wall, WallOrientation orientation) {
- foreach (Exhibit e in wall.exhibits) {
- Debug.Log(string.Format("E: {0}/{1} at {2}/{3}", e.position.x, e.position.y, e.size.x, e.size.y));
- var disp = Display(e.GetURLEncodedPath(), orientation, e.position.x, e.position.y, e.size.x, e.size.y, e.light, e.GetURLEncodedAudioPath());
- disp.SetExhibitModel(e);
- }
- }
-}
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/Wall.cs b/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/Wall.cs
deleted file mode 100644
index d369e6b1..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/LegacyScripts/Wall.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-using System;
-using DefaultNamespace;
-using UnityEngine;
-using World;
-
-[Obsolete("Got replaced by ExhibitionWall")]
-public class Wall : TexturedMonoBehaviour {
-
- public WallOrientation Orientation;
-
- public float RoomRadius = 5;
-
-///
-/// Calculates the position relative to the wall. Origin is lower left corner
-///
-///
-/// x value is to the right, y value is up
-///
-///
- public Vector3 CalculatePosition(Vector3 floorCenter, Vector2 pos){
- float epsilon = 0.1f; // Required 0.1f with Displayal
-
- switch (Orientation) {
- case WallOrientation.NORTH:
- return new Vector3(
- floorCenter.x + (RoomRadius - epsilon),
- floorCenter.y + pos.y,
- (floorCenter.z + RoomRadius) - pos.x);
- case WallOrientation.EAST:
- return new Vector3(
- (floorCenter.x + RoomRadius) - pos.x,
- floorCenter.y + pos.y,
- floorCenter.z - (RoomRadius - epsilon));
- case WallOrientation.SOUTH:
- return new Vector3(
- floorCenter.x - (RoomRadius - epsilon),
- floorCenter.y + pos.y,
- (floorCenter.z - RoomRadius) + pos.x);
- case WallOrientation.WEST:
- return new Vector3(
- (floorCenter.x - RoomRadius) + pos.x,
- floorCenter.y + pos.y,
- floorCenter.z + (RoomRadius - epsilon));
- default:
- throw new ArgumentOutOfRangeException();
- }
- }
-
- ///
- ///
- ///
- ///
- ///
- public Vector3 CalculateRotation() {
- switch (Orientation) {
- case WallOrientation.NORTH:
- return new Vector3(90, 270, 0);
- case WallOrientation.EAST:
- return new Vector3(90, 0, 0);
- case WallOrientation.SOUTH:
- return new Vector3(90, 90, 0);
- case WallOrientation.WEST:
- return new Vector3(90, 180, 0);
- default:
- throw new ArgumentOutOfRangeException();
- }
- }
-
-
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Movement/PlayerTeleporter.cs b/Assets/Scripts/Unibas/DBIS/VREP/Movement/PlayerTeleporter.cs
index 8f972e7d..dd5ed866 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Movement/PlayerTeleporter.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Movement/PlayerTeleporter.cs
@@ -1,45 +1,40 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
+using UnityEngine;
using Valve.VR;
using Valve.VR.InteractionSystem;
-public class PlayerTeleporter : MonoBehaviour {
-
- public Vector3 Destination = Vector3.zero;
+namespace Unibas.DBIS.VREP.Movement
+{
+ ///
+ /// Player teleporter component.
+ ///
+ public class PlayerTeleporter : MonoBehaviour
+ {
+ public Vector3 destination = Vector3.zero;
+ public float minDistance = 1f;
- public float MinDistance = 1f;
+ ///
+ /// Teleports a player to the destination set.
+ ///
+ public void TeleportPlayer()
+ {
+ SteamVR_Fade.Start(Color.clear, 0.2f);
- public void TeleportPlayer()
- {
- SteamVR_Fade.Start( Color.clear, 0.2f );
+ var pgo = GameObject.FindWithTag("Player");
+ if (pgo == null)
+ {
+ Debug.LogWarning("No player found!");
+ }
- var pgo = GameObject.FindWithTag("Player");
- if (pgo == null)
- {
- Debug.LogWarning("No player found!");
- }
+ var player = pgo.GetComponent();
- var _player = pgo.GetComponent();
-
- if (_player == null)
- {
- Debug.LogWarning("No SteamVR Player attached!");
- }
-
-
- Vector3 playerFeetOffset = _player.trackingOriginTransform.position - _player.feetPositionGuess;
- _player.trackingOriginTransform.position = Destination + playerFeetOffset;
- }
+ if (player == null)
+ {
+ Debug.LogWarning("No SteamVR Player attached!");
+ }
- // Use this for initialization
- void Start () {
-
- }
-
- // Update is called once per frame
- void Update () {
-
- }
-}
+ var playerFeetOffset = player.trackingOriginTransform.position - player.feetPositionGuess;
+ player.trackingOriginTransform.position = destination + playerFeetOffset;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Movement/SmoothMouseLook.cs b/Assets/Scripts/Unibas/DBIS/VREP/Movement/SmoothMouseLook.cs
index 4c08aaf0..d4525af4 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Movement/SmoothMouseLook.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Movement/SmoothMouseLook.cs
@@ -1,138 +1,170 @@
-using System.Collections;
-using System.Collections.Generic;
+using System.Collections.Generic;
using UnityEngine;
+namespace Unibas.DBIS.VREP.Movement
+{
+ ///
+ /// Taken from http://wiki.unity3d.com/index.php/SmoothMouseLook
+ ///
+ [AddComponentMenu("Camera-Control/Smooth Mouse Look")]
+ public class SmoothMouseLook : MonoBehaviour
+ {
+ public enum RotationAxes
+ {
+ MouseXAndY = 0,
+ MouseX = 1,
+ MouseY = 2
+ }
-///
-/// by http://wiki.unity3d.com/index.php/SmoothMouseLook
-///
-[AddComponentMenu("Camera-Control/Smooth Mouse Look")]
-public class SmoothMouseLook : MonoBehaviour {
-public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
- public RotationAxes axes = RotationAxes.MouseXAndY;
- public float sensitivityX = 15F;
- public float sensitivityY = 15F;
-
- public float minimumX = -360F;
- public float maximumX = 360F;
-
- public float minimumY = -60F;
- public float maximumY = 60F;
-
- float rotationX = 0F;
- float rotationY = 0F;
-
- private List rotArrayX = new List();
- float rotAverageX = 0F;
-
- private List rotArrayY = new List();
- float rotAverageY = 0F;
-
- public float frameCounter = 20;
-
- Quaternion originalRotation;
-
- void Update ()
- {
- if (axes == RotationAxes.MouseXAndY)
- {
- rotAverageY = 0f;
- rotAverageX = 0f;
-
- rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
- rotationX += Input.GetAxis("Mouse X") * sensitivityX;
-
- rotArrayY.Add(rotationY);
- rotArrayX.Add(rotationX);
-
- if (rotArrayY.Count >= frameCounter) {
- rotArrayY.RemoveAt(0);
- }
- if (rotArrayX.Count >= frameCounter) {
- rotArrayX.RemoveAt(0);
- }
-
- for(int j = 0; j < rotArrayY.Count; j++) {
- rotAverageY += rotArrayY[j];
- }
- for(int i = 0; i < rotArrayX.Count; i++) {
- rotAverageX += rotArrayX[i];
- }
-
- rotAverageY /= rotArrayY.Count;
- rotAverageX /= rotArrayX.Count;
-
- rotAverageY = ClampAngle (rotAverageY, minimumY, maximumY);
- rotAverageX = ClampAngle (rotAverageX, minimumX, maximumX);
-
- Quaternion yQuaternion = Quaternion.AngleAxis (rotAverageY, Vector3.left);
- Quaternion xQuaternion = Quaternion.AngleAxis (rotAverageX, Vector3.up);
-
- transform.localRotation = originalRotation * xQuaternion * yQuaternion;
- }
- else if (axes == RotationAxes.MouseX)
- {
- rotAverageX = 0f;
-
- rotationX += Input.GetAxis("Mouse X") * sensitivityX;
-
- rotArrayX.Add(rotationX);
-
- if (rotArrayX.Count >= frameCounter) {
- rotArrayX.RemoveAt(0);
- }
- for(int i = 0; i < rotArrayX.Count; i++) {
- rotAverageX += rotArrayX[i];
- }
- rotAverageX /= rotArrayX.Count;
-
- rotAverageX = ClampAngle (rotAverageX, minimumX, maximumX);
-
- Quaternion xQuaternion = Quaternion.AngleAxis (rotAverageX, Vector3.up);
- transform.localRotation = originalRotation * xQuaternion;
- }
- else
- {
- rotAverageY = 0f;
-
- rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
-
- rotArrayY.Add(rotationY);
-
- if (rotArrayY.Count >= frameCounter) {
- rotArrayY.RemoveAt(0);
- }
- for(int j = 0; j < rotArrayY.Count; j++) {
- rotAverageY += rotArrayY[j];
- }
- rotAverageY /= rotArrayY.Count;
-
- rotAverageY = ClampAngle (rotAverageY, minimumY, maximumY);
-
- Quaternion yQuaternion = Quaternion.AngleAxis (rotAverageY, Vector3.left);
- transform.localRotation = originalRotation * yQuaternion;
- }
- }
-
- void Start ()
- {
- Rigidbody rb = GetComponent();
- if (rb)
- rb.freezeRotation = true;
- originalRotation = transform.localRotation;
- }
-
- public static float ClampAngle (float angle, float min, float max)
- {
- angle = angle % 360;
- if ((angle >= -360F) && (angle <= 360F)) {
- if (angle < -360F) {
- angle += 360F;
- }
- if (angle > 360F) {
- angle -= 360F;
- }
- }
- return Mathf.Clamp (angle, min, max);
- }
-}
+ public RotationAxes axes = RotationAxes.MouseXAndY;
+ public float sensitivityX = 15F;
+ public float sensitivityY = 15F;
+
+ public float minimumX = -360F;
+ public float maximumX = 360F;
+
+ public float minimumY = -60F;
+ public float maximumY = 60F;
+
+ private float _rotationX;
+ private float _rotationY;
+
+ private readonly List _rotArrayX = new List();
+ private float _rotAverageX;
+
+ private readonly List _rotArrayY = new List();
+ private float _rotAverageY;
+
+ public float frameCounter = 20;
+
+ private Quaternion _originalRotation;
+
+ private void Update()
+ {
+ switch (axes)
+ {
+ case RotationAxes.MouseXAndY:
+ {
+ _rotAverageY = 0f;
+ _rotAverageX = 0f;
+
+ _rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
+ _rotationX += Input.GetAxis("Mouse X") * sensitivityX;
+
+ _rotArrayY.Add(_rotationY);
+ _rotArrayX.Add(_rotationX);
+
+ if (_rotArrayY.Count >= frameCounter)
+ {
+ _rotArrayY.RemoveAt(0);
+ }
+
+ if (_rotArrayX.Count >= frameCounter)
+ {
+ _rotArrayX.RemoveAt(0);
+ }
+
+ foreach (var t in _rotArrayY)
+ {
+ _rotAverageY += t;
+ }
+
+ foreach (var t in _rotArrayX)
+ {
+ _rotAverageX += t;
+ }
+
+ _rotAverageY /= _rotArrayY.Count;
+ _rotAverageX /= _rotArrayX.Count;
+
+ _rotAverageY = ClampAngle(_rotAverageY, minimumY, maximumY);
+ _rotAverageX = ClampAngle(_rotAverageX, minimumX, maximumX);
+
+ var yQuaternion = Quaternion.AngleAxis(_rotAverageY, Vector3.left);
+ var xQuaternion = Quaternion.AngleAxis(_rotAverageX, Vector3.up);
+
+ transform.localRotation = _originalRotation * xQuaternion * yQuaternion;
+ break;
+ }
+ case RotationAxes.MouseX:
+ {
+ _rotAverageX = 0f;
+
+ _rotationX += Input.GetAxis("Mouse X") * sensitivityX;
+
+ _rotArrayX.Add(_rotationX);
+
+ if (_rotArrayX.Count >= frameCounter)
+ {
+ _rotArrayX.RemoveAt(0);
+ }
+
+ foreach (var t in _rotArrayX)
+ {
+ _rotAverageX += t;
+ }
+
+ _rotAverageX /= _rotArrayX.Count;
+
+ _rotAverageX = ClampAngle(_rotAverageX, minimumX, maximumX);
+
+ var xQuaternion = Quaternion.AngleAxis(_rotAverageX, Vector3.up);
+ transform.localRotation = _originalRotation * xQuaternion;
+ break;
+ }
+ default:
+ {
+ _rotAverageY = 0f;
+
+ _rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
+
+ _rotArrayY.Add(_rotationY);
+
+ if (_rotArrayY.Count >= frameCounter)
+ {
+ _rotArrayY.RemoveAt(0);
+ }
+
+ foreach (var t in _rotArrayY)
+ {
+ _rotAverageY += t;
+ }
+
+ _rotAverageY /= _rotArrayY.Count;
+
+ _rotAverageY = ClampAngle(_rotAverageY, minimumY, maximumY);
+
+ var yQuaternion = Quaternion.AngleAxis(_rotAverageY, Vector3.left);
+ transform.localRotation = _originalRotation * yQuaternion;
+ break;
+ }
+ }
+ }
+
+ private void Start()
+ {
+ var rb = GetComponent();
+ if (rb)
+ rb.freezeRotation = true;
+ _originalRotation = transform.localRotation;
+ }
+
+ public static float ClampAngle(float angle, float min, float max)
+ {
+ angle %= 360;
+ if (!(angle >= -360F) || !(angle <= 360F)) return Mathf.Clamp(angle, min, max);
+
+ if (angle < -360F)
+ {
+ angle += 360F;
+ }
+
+ if (angle > 360F)
+ {
+ angle -= 360F;
+ }
+
+ return Mathf.Clamp(angle, min, max);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/AudioLoader.cs b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/AudioLoader.cs
index 3edf6fbd..8cbf6c7c 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/AudioLoader.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/AudioLoader.cs
@@ -2,86 +2,92 @@
using UnityEngine;
using UnityEngine.Networking;
-namespace DefaultNamespace
+namespace Unibas.DBIS.VREP.Multimedia
{
-
- public class AudioLoader : MonoBehaviour
- {
- private AudioSource audioSource;
+ ///
+ /// Audio loader component for exhibits.
+ ///
+ public class AudioLoader : MonoBehaviour
+ {
+ private AudioSource _audioSource;
- private bool _loaded = false;
- private string _lastUrl = null;
+ private bool _loaded;
+ private string _lastUrl;
+ private void Start()
+ {
+ _audioSource = gameObject.AddComponent();
+ }
- // Use this for initialization
- void Start()
- {
- audioSource = gameObject.AddComponent();
- }
+ ///
+ /// Loads an audio source from the provided URL.
+ ///
+ /// The full audio URL.
+ /// The result yielded from the request.
+ private IEnumerator LoadAudio(string url)
+ {
+ if (_loaded && _lastUrl.Equals(url))
+ {
+ Play();
+ yield break;
+ }
- private IEnumerator LoadAudio(string url)
- {
- if (_loaded && _lastUrl.Equals(url))
- {
- Play();
- yield break;
- }
+ using var request = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.OGGVORBIS);
+ yield return request.SendWebRequest();
- using (var request = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.OGGVORBIS))
- {
- yield return request.SendWebRequest();
- if (!(request.isNetworkError || request.isHttpError))
- {
- var audioClip = DownloadHandlerAudioClip.GetContent(request);
- this.audioSource.clip = audioClip;
- this.audioSource.volume = 0.2f;
- this.audioSource.loop = true;
- this.audioSource.Play();
- _loaded = true;
- _lastUrl = url;
- }
- else
- {
- Debug.LogError(request.error);
- Debug.LogError(request.url);
- Debug.LogError(request.GetResponseHeaders());
- }
- }
- }
+ if (!(request.result == UnityWebRequest.Result.ConnectionError ||
+ request.result == UnityWebRequest.Result.ProtocolError))
+ {
+ var audioClip = DownloadHandlerAudioClip.GetContent(request);
- ///
- /// Plays the audio which was previosuly loaded via ReloadAudio().
- ///
- public void Play()
- {
- if (_loaded)
- {
- audioSource.Play();
- }
- else
- {
- ReloadAudio(_lastUrl);
- }
- }
+ _audioSource.clip = audioClip;
+ _audioSource.volume = 0.2f;
+ _audioSource.loop = true;
+ _audioSource.Play();
+ _loaded = true;
+ _lastUrl = url;
+ }
+ else
+ {
+ Debug.LogError(request.error);
+ Debug.LogError(request.url);
+ Debug.LogError(request.GetResponseHeaders());
+ }
+ }
- ///
- ///
- ///
- public void Stop()
- {
- audioSource.Stop();
- }
+ ///
+ /// Plays the audio which was previously loaded via ReloadAudio().
+ ///
+ public void Play()
+ {
+ if (_loaded)
+ {
+ _audioSource.Play();
+ }
+ else
+ {
+ ReloadAudio(_lastUrl);
+ }
+ }
- ///
- ///
- ///
- ///
- public void ReloadAudio(string url)
- {
- if (!string.IsNullOrEmpty(url))
- {
- StartCoroutine(LoadAudio(url));
- }
- }
+ ///
+ /// Stops the audio which was previously loaded (and playing).
+ ///
+ public void Stop()
+ {
+ _audioSource.Stop();
+ }
+
+ ///
+ /// Reloads an audio source from the provided URL.
+ ///
+ /// The full audio source URL.
+ public void ReloadAudio(string url)
+ {
+ if (!string.IsNullOrEmpty(url))
+ {
+ StartCoroutine(LoadAudio(url));
+ }
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/ImageLoader.cs b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/ImageLoader.cs
index 3610e530..4f1a7d5a 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/ImageLoader.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/ImageLoader.cs
@@ -3,58 +3,69 @@
using UnityEngine;
using UnityEngine.Networking;
-public class ImageLoader : MonoBehaviour {
-
- private MeshRenderer _renderer;
-
- // Use this for initialization
- void Start () {
- }
-
- private IEnumerator LoadImage(string url)
- {
- if (_renderer == null)
- {
- _renderer = GetComponent();
- }
- Texture2D tex = new Texture2D(512, 512, TextureFormat.ARGB32, true);
- var hasError = false;
- using (var request = UnityWebRequestTexture.GetTexture(url))
- {
- yield return request.SendWebRequest();
- if (!(request.isNetworkError || request.isHttpError))
- {
- tex = DownloadHandlerTexture.GetContent(request);
- }
- else
- {
- Debug.LogError(request.error);
- Debug.LogError(request.url);
- Debug.LogError(request.GetResponseHeaders());
- hasError = true;
- }
- }
-
- if (hasError)
- {
- _renderer.material.mainTexture = Resources.Load("Textures/not-available");
- }
- else
- {
- _renderer.material.mainTexture = tex;
- }
- GC.Collect();
- }
-
- ///
- ///
- ///
- ///
- public void ReloadImage(string url)
- {
- StartCoroutine(LoadImage(url));
- }
-
-}
+namespace Unibas.DBIS.VREP.Multimedia
+{
+ ///
+ /// Image loader component for exhibits.
+ ///
+ public class ImageLoader : MonoBehaviour
+ {
+ private MeshRenderer _renderer;
+ ///
+ /// Reloads an image from the provided URL. If the image is too large, it gets downscaled to reduce memory usage.
+ /// This allows larger exhibitions.
+ ///
+ /// The full image URL.
+ /// The result yielded from the request.
+ private IEnumerator LoadImage(string url)
+ {
+ if (_renderer == null)
+ {
+ _renderer = GetComponent();
+ }
+ var tex = new Texture2D(512, 512, TextureFormat.ARGB32, true);
+ var hasError = false;
+
+ // Do NOT use UnityWebRequestTexture here or you will run out of memory quickly if you load many images.
+ using (var request = UnityWebRequest.Get(url))
+ {
+ yield return request.SendWebRequest();
+ if (!(request.result == UnityWebRequest.Result.ConnectionError ||
+ request.result == UnityWebRequest.Result.ProtocolError))
+ {
+ tex.LoadImage(request.downloadHandler.data);
+
+ // Rescale so we don't run out of memory upon loading huge images.
+ // TODO This should only be a temporary resolution; consider adjusting this based on the exhibits size vector.
+ if (tex.height > 1024 || tex.width > 1024)
+ {
+ var resize = 1024.0 / Math.Max(tex.height, tex.width);
+ TextureScale.Bilinear(tex, (int) (tex.width * resize), (int) (tex.height * resize));
+ }
+ }
+ else
+ {
+ Debug.LogError(request.error);
+ Debug.LogError(request.url);
+ Debug.LogError(request.GetResponseHeaders());
+ hasError = true;
+ }
+ }
+
+ _renderer.material.mainTexture = hasError ? Resources.Load("Textures/not-available") : tex;
+
+ GC.Collect();
+ }
+
+ ///
+ /// Reloads an image from the provided URL.
+ ///
+ /// The full image URL.
+ public void ReloadImage(string url)
+ {
+ StartCoroutine(LoadImage(url));
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/TextureScale.cs b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/TextureScale.cs
new file mode 100644
index 00000000..3462ee33
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/TextureScale.cs
@@ -0,0 +1,176 @@
+namespace Unibas.DBIS.VREP.Multimedia
+{
+ using System.Threading;
+ using UnityEngine;
+
+ ///
+ /// Taken from http://wiki.unity3d.com/index.php/TextureScale
+ /// Copyright to Eric Haines.
+ /// Only works on ARGB32, RGB24 and Alpha8 textures that are marked readable.
+ ///
+ public class TextureScale
+ {
+ public class ThreadData
+ {
+ public int start;
+ public int end;
+
+ public ThreadData(int s, int e)
+ {
+ start = s;
+ end = e;
+ }
+ }
+
+ private static Color[] texColors;
+ private static Color[] newColors;
+ private static int w;
+ private static float ratioX;
+ private static float ratioY;
+ private static int w2;
+ private static int finishCount;
+ private static Mutex mutex;
+
+ public static void Point(Texture2D tex, int newWidth, int newHeight)
+ {
+ ThreadedScale(tex, newWidth, newHeight, false);
+ }
+
+ public static Texture2D Bilinear(Texture2D tex, int newWidth, int newHeight)
+ {
+ return ThreadedScale(tex, newWidth, newHeight, true);
+ }
+
+ private static Texture2D ThreadedScale(Texture2D tex, int newWidth, int newHeight, bool useBilinear)
+ {
+ texColors = tex.GetPixels();
+ newColors = new Color[newWidth * newHeight];
+ if (useBilinear)
+ {
+ ratioX = 1.0f / ((float) newWidth / (tex.width - 1));
+ ratioY = 1.0f / ((float) newHeight / (tex.height - 1));
+ }
+ else
+ {
+ ratioX = ((float) tex.width) / newWidth;
+ ratioY = ((float) tex.height) / newHeight;
+ }
+
+ w = tex.width;
+ w2 = newWidth;
+ var cores = Mathf.Min(SystemInfo.processorCount, newHeight);
+ var slice = newHeight / cores;
+
+ finishCount = 0;
+ if (mutex == null)
+ {
+ mutex = new Mutex(false);
+ }
+
+ if (cores > 1)
+ {
+ int i = 0;
+ ThreadData threadData;
+ for (i = 0; i < cores - 1; i++)
+ {
+ threadData = new ThreadData(slice * i, slice * (i + 1));
+ ParameterizedThreadStart ts = useBilinear
+ ? new ParameterizedThreadStart(BilinearScale)
+ : new ParameterizedThreadStart(PointScale);
+ Thread thread = new Thread(ts);
+ thread.Start(threadData);
+ }
+
+ threadData = new ThreadData(slice * i, newHeight);
+ if (useBilinear)
+ {
+ BilinearScale(threadData);
+ }
+ else
+ {
+ PointScale(threadData);
+ }
+
+ while (finishCount < cores)
+ {
+ Thread.Sleep(1);
+ }
+ }
+ else
+ {
+ ThreadData threadData = new ThreadData(0, newHeight);
+ if (useBilinear)
+ {
+ BilinearScale(threadData);
+ }
+ else
+ {
+ PointScale(threadData);
+ }
+ }
+
+ tex.Resize(newWidth, newHeight);
+ tex.SetPixels(newColors);
+ tex.Apply();
+
+ texColors = null;
+ newColors = null;
+
+ return tex;
+ }
+
+ public static void BilinearScale(System.Object obj)
+ {
+ ThreadData threadData = (ThreadData) obj;
+ for (var y = threadData.start; y < threadData.end; y++)
+ {
+ int yFloor = (int) Mathf.Floor(y * ratioY);
+ var y1 = yFloor * w;
+ var y2 = (yFloor + 1) * w;
+ var yw = y * w2;
+
+ for (var x = 0; x < w2; x++)
+ {
+ int xFloor = (int) Mathf.Floor(x * ratioX);
+ var xLerp = x * ratioX - xFloor;
+
+ newColors[yw + x] = ColorLerpUnclamped(
+ ColorLerpUnclamped(texColors[y1 + xFloor], texColors[y1 + xFloor + 1], xLerp),
+ ColorLerpUnclamped(texColors[y2 + xFloor], texColors[y2 + xFloor + 1], xLerp),
+ y * ratioY - yFloor);
+ }
+ }
+
+ mutex.WaitOne();
+ finishCount++;
+ mutex.ReleaseMutex();
+ }
+
+ public static void PointScale(System.Object obj)
+ {
+ ThreadData threadData = (ThreadData) obj;
+ for (var y = threadData.start; y < threadData.end; y++)
+ {
+ var thisY = (int) (ratioY * y) * w;
+ var yw = y * w2;
+
+ for (var x = 0; x < w2; x++)
+ {
+ newColors[yw + x] = texColors[(int) (thisY + ratioX * x)];
+ }
+ }
+
+ mutex.WaitOne();
+ finishCount++;
+ mutex.ReleaseMutex();
+ }
+
+ private static Color ColorLerpUnclamped(Color c1, Color c2, float value)
+ {
+ return new Color(c1.r + (c2.r - c1.r) * value,
+ c1.g + (c2.g - c1.g) * value,
+ c1.b + (c2.b - c1.b) * value,
+ c1.a + (c2.a - c1.a) * value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/TextureScale.cs.meta b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/TextureScale.cs.meta
new file mode 100644
index 00000000..5f919389
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Multimedia/TextureScale.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 98cb3e5e07464b2a83873e6e30e0090b
+timeCreated: 1626784288
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ClosenessDetector.cs b/Assets/Scripts/Unibas/DBIS/VREP/Utils/ClosenessDetector.cs
index ccf8642b..9bd07313 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ClosenessDetector.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Utils/ClosenessDetector.cs
@@ -3,90 +3,102 @@
using UnityEngine;
using UnityEngine.Networking;
+namespace Unibas.DBIS.VREP.Utils
+{
+ ///
+ /// Closeness detector component to load and play audio sources.
+ ///
+ public class ClosenessDetector : MonoBehaviour
+ {
+ public string url;
+ private AudioSource _audioSource;
+ private bool _playing;
+ private bool _downloading;
-public class ClosenessDetector : MonoBehaviour {
- public string url;
- private AudioSource audioSource;
- private bool playing = false;
- private bool downloading = false;
+ public float maxDistance = 2;
- public float maxDistance = 2;
-
- // Use this for initialization
- private void Start()
- {
- audioSource = gameObject.AddComponent();
- }
+ ///
+ /// Add component to audio source.
+ ///
+ private void Start()
+ {
+ _audioSource = gameObject.AddComponent();
+ }
+ ///
+ /// Play or stop audio if the camera is close enough to the object.
+ ///
+ private void Update()
+ {
+ var cameraPosition = Camera.allCameras[0].transform.position;
+ var objectPosition = gameObject.transform.position;
- private void Update()
- {
- var cameraPosition = Camera.allCameras[0].transform.position;
- var objectPosition = this.gameObject.transform.position;
+ // Load audio if it hasn't been previously loaded/assigned.
+ if (!string.IsNullOrEmpty(url) && _audioSource.clip == null && !_downloading)
+ {
+ _downloading = true;
+ StartCoroutine(LoadAudio(url));
+ }
- if (!string.IsNullOrEmpty(url) && this.audioSource.clip == null && !downloading)
- {
- downloading = true;
- StartCoroutine(LoadAudio(url));
- }
+ var dist = Vector3.Distance(cameraPosition, objectPosition);
- var dist = Vector3.Distance(cameraPosition, objectPosition);
-
- if (Math.Abs(dist) < maxDistance){
- Play();
- } else
- {
- Stop();
- }
- }
+ if (Math.Abs(dist) < maxDistance)
+ {
+ Play();
+ }
+ else
+ {
+ Stop();
+ }
+ }
- private IEnumerator LoadAudio(string url)
- {
- using (var request = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.OGGVORBIS)){
- yield return request.SendWebRequest();
+ ///
+ /// Sends a request to load the specified audio file from VREM.
+ ///
+ /// The URL of the audio file.
+ /// The result yielded from the request.
+ private IEnumerator LoadAudio(string audioURL)
+ {
+ using var request = UnityWebRequestMultimedia.GetAudioClip(audioURL, AudioType.OGGVORBIS);
- if (!(request.isNetworkError || request.isHttpError)) {
- var audioClip = DownloadHandlerAudioClip.GetContent(request);
- this.audioSource.clip = audioClip;
- }
- else
- {
- Debug.LogError(request.error);
- Debug.LogError(request.url);
- Debug.LogError(request.GetResponseHeaders());
- }
- }
- }
+ yield return request.SendWebRequest();
-
- ///
- ///
- ///
- public void Play()
- {
- if (!playing && !AudioListener.pause && audioSource != null && audioSource.clip != null)
- {
- AudioListener.pause = true;
- audioSource.ignoreListenerPause = true;
- audioSource.Play();
- playing = true;
- }
- }
+ if (!(request.result == UnityWebRequest.Result.ConnectionError ||
+ request.result == UnityWebRequest.Result.ProtocolError))
+ {
+ var audioClip = DownloadHandlerAudioClip.GetContent(request);
+ _audioSource.clip = audioClip;
+ }
+ else
+ {
+ Debug.LogError(request.error);
+ Debug.LogError(request.url);
+ Debug.LogError(request.GetResponseHeaders());
+ }
+ }
- ///
- ///
- ///
- public void Stop()
- {
- if (playing && AudioListener.pause && audioSource != null && audioSource.clip != null)
- {
- audioSource.Stop();
- playing = false;
- audioSource.ignoreListenerPause = false;
- AudioListener.pause = false;
- }
- }
-
-
-}
+ ///
+ /// Plays the audio file in this component.
+ ///
+ public void Play()
+ {
+ if (_playing || AudioListener.pause || _audioSource == null || _audioSource.clip == null) return;
+ AudioListener.pause = true;
+ _audioSource.ignoreListenerPause = true;
+ _audioSource.Play();
+ _playing = true;
+ }
+ ///
+ /// Stops the audio file of this component.
+ ///
+ public void Stop()
+ {
+ if (!_playing || !AudioListener.pause || _audioSource == null || _audioSource.clip == null) return;
+ _audioSource.Stop();
+ _playing = false;
+ _audioSource.ignoreListenerPause = false;
+ AudioListener.pause = false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ScalingUtility.cs b/Assets/Scripts/Unibas/DBIS/VREP/Utils/ScalingUtility.cs
index cde6683a..18ba1f7c 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ScalingUtility.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Utils/ScalingUtility.cs
@@ -1,26 +1,31 @@
using UnityEngine;
-namespace DefaultNamespace {
- public class ScalingUtility {
-
+namespace Unibas.DBIS.VREP.Utils
+{
+ ///
+ /// Utility class for scaling vectors from meters to plane scale and back.
+ ///
+ public static class ScalingUtility
+ {
///
- /// Transforms sizes from meters to unity scales
+ /// Transforms sizes from meters to unity scales.
///
- /// width in meters
- /// height in meters
- ///
- public static Vector3 convertMeters2PlaneScaleSize(float meterWidth, float meterHeight) {
- return convertMeters2PlaceScaleSize(new Vector3(meterWidth, 1, meterHeight));
+ /// The width in meters.
+ /// The height in meters.
+ /// The transformed vector.
+ public static Vector3 ConvertMeters2PlaneScaleSize(float meterWidth, float meterHeight)
+ {
+ return ConvertMeters2PlaceScaleSize(new Vector3(meterWidth, 1, meterHeight));
}
///
- /// Transforms sizes from meters to unity scales
+ /// Transforms sizes from meters to unity scales.
///
- /// size in meters
- ///
- private static Vector3 convertMeters2PlaceScaleSize(Vector3 meterSize) {
+ /// The size in meters.
+ /// The transformed vector.
+ private static Vector3 ConvertMeters2PlaceScaleSize(Vector3 meterSize)
+ {
return meterSize / 10f;
}
-
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ServerSettings.cs b/Assets/Scripts/Unibas/DBIS/VREP/Utils/ServerSettings.cs
deleted file mode 100644
index 99e6f3b9..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ServerSettings.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using System;
-
-namespace DefaultNamespace {
- public class ServerSettings {
- [Obsolete("Replaced by settings.")]
- public static string SERVER_ID = "http://localhost:4567/";
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ServerSettings.cs.meta b/Assets/Scripts/Unibas/DBIS/VREP/Utils/ServerSettings.cs.meta
deleted file mode 100644
index 9373fc23..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/Utils/ServerSettings.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: c835f0d6499e4555a8b83448696e27a2
-timeCreated: 1540626511
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturedMonoBehaviour.cs b/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturedMonoBehaviour.cs
index c32a4a93..dd58bc33 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturedMonoBehaviour.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturedMonoBehaviour.cs
@@ -1,35 +1,38 @@
using UnityEngine;
-namespace DefaultNamespace {
-
-
- public class TexturedMonoBehaviour : MonoBehaviour {
-
+namespace Unibas.DBIS.VREP.Utils
+{
+ ///
+ /// Loads materials from the resource folders.
+ /// Currently not used.
+ ///
+ public class TexturedMonoBehaviour : MonoBehaviour
+ {
///
/// Loads the specified material as the renderer's main material.
///
- /// The material to load
- public void LoadMaterial(Material material) {
- Renderer rend = GetComponent();
+ /// The material to load.
+ public void LoadMaterial(Material material)
+ {
+ var rend = GetComponent();
if (rend != null && material != null)
{
rend.material = material;
}
}
-
+
///
/// Loads the specified material from the resources folder.
- /// The material must be a valid Unity3D material stored in Resources/Materials/
- /// The name of the material, as it is stored in Resources/Materials/
+ /// The material must be a valid Unity3D material stored in Resources/Materials/.
+ /// The name of the material, as it is stored in Resources/Materials/.
///
public void LoadMaterial(string materialName)
{
- Debug.Log("Loading material " + materialName);
-
+ Debug.Log("Loading material " + materialName + ".");
+
var material = Resources.Load("Materials/" + materialName, typeof(Material)) as Material;
-
+
LoadMaterial(material);
}
-
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturingUtility.cs b/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturingUtility.cs
index edae0510..5e971f6c 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturingUtility.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/Utils/TexturingUtility.cs
@@ -1,102 +1,69 @@
-using System;
-using System.Collections;
using UnityEngine;
-namespace DefaultNamespace
+namespace Unibas.DBIS.VREP.Utils
{
- public class TexturingUtility
+ ///
+ /// Utility for loading textures/Material objects.
+ ///
+ public static class TexturingUtility
+ {
+ public static string Translate(string name)
{
- public static string Translate(string name)
- {
- var material = "";
+ var material = name switch
+ {
+ "BRICKS" => "NBricksMaterial",
+ "CONCRETE" => "NConcreteMaterial",
+ "CONCRETETILES" => "NConcreteMaterial",
+ "FABRIC" => "Fabric02Material",
+ "GOLD" => "GoldMaterial",
+ "LOUISXIV" => "LouisXIVMaterial",
+ "SCRATCHES" => "ScratchesMaterial",
+ "SILVER" => "ShinySilverMaterial",
+ "STARS" => "StarMaterial",
+ "TILES" => "TilesMaterial",
+ "WALLPAPER" => "WallpaperMaterial",
+ "WOOD1" => "NWoodFloorMaterial",
+ "WOOD2" => "NWoodMaterial",
+ "WOOD3" => "WoodMaterial3",
+ "NONE" => "",
+ _ => name
+ };
- switch (name)
- {
- case "BRICKS":
- material = "NBricksMaterial";
- break;
- case "CONCRETE":
- material = "NConcreteMaterial";
- break;
- case "CONCRETETILES":
- material = "NConcreteMaterial";
- break;
- case "FABRIC":
- material = "Fabric02Material";
- break;
- case "GOLD":
- material = "GoldMaterial";
- break;
- case "LOUISXIV":
- material = "LouisXIVMaterial";
- break;
- case "SCRATCHES":
- material = "ScratchesMaterial";
- break;
- case "SILVER":
- material = "ShinySilverMaterial";
- break;
- case "STARS":
- material = "StarMaterial";
- break;
- case "TILES":
- material = "TilesMaterial";
- break;
- case "WALLPAPER":
- material = "WallpaperMaterial";
- break;
- case "WOOD1":
- material = "NWoodFloorMaterial";
- break;
- case "WOOD2":
- material = "NWoodMaterial";
- break;
- case "WOOD3":
- material = "WoodMaterial3";
- break;
- case "NONE":
- material = "";
- break;
- default:
- material = name;
- break;
- }
+ return material;
+ }
- return material;
- }
+ ///
+ /// Loads a Material object by name (e.g., from a wall model of VREM).
+ ///
+ /// The name of the texture.
+ /// Whether to translate from a shorter/more intuitive name.
+ /// The loaded Material according to the specified texture.
+ public static Material LoadMaterialByName(string name, bool translate = false)
+ {
+ var material = name;
+ if (translate)
+ {
+ material = Translate(name);
+ }
- public static Material LoadMaterialByName(string name, bool translate = false)
- {
- string material = name;
- if (translate)
- {
- material = Translate(name);
- }
- //else
- //{
- if (!material.EndsWith("Material"))
- {
- material = material + "Material";
- }
+ if (!material.EndsWith("Material"))
+ {
+ material += "Material";
+ }
- //material = name;
- //}
+ if (!string.IsNullOrEmpty(material))
+ {
+ var mat = Resources.Load("Materials/" + material, typeof(Material)) as Material;
+ if (mat == null)
+ {
+ Debug.LogWarning("Couldn't load material for name: " + material);
+ }
+ return mat;
+ }
- if (!string.IsNullOrEmpty(material))
- {
- var mat = Resources.Load("Materials/" + material, typeof(Material)) as Material;
- if (mat == null)
- {
- Debug.LogWarning("Couldn't load material for name: "+material);
- }
- return mat;
- }
- else
- {
- return null; //TODO: return default material
- }
- }
+ return null; // TODO Return default material.
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/ListExhibitionsResponse.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/ListExhibitionsResponse.cs
index f556c1a9..073d976c 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/ListExhibitionsResponse.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/ListExhibitionsResponse.cs
@@ -1,11 +1,14 @@
-using System;
-using DefaultNamespace.VREM.Model;
-
-namespace DefaultNamespace.VREM
-{
- [Serializable]
- public class ListExhibitionsResponse
- {
- public ExhibitionSummary[] exhibitions;
- }
+using System;
+using Unibas.DBIS.VREP.VREM.Model;
+
+namespace Unibas.DBIS.VREP.VREM
+{
+ ///
+ /// ch.unibas.dmi.dbis.vrem.model.api.ListExhibitionsResponse
+ ///
+ [Serializable]
+ public class ListExhibitionsResponse
+ {
+ public ExhibitionSummary[] exhibitions;
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibit.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibit.cs
index 7fdb57f6..bf50e599 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibit.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibit.cs
@@ -1,44 +1,58 @@
-using System;
-using System.Collections.Generic;
-using Unibas.DBIS.VREP;
-using UnityEngine;
-
-namespace DefaultNamespace.VREM.Model {
-
- ///
- /// ch.unibas.dmi.dbis.vrem.model.Ehibit
- ///
- [Serializable]
- public class Exhibit {
- public string id;
- public string name;
- public string type;
- public string path;
- public string description;
-
- public string audio;
- public bool light;
-
- public Dictionary metadata;
-
- public Vector3 position;
- public Vector3 size;
-
- public string GetURLEncodedPath() {
- return VREPController.Instance.Settings.VREMAddress+"content/get/"+path.Substring(0).Replace("/", "%2F").Replace(" ", "%20");
- }
-
- public string GetURLEncodedAudioPath() {
- if (!string.IsNullOrEmpty(audio)) {
- //return "https://upload.wikimedia.org/wikipedia/commons/7/7b/FurElise.ogg";
- return VREPController.Instance.Settings.VREMAddress+"content/get/"+ audio.Substring(0).Replace("/", "%2F").Replace(" ", "%20");
- }
- else
- {
- return null;
- }
- }
-
-
- }
+using System;
+using System.Collections.Generic;
+using Unibas.DBIS.VREP.Core;
+using UnityEngine;
+using Valve.Newtonsoft.Json;
+
+namespace Unibas.DBIS.VREP.VREM.Model
+{
+ ///
+ /// ch.unibas.dmi.dbis.vrem.model.exhibition.Exhibit
+ ///
+ [Serializable]
+ public class Exhibit
+ {
+ [JsonProperty("_id")] public string id;
+ public string name;
+ public string type;
+ public string path;
+ public string description;
+
+ public string audio;
+ public bool light;
+
+ public Dictionary Metadata;
+
+ public Vector3 position;
+ public Vector3 size;
+
+ ///
+ /// Composes the URL where an exhibit's image file can be found via the VREM API.
+ /// Note that this relies on exhibition ID stored in the configuration of the controller.
+ ///
+ /// A string with the full path/URL to the image of the exhibit.
+ public string GetURLEncodedPath()
+ {
+ return VrepController.Instance.settings.VremAddress + "content/get/" +
+ VrepController.Instance.settings.ExhibitionId + "%2F" +
+ path.Substring(0).Replace("/", "%2F").Replace(" ", "%20");
+ }
+
+ ///
+ /// Composes the URL where the audio for an exhibit can be found via the VREM API.
+ /// Note that this relies on exhibition ID stored in the configuration of the controller.
+ ///
+ /// A string with the full path/URL to the audio of the exhibit.
+ public string GetURLEncodedAudioPath()
+ {
+ if (!string.IsNullOrEmpty(audio))
+ {
+ return VrepController.Instance.settings.VremAddress + "content/get/" +
+ VrepController.Instance.settings.ExhibitionId + "%2F" +
+ audio.Substring(0).Replace("/", "%2F").Replace(" ", "%20");
+ }
+
+ return null;
+ }
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibition.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibition.cs
index 6e7b5fdd..14063c5e 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibition.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Exhibition.cs
@@ -1,21 +1,18 @@
using System;
-using System.Collections.Generic;
-using UnityEngine;
+using Valve.Newtonsoft.Json;
-namespace DefaultNamespace.VREM.Model {
-
+namespace Unibas.DBIS.VREP.VREM.Model
+{
///
/// ch.unibas.dmi.dbis.vrem.model.exhibition.Exhibition
///
[Serializable]
- public class Exhibition {
-
- public string id;
+ public class Exhibition
+ {
+ [JsonProperty("_id")] public string id;
public string name;
public string description;
-
- public Room[] rooms;
-
+ public Room[] rooms;
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/ExhibitionSummary.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/ExhibitionSummary.cs
index 8f4af880..095e7904 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/ExhibitionSummary.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/ExhibitionSummary.cs
@@ -1,8 +1,14 @@
-namespace DefaultNamespace.VREM.Model
-{
- public class ExhibitionSummary
- {
- public string objectId;
- public string name;
- }
+using System;
+
+namespace Unibas.DBIS.VREP.VREM.Model
+{
+ ///
+ /// ch.unibas.dmi.dbis.vrem.model.exhibition.ExhibitionSummary
+ ///
+ [Serializable]
+ public class ExhibitionSummary
+ {
+ public string id;
+ public string name;
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Room.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Room.cs
index 31658bf8..10ce2f42 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Room.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Room.cs
@@ -1,50 +1,49 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using World;
-
-namespace DefaultNamespace.VREM.Model {
- [Serializable]
- public class Room {
-
- public string text;
- public Vector3 size;
- public Vector3 position;
- public Vector3 entrypoint;
- public Wall[] walls;
-
- public string floor;
- public string ceiling;
-
- public string ambient;
-
- public Exhibit[] exhibits;
-
-
- public string GetURLEncodedAudioPath() {
- if (!string.IsNullOrEmpty(ambient))
- {
- return ServerSettings.SERVER_ID+"content/get/"+ ambient.Substring(0).Replace("/", "%2F").Replace(" ", "%20");
- }
- else
- {
- return null;
- }
-
- }
-
- public Wall GetWall(WallOrientation orientation)
- {
- foreach (var wall in walls)
- {
- WallOrientation wor = (WallOrientation) Enum.Parse(typeof(WallOrientation), wall.direction, true);
- if (wor.Equals(orientation))
- {
- return wall;
- }
- }
-
- return null;
- }
- }
+using System;
+using System.Linq;
+using Unibas.DBIS.VREP.Core;
+using Unibas.DBIS.VREP.Utils;
+using Unibas.DBIS.VREP.World;
+using UnityEngine;
+
+namespace Unibas.DBIS.VREP.VREM.Model
+{
+ ///
+ /// ch.unibas.dmi.dbis.vrem.model.exhibition.Room
+ ///
+ [Serializable]
+ public class Room
+ {
+ public string text;
+ public Vector3 size;
+ public Vector3 position;
+ public Vector3 entrypoint;
+ public Wall[] walls;
+
+ public string floor;
+ public string ceiling;
+
+ public string ambient;
+
+ public Exhibit[] exhibits;
+
+ public string GetURLEncodedAudioPath()
+ {
+ if (!string.IsNullOrEmpty(ambient))
+ {
+ return VrepController.Instance.settings.VremAddress + "/content/get/" +
+ ambient.Substring(0).Replace("/", "%2F").Replace(" ", "%20");
+ }
+
+ return null;
+ }
+
+ public Wall GetWall(WallOrientation orientation)
+ {
+ return (from wall in walls
+ let wor = (WallOrientation) Enum.Parse(typeof(WallOrientation), wall.direction, true)
+ where wor.Equals(orientation)
+ select wall)
+ .FirstOrDefault();
+ }
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Wall.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Wall.cs
index 5466ac45..84064395 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Wall.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/Model/Wall.cs
@@ -1,23 +1,27 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using World;
-
-namespace DefaultNamespace.VREM.Model {
- [Serializable]
- public class Wall {
-
- public Vector3 color;
- public string direction;
-
- public Exhibit[] exhibits;
-
- public string texture; // NONE -> debug: colors
-
- public WallOrientation GetOrientation()
- {
- return (WallOrientation) Enum.Parse(typeof(WallOrientation), direction, true);
- }
-
- }
+using System;
+using Unibas.DBIS.VREP.World;
+using UnityEngine;
+
+namespace Unibas.DBIS.VREP.VREM.Model
+{
+ ///
+ /// ch.unibas.dmi.dbis.vrem.model.exhibition.Wall
+ ///
+ [Serializable]
+ public class Wall
+ {
+ public string direction;
+ public string texture;
+ public Vector3 color;
+ public Exhibit[] exhibits;
+
+ ///
+ /// Obtains the WallOrientation enum/direction of this wall object.
+ ///
+ ///
+ public WallOrientation GetOrientation()
+ {
+ return (WallOrientation) Enum.Parse(typeof(WallOrientation), direction, true);
+ }
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/VREMClient.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/VREMClient.cs
deleted file mode 100644
index 9a412b61..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/VREMClient.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-using System;
-using System.Collections;
-using System.Text;
-using UnityEngine;
-using UnityEngine.Networking;
-
-namespace DefaultNamespace.VREM
-{
- public class VREMClient : MonoBehaviour
- {
- public string ServerUrl;
- private string suffix;
-
- private string response;
-
- private const string LOAD_EXHIBITION_ACTION = "exhibitions/load/";
- private const string LIST_EXHIBITIONS_ACTION = "exhibitions/list";
-
- private Action responseProcessor;
-
- ///
- /// Requests an exhibition and calls the processor, once the exhibition is loaded.
- ///
- /// The ID of the exhibition
- /// An Action which processes VREM's response. If null is passed to that action, an error occurred
- public void RequestExhibition(string exhibitionId, Action processor)
- {
- // TODO Refactor Action to a proper interface
- this.suffix = exhibitionId;
- responseProcessor = processor;
- StartCoroutine(DoExhibitionRequest());
- }
-
- private IEnumerator DoExhibitionRequest()
- {
- SanitizeServerUrl();
-
- Debug.Log("[VREMClient] Requesting... "+ServerUrl+LOAD_EXHIBITION_ACTION+suffix);
- using (var request = UnityWebRequest.Get(ServerUrl + LOAD_EXHIBITION_ACTION + suffix))
- {
- yield return request.SendWebRequest();
- if (!(request.isNetworkError || request.isHttpError))
- {
- response = request.downloadHandler.text;
- if (responseProcessor != null)
- {
- responseProcessor.Invoke(response);
- }
- }
- else
- {
- Debug.LogError(request.error);
- // TODO Error, handle it!
- error = true;
- responseProcessor.Invoke(null);
- }
- }
- }
-
- private IEnumerator DoListExhibitionRequest()
- {
- SanitizeServerUrl();
-
- Debug.Log("[VREMClient] Requesting exhibition list ");
- using (var request = UnityWebRequest.Get(ServerUrl+LIST_EXHIBITIONS_ACTION))
- {
- yield return request.SendWebRequest();
- if (!(request.isNetworkError || request.isHttpError))
- {
- response = request.downloadHandler.text;
- // TODO Parse list of IDs and further loading of the exhibitions.
- // Will induce follow-up DoExhibitonRequests
- }
- else
- {
- Debug.LogError(request.error);
- // TODO Handle error properly
- error = true;
- responseProcessor.Invoke(null);
- }
- }
- }
-
- private void SanitizeServerUrl()
- {
- if (!ServerUrl.StartsWith("http://"))
- {
- ServerUrl = "http://" + ServerUrl;
- }
-
- if (!ServerUrl.EndsWith("/"))
- {
- ServerUrl = ServerUrl + "/";
- }
- }
-
- private bool error = false;
-
- public bool HasError()
- {
- return error;
- }
-
- /**
- * Generates a WWW object with given params
- *
- * @param url - A string which represents the url
- * @param json - The json data to send, as a string
- *
- */
- public static WWW GenerateJSONPostRequest(string url, string json)
- {
- Hashtable headers = new Hashtable();
- headers.Add("Content-Type", "application/json");
- byte[] postData = Encoding.ASCII.GetBytes(json.ToCharArray());
- return new WWW(url,
- postData);
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/VremClient.cs b/Assets/Scripts/Unibas/DBIS/VREP/VREM/VremClient.cs
new file mode 100644
index 00000000..1df8fd6d
--- /dev/null
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/VremClient.cs
@@ -0,0 +1,120 @@
+using System;
+using System.Collections;
+using UnityEngine;
+using UnityEngine.Networking;
+
+namespace Unibas.DBIS.VREP.VREM
+{
+ ///
+ /// VREM client handling requests to the VREM API to load exhibitions/exhibits.
+ ///
+ public class VremClient : MonoBehaviour
+ {
+ public string serverUrl;
+ private string _suffix;
+ private string _response;
+
+ private const string LoadExhibitionAction = "exhibitions/load/";
+ private const string ListExhibitionsAction = "exhibitions/list";
+
+ private Action _responseProcessor;
+
+ ///
+ /// Requests an exhibition and calls the processor, once the exhibition is loaded.
+ ///
+ /// The ID of the exhibition.
+ /// An Action which processes VREM's response (e.g., VrepController.ParseExhibition())
+ public void RequestExhibition(string exhibitionId, Action processor)
+ {
+ // TODO Refactor Action to a proper interface.
+ _suffix = exhibitionId;
+ _responseProcessor = processor;
+ StartCoroutine(DoExhibitionRequest());
+ }
+
+ ///
+ /// Executes an exhibition request based on the parameters that have been set previously.
+ /// Invoked via Coroutine.
+ ///
+ /// The result yielded from the request.
+ private IEnumerator DoExhibitionRequest()
+ {
+ SanitizeServerUrl();
+
+ Debug.Log("[VREMClient] Requesting " + serverUrl + LoadExhibitionAction + _suffix + ".");
+
+ using var request = UnityWebRequest.Get(serverUrl + LoadExhibitionAction + _suffix);
+ yield return request.SendWebRequest();
+
+ if (!(request.result == UnityWebRequest.Result.ConnectionError ||
+ request.result == UnityWebRequest.Result.ProtocolError))
+ {
+ _response = request.downloadHandler.text;
+ _responseProcessor?.Invoke(_response);
+ }
+ else
+ {
+ Debug.LogError(request.error);
+ // TODO Error, handle it!
+ _error = true;
+ _responseProcessor.Invoke(null);
+ }
+ }
+
+ ///
+ /// Executes a request to list all stored exhibitions (IDs & names, as in ExhibitionSummary objects).
+ ///
+ /// The result yielded from the request.
+ private IEnumerator DoListExhibitionRequest()
+ {
+ // TODO Implement this.
+ SanitizeServerUrl();
+
+ Debug.Log("[VREMClient] Requesting exhibition list.");
+
+ using var request = UnityWebRequest.Get(serverUrl + ListExhibitionsAction);
+ yield return request.SendWebRequest();
+
+ if (!(request.result == UnityWebRequest.Result.ConnectionError ||
+ request.result == UnityWebRequest.Result.ProtocolError))
+ {
+ _response = request.downloadHandler.text;
+ // TODO Parse list of IDs and names of the ExhibitionSummary objects.
+ }
+ else
+ {
+ Debug.LogError(request.error);
+ // TODO Proper error handling.
+ _error = true;
+ _responseProcessor.Invoke(null);
+ }
+ }
+
+ ///
+ /// Fixes the server URL by adding the http:// prefix and/or trailing /.
+ ///
+ private void SanitizeServerUrl()
+ {
+ if (!serverUrl.StartsWith("http://"))
+ {
+ serverUrl = "http://" + serverUrl;
+ }
+
+ if (!serverUrl.EndsWith("/"))
+ {
+ serverUrl += "/";
+ }
+ }
+
+ private bool _error;
+
+ ///
+ /// Checks whether this VremClient instance has encountered an error.
+ ///
+ /// True upon an encountered error, false otherwise.
+ public bool HasError()
+ {
+ return _error;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/VREM/VREMClient.cs.meta b/Assets/Scripts/Unibas/DBIS/VREP/VREM/VremClient.cs.meta
similarity index 97%
rename from Assets/Scripts/Unibas/DBIS/VREP/VREM/VREMClient.cs.meta
rename to Assets/Scripts/Unibas/DBIS/VREP/VREM/VremClient.cs.meta
index 87cd0b73..7037feb6 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/VREM/VREMClient.cs.meta
+++ b/Assets/Scripts/Unibas/DBIS/VREP/VREM/VremClient.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
-guid: a4ce399d843a4057a861938236a323b8
+fileFormatVersion: 2
+guid: a4ce399d843a4057a861938236a323b8
timeCreated: 1540571206
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/Countdown.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/Countdown.cs
index da70966e..bf18b516 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/Countdown.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/World/Countdown.cs
@@ -3,49 +3,49 @@
namespace Unibas.DBIS.VREP.World
{
- public class Countdown : MonoBehaviour {
- public int initTime;
- private int timeLeft;
- public TextMesh countdown;
- void Start ()
- {
- StartCoroutine("LoseTime");
- Time.timeScale = 1;
- }
- void Update ()
- {
- var min = (timeLeft / 60).ToString().PadLeft(2,'0');
- var sec = (timeLeft % 60).ToString().PadLeft(2,'0');
- countdown.text = (min + ":" + sec);
- }
-
- public void Restart()
- {
- StopCoroutine("LoseTime");
- countdown.color = Color.white;
- StartCoroutine("LoseTime");
- }
-
- IEnumerator LoseTime()
- {
- timeLeft = initTime;
- GameObject.Find("VRCamera").GetComponent().cullingMask = -1;
- while (timeLeft > 0) {
- yield return new WaitForSeconds (1);
- timeLeft--;
- if (timeLeft <= 30)
- {
- if (timeLeft % 2 == 0)
- {
- countdown.color = Color.red;
- }
- else
- {
- countdown.color = Color.white;
- }
- }
- }
- GameObject.Find("VRCamera").GetComponent().cullingMask = 0;
- }
+ public class Countdown : MonoBehaviour
+ {
+ public int initTime;
+ private int _timeLeft;
+ public TextMesh countdown;
+
+ private void Start()
+ {
+ StartCoroutine(nameof(LoseTime));
+ Time.timeScale = 1;
+ }
+
+ private void Update()
+ {
+ var min = (_timeLeft / 60).ToString().PadLeft(2, '0');
+ var sec = (_timeLeft % 60).ToString().PadLeft(2, '0');
+ countdown.text = min + ":" + sec;
+ }
+
+ public void Restart()
+ {
+ StopCoroutine(nameof(LoseTime));
+ countdown.color = Color.white;
+ StartCoroutine(nameof(LoseTime));
+ }
+
+ private IEnumerator LoseTime()
+ {
+ _timeLeft = initTime;
+ GameObject.Find("VRCamera").GetComponent().cullingMask = -1;
+
+ while (_timeLeft > 0)
+ {
+ yield return new WaitForSeconds(1);
+
+ _timeLeft--;
+
+ if (_timeLeft > 30) continue;
+
+ countdown.color = _timeLeft % 2 == 0 ? Color.red : Color.white;
+ }
+
+ GameObject.Find("VRCamera").GetComponent().cullingMask = 0;
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/CuboidExhibitionRoom.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/CuboidExhibitionRoom.cs
index aaa00bcb..16a8fdd8 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/CuboidExhibitionRoom.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/World/CuboidExhibitionRoom.cs
@@ -1,158 +1,146 @@
using System.Collections.Generic;
-using DefaultNamespace;
using Unibas.DBIS.DynamicModelling.Models;
+using Unibas.DBIS.VREP.Multimedia;
+using Unibas.DBIS.VREP.VREM.Model;
using UnityEngine;
-using World;
namespace Unibas.DBIS.VREP.World
{
+ ///
+ /// A cuboid exhibition room.
+ /// The exhibition room has four walls of type (north, east, south. west).
+ ///
+ /// The walls manage the exhibits associated with them by themselves. Call PopulateWalls() for that purpose.
+ /// The room may has 3D exhibits associated with it, which are placed by PopulateRoom().
+ ///
+ /// There are two handlers for entering and leaving the room: OnRoomEnter() and OnRoomLeave() respectively.
+ /// It is expected that these handlers are called when appropriate.
+ ///
+ /// The room is set up as its corresponding model is defined (RoomData). The virtual 3D appearance is driven by its model.
+ ///
+ [RequireComponent(typeof(AudioLoader))]
+ public class CuboidExhibitionRoom : MonoBehaviour
+ {
///
- /// A cuboid exhibition room.
- /// The exhibition room has four walls of tyep (north, east, south. west).
- ///
- /// The walls manage the exhibits associated with them by themselves. Call PopulateWalls() for that purpose.
- /// The room may has 3d exhibits associated with it, which are placed by PopulateRoom().
- ///
- /// There are two handlers for entering and leaving the room: OnRoomEnter() and OnRoomLeave() respectively.
- /// It is expected that these handlers are called when appropriate.
- ///
- /// The room is set up as its corresponding model is defined (RoomData). The virtual 3d appearance is driven by its model.
- ///
+ /// The room's 3D appearance as a model.
///
- [RequireComponent(typeof(AudioLoader))]
- public class CuboidExhibitionRoom : MonoBehaviour
+ public CuboidRoomModel RoomModel { get; set; }
+
+ ///
+ /// The model of the room which defines its appearance, its walls and everything.
+ /// This shall directly be passed from the backend server.
+ ///
+ public Room RoomData { get; set; }
+
+ ///
+ /// The actual model game object.
+ ///
+ public GameObject Model { get; set; }
+
+ ///
+ /// A list of ExhibitionWalls, representing the walls of this room.
+ ///
+ public List Walls { get; set; }
+
+ ///
+ /// The private audio loader component reference.
+ ///
+ private AudioLoader _audioLoader;
+
+ ///
+ /// Populates this room (walls load their exhibits).
+ ///
+ public void Populate()
+ {
+ PopulateRoom(); // Not yet implemented.
+ PopulateWalls();
+ }
+
+ ///
+ /// Handler for leaving this room.
+ /// Shall be called whenever the player leaves this room.
+ ///
+ public void OnRoomLeave()
+ {
+ if (_audioLoader != null)
+ {
+ _audioLoader.Stop();
+ }
+
+ gameObject.transform.Find("Timer").transform.GetComponent().enabled = false;
+ }
+
+ ///
+ /// Handler for entering this room.
+ /// Shall be called whenever the player enters this room.
+ ///
+ public void OnRoomEnter()
+ {
+ LoadAmbientAudio();
+ gameObject.transform.Find("Timer").transform.GetComponent().enabled = true;
+ }
+
+ ///
+ /// Places the exhibits in this room's space.
+ /// Currently not implemented.
+ ///
+ public static void PopulateRoom()
+ {
+ Debug.LogWarning("Cannot place 3D objects yet.");
+ }
+
+ ///
+ /// Induces the walls to place their exhibits.
+ ///
+ public void PopulateWalls()
+ {
+ Walls.ForEach(ew => ew.AttachExhibits());
+ }
+
+ ///
+ /// Returns the wall for the orientation.
+ ///
+ /// The orientation for which the wall is requested.
+ /// The ExhibitionWall component for the specified orientation.
+ public ExhibitionWall GetWallForOrientation(WallOrientation orientation)
+ {
+ return Walls.Find(wall => wall.GetOrientation() == orientation);
+ }
+
+ ///
+ /// Loads the ambient audio of this room.
+ /// As soon as the audio is loaded, it will be played.
+ ///
+ public void LoadAmbientAudio()
+ {
+ if (string.IsNullOrEmpty(RoomData.GetURLEncodedAudioPath())) return;
+ Debug.Log("Add audio to room.");
+
+ if (_audioLoader == null)
+ {
+ _audioLoader = gameObject.AddComponent();
+ }
+
+ _audioLoader.ReloadAudio(RoomData.GetURLEncodedAudioPath());
+ }
+
+ ///
+ /// Gets the entry point of this room object.
+ ///
+ /// A 3D vector representing the entry point of this room.
+ public Vector3 GetEntryPoint()
+ {
+ return transform.position + RoomData.entrypoint;
+ }
+
+
+ ///
+ /// Restores all exhibits on all walls and resets the countdown for all of them.
+ ///
+ public void RestoreWallExhibits()
{
- ///
- /// The room's 3d appearance as a model.
- ///
- [SerializeField]
- public CuboidRoomModel RoomModel { get; set; }
-
- ///
- /// The model of the room which defines its appearance, its walls and everything.
- /// This shall directly be passed from the backend server.
- ///
- [SerializeField]
- public DefaultNamespace.VREM.Model.Room RoomData { get; set; }
-
- ///
- /// The actual model game object.
- ///
- public GameObject Model { get; set; }
-
- ///
- /// A list of ExhibitionWalls, which form the walls of this room.
- ///
- public List Walls { get; set; }
-
- ///
- /// The private audio loader component reference.
- ///
- private AudioLoader _audioLoader;
-
- private void Start()
- {
- }
-
- ///
- /// Populates this room.
- /// In other words: The walls will load their exhibits and this room will place its exhibits in its space.
- ///
- public void Populate()
- {
- PopulateRoom();
- PopulateWalls();
- }
-
- ///
- /// Handler for leaving this room.
- /// Shall be called whenever the player leaves this room
- ///
- public void OnRoomLeave()
- {
- if (_audioLoader != null)
- {
- _audioLoader.Stop();
- }
- gameObject.transform.Find("Timer").transform.GetComponent().enabled = false;
- }
-
- ///
- /// Handler for entering this room
- /// Shall be called whenever the player enters this room
- ///
- public void OnRoomEnter()
- {
- LoadAmbientAudio();
- gameObject.transform.Find("Timer").transform.GetComponent().enabled = true;
- }
-
- ///
- /// Places the exhibits in this room's space.
- /// Currently not implemented.
- ///
- public void PopulateRoom()
- {
- Debug.LogWarning("Cannot place 3d objects yet");
- /*
- * GameObject parent = new GameObject("Model Anchor");
- * GameObject model = new GameObject("Model");
- * model.transform.SetParent(parent.transform);
- * parent.transform.position = pos;
- * ObjLoader objLoader = model.AddComponent();
- * model.transform.Rotate(-90,0,0);
- * model.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
- * objLoader.Load(url);
- */
- }
-
- ///
- /// Induces the walls to place their exhibits.
- ///
- public void PopulateWalls()
- {
- Walls.ForEach(ew => ew.AttachExhibits());
- }
-
- ///
- /// Returns the wall for the orientation.
- ///
- /// The orientation for which the wall is requested
- /// The ExhibitionWall component for the specified orientation
- public ExhibitionWall GetWallForOrientation(WallOrientation orientation)
- {
- return Walls.Find(wall => wall.GetOrientation() == orientation);
- }
-
- ///
- /// Loads the ambient audio of this room.
- /// As soon as the audio is loaded, it will be played.
- ///
- public void LoadAmbientAudio()
- {
- if (!string.IsNullOrEmpty(RoomData.GetURLEncodedAudioPath()))
- {
- Debug.Log("add audio to room");
-
-
- if (_audioLoader == null)
- {
- _audioLoader = gameObject.AddComponent();
- }
-
- _audioLoader.ReloadAudio(RoomData.GetURLEncodedAudioPath());
- }
- }
-
- public Vector3 GetEntryPoint()
- {
- return transform.position + RoomData.entrypoint;
- }
-
- public void RestoreWallExhibits()
- {
- Walls.ForEach(w => w.RestoreDisplayals());
- gameObject.transform.Find("Timer").GetComponent().Restart();
- }
+ Walls.ForEach(w => w.RestoreDisplayals());
+ gameObject.transform.Find("Timer").GetComponent().Restart();
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionBuildingSettings.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionBuildingSettings.cs
index 59211ac2..487b786a 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionBuildingSettings.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionBuildingSettings.cs
@@ -1,41 +1,25 @@
-namespace World
-{
-
- ///
- /// Class to store various exhibition building related settings.
- ///
- ///
- [System.Serializable]
- public class ExhibitionBuildingSettings
- {
-
- private float _wallOffset = 0.125f; // experimentally found
-
- ///
- /// Positive offset between the wall and the displayal.
- ///
- public float WallOffset
- {
- get { return _wallOffset; }
- }
-
- private float _roomOffset = 2f;
-
- public float RoomOffset
- {
- get { return _roomOffset; }
- }
-
- public bool UseStandardDisplayalPrefab = true;
-
- public string StandardDisplayalPrefabName = "Displayal";
-
-
- private static ExhibitionBuildingSettings _instance = null;
-
- public static ExhibitionBuildingSettings Instance
- {
- get { return _instance ?? (_instance = new ExhibitionBuildingSettings()); }
- }
- }
+namespace Unibas.DBIS.VREP.World
+{
+ ///
+ /// Store various settings for building exhibitions.
+ ///
+ [System.Serializable]
+ public class ExhibitionBuildingSettings
+ {
+ ///
+ /// Positive offset between the wall and the displayal.
+ ///
+ public float WallOffset => 0.125f;
+
+ public float RoomOffset => 2f;
+
+ public bool useStandardDisplayalPrefab = true;
+
+ public string standardDisplayalPrefabName = "Displayal";
+ public string throwableDisplayalPrefabName = "ThrowableDisplayal";
+
+ private static ExhibitionBuildingSettings instance;
+
+ public static ExhibitionBuildingSettings Instance => instance ??= new ExhibitionBuildingSettings();
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionWall.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionWall.cs
index 184c78ac..a345c57c 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionWall.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/World/ExhibitionWall.cs
@@ -1,20 +1,23 @@
using System.Collections.Generic;
-using DefaultNamespace;
using Unibas.DBIS.DynamicModelling.Models;
-using Unibas.DBIS.VREP;
+using Unibas.DBIS.VREP.Core;
+using Unibas.DBIS.VREP.LegacyObjects;
+using Unibas.DBIS.VREP.Multimedia;
+using Unibas.DBIS.VREP.Utils;
+using Unibas.DBIS.VREP.VREM.Model;
using UnityEngine;
-namespace World {
-
+namespace Unibas.DBIS.VREP.World
+{
///
- /// A representation of a wall, attachable to a gameobject.
+ /// A representation of a wall, attachable to a game object.
///
- public class ExhibitionWall : MonoBehaviour {
-
+ public class ExhibitionWall : MonoBehaviour
+ {
///
- /// The wall's data
+ /// The wall's data.
///
- public DefaultNamespace.VREM.Model.Wall WallData { get; set; }
+ public Wall WallData { get; set; }
///
/// The model of the wall.
@@ -24,58 +27,73 @@ public class ExhibitionWall : MonoBehaviour {
///
/// The Anchor for adding exhibits.
///
- public GameObject Anchor{ get; set; }
+ public GameObject Anchor { get; set; }
- public List Displayals = new List();
+ ///
+ /// Holds all displayals of this wall.
+ ///
+ public List displayals = new List();
- public void RestoreDisplayals() {
- Displayals.ForEach(d => d.RestorePosition());
+ ///
+ /// Restores the position of every displayal on this wall.
+ ///
+ public void RestoreDisplayals()
+ {
+ displayals.ForEach(d => d.RestorePosition());
}
+ ///
+ /// Creates and attaches the exhibits defined in this wall's data to the wall (or rather it's anchor).
+ ///
public void AttachExhibits()
{
- // TODO Make displayal configurable
var prefab = ObjectFactory.GetDisplayalPrefab();
+
foreach (var e in WallData.exhibits)
{
- GameObject displayal = Instantiate(prefab);
+ var displayal = Instantiate(prefab, Anchor.transform, true);
displayal.name = "Displayal (" + e.name + ")";
- displayal.transform.parent = Anchor.transform;
+
var pos = new Vector3(e.position.x, e.position.y, -ExhibitionBuildingSettings.Instance.WallOffset);
displayal.transform.localPosition = pos;
- //displayal.transform.rotation = Quaternion.Euler(ObjectFactory.CalculateRotation(WallData.direction));
- var rot = Quaternion.Euler(92.5f,0,180); // Non-90° as they would tip over othervise
- displayal.transform.localRotation = rot;// Because prefab is messed up
-
-
- if(!VREPController.Instance.Settings.SpotsEnabled || !e.light){
+
+ // Non-90° as they would tip over otherwise (exhibits stand on the little bar below).
+ var rot = VrepController.Instance.settings.PlaygroundEnabled
+ ? Quaternion.Euler(92.5f, 0, 180) // Slightly more than 90° or it would fall down.
+ : Quaternion.Euler(90, 0, 180);
+ displayal.transform.localRotation = rot; // Required due to prefab orientation.
+
+ if (!VrepController.Instance.settings.SpotsEnabled || !e.light)
+ {
displayal.transform.Find("Directional light").gameObject.SetActive(false);
}
-
- Displayal disp = displayal.gameObject.GetComponent();
+
+ var disp = displayal.gameObject.GetComponent();
disp.SetExhibitModel(e);
- disp.OriginalPosition = pos;
- disp.OriginalRotation = rot;
- Displayals.Add(disp);
-
- ImageLoader image = displayal.transform.Find("Plane").gameObject.AddComponent(); // Displayal
- //ImageLoader image = displayal.AddComponent();// ImageDisplayPlane
+ disp.originalPosition = pos;
+ disp.originalRotation = rot;
+ displayals.Add(disp);
+
+ var image = displayal.transform.Find("Plane").gameObject.AddComponent();
image.ReloadImage(e.GetURLEncodedPath());
- displayal.transform.localScale = ScalingUtility.convertMeters2PlaneScaleSize(e.size.x, e.size.y);
+ displayal.transform.localScale = ScalingUtility.ConvertMeters2PlaneScaleSize(e.size.x, e.size.y);
- if (e.audio != null)
- {
- Debug.Log("added audio to display object");
- var closenessDetector = displayal.AddComponent();
- closenessDetector.url = e.GetURLEncodedAudioPath();
- }
+ if (e.audio == null) continue;
+
+ Debug.Log("Added audio to display object.");
+
+ var closenessDetector = displayal.AddComponent();
+ closenessDetector.url = e.GetURLEncodedAudioPath();
}
}
+ ///
+ /// Returns the orientation of this wall.
+ ///
+ /// The wall's orientation as WallOrientation enum object.
public WallOrientation GetOrientation()
{
return WallData.GetOrientation();
}
-
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/IDisplayalProvider.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/IDisplayalProvider.cs
deleted file mode 100644
index dd23bb95..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/IDisplayalProvider.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine;
-
-namespace World
-{
- public interface IDisplayalProvider
- {
- GameObject ProvideDisplayal();
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/IDisplayalProvider.cs.meta b/Assets/Scripts/Unibas/DBIS/VREP/World/IDisplayalProvider.cs.meta
deleted file mode 100644
index 84b344f4..00000000
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/IDisplayalProvider.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: f54f6640cfaa4d098fdfb4322d441439
-timeCreated: 1546810281
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/Lobby.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/Lobby.cs
index bf994a64..cceb2fa3 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/Lobby.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/World/Lobby.cs
@@ -1,46 +1,54 @@
-using DefaultNamespace;
-using Unibas.DBIS.VREP.Core;
+using Unibas.DBIS.VREP.Core;
+using Unibas.DBIS.VREP.Utils;
using UnityEngine;
-using World;
-public class Lobby : MonoBehaviour
+namespace Unibas.DBIS.VREP.World
{
- private SteamVRTeleportButton text;
- private SteamVRTeleportButton next;
- private SteamVRTeleportButton wall;
-
- // Use this for initialization
- void Start()
+ ///
+ /// Lobby setup.
+ ///
+ public class Lobby : MonoBehaviour
+ {
+ private SteamVRTeleportButton _text;
+ private SteamVRTeleportButton _next;
+ private SteamVRTeleportButton _wall;
+
+ ///
+ /// Create teleport button objects for the lobby.
+ ///
+ private void Start()
{
+ _text = SteamVRTeleportButton.Create(gameObject, new Vector3(0, 0, 4.5f), Vector3.zero,
+ new SteamVRTeleportButton.TeleportButtonModel(0.1f, .02f, 1f, null,
+ TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic")),
+ "Text");
- text = SteamVRTeleportButton.Create(gameObject, new Vector3(0, 0, 4.5f), Vector3.zero,
- new SteamVRTeleportButton.TeleportButtonModel(0.1f, .02f, 1f, TexturingUtility.LoadMaterialByName("none"),
- TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic")),
- "Text");
- next = SteamVRTeleportButton.Create(gameObject, new Vector3(.5f, 0, 4.5f), Vector3.zero,
- new SteamVRTeleportButton.TeleportButtonModel(0.1f, .02f, 1f, TexturingUtility.LoadMaterialByName("NWood"),
- TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic")),
- Resources.Load("Sprites/UI/chevron-right"));
- wall = SteamVRTeleportButton.Create(gameObject, new Vector3(0, 1.5f, 4.98f), Vector3.zero,
- new SteamVRTeleportButton.TeleportButtonModel(0.2f, .02f, 2f, TexturingUtility.LoadMaterialByName("none"),
- TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic"), hasPedestal:false),
- "Wall");
- }
+ _next = SteamVRTeleportButton.Create(gameObject, new Vector3(.5f, 0, 4.5f), Vector3.zero,
+ new SteamVRTeleportButton.TeleportButtonModel(0.1f, .02f, 1f, TexturingUtility.LoadMaterialByName("NWood"),
+ TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic")),
+ Resources.Load("Sprites/UI/chevron-right"));
- public void activateRoomTrigger(ExhibitionManager manager)
- {
- var room = manager.GetRoomByIndex(0);
- if (room != null)
- {
- text.OnTeleportEnd = room.OnRoomEnter;
- next.OnTeleportEnd = room.OnRoomEnter;
- wall.OnTeleportEnd = room.OnRoomEnter;
- }
+ _wall = SteamVRTeleportButton.Create(gameObject, new Vector3(0, 1.5f, 4.98f), Vector3.zero,
+ new SteamVRTeleportButton.TeleportButtonModel(0.2f, .02f, 2f, null,
+ TexturingUtility.LoadMaterialByName("NMetal"), TexturingUtility.LoadMaterialByName("NPlastic"),
+ false),
+ "Wall");
}
- // Update is called once per frame
- void Update()
+ ///
+ /// Sets the triggers for the teleport buttons to execute upon entering an exhibition room.
+ /// Currently only supports 1 room!
+ ///
+ /// The ExhibitionManager object holding room details.
+ public void ActivateRoomTrigger(ExhibitionManager manager)
{
-
+ var room = manager.GetRoomByIndex(0);
+
+ if (room == null) return;
+
+ _text.OnTeleportEnd = room.OnRoomEnter;
+ _next.OnTeleportEnd = room.OnRoomEnter;
+ _wall.OnTeleportEnd = room.OnRoomEnter;
}
+ }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Unibas/DBIS/VREP/World/ObjectFactory.cs b/Assets/Scripts/Unibas/DBIS/VREP/World/ObjectFactory.cs
index 0af17584..7f487614 100644
--- a/Assets/Scripts/Unibas/DBIS/VREP/World/ObjectFactory.cs
+++ b/Assets/Scripts/Unibas/DBIS/VREP/World/ObjectFactory.cs
@@ -1,215 +1,268 @@
using System;
using System.Collections.Generic;
-using DefaultNamespace;
using Unibas.DBIS.DynamicModelling;
using Unibas.DBIS.DynamicModelling.Models;
-using Unibas.DBIS.VREP.World;
+using Unibas.DBIS.VREP.Core;
+using Unibas.DBIS.VREP.Movement;
+using Unibas.DBIS.VREP.Utils;
+using Unibas.DBIS.VREP.VREM.Model;
using UnityEngine;
using UnityEngine.UI;
using Valve.VR.InteractionSystem;
-namespace World
+namespace Unibas.DBIS.VREP.World
{
+ ///
+ /// Static class for Displayal/Room generation.
+ ///
+ public static class ObjectFactory
+ {
+ public static readonly ExhibitionBuildingSettings Settings = ExhibitionBuildingSettings.Instance;
+
+ ///
+ /// Derives a displayal GameObject from the prefab.
+ ///
+ /// The created displayal GameObject.
+ /// If a prefab could not be loaded.
+ public static GameObject GetDisplayalPrefab()
+ {
+ var prefabName = VrepController.Instance.settings.PlaygroundEnabled
+ ? Settings.throwableDisplayalPrefabName
+ : Settings.standardDisplayalPrefabName;
+ var prefab = Resources.Load("Prefabs/" + prefabName, typeof(GameObject)) as GameObject;
+
+ if (prefab == null)
+ {
+ throw new Exception($"Could not load '{Settings.standardDisplayalPrefabName}' as Resource.");
+ }
+
+ return prefab;
+ }
+
+ ///
+ /// Calculates the absolute position of a room based on its relative position and size in the exhibition.
+ ///
+ /// The room to calculate the absolute position for.
+ /// The absolute position of the room.
+ public static Vector3 CalculateRoomPosition(Room room)
+ {
+ // This currently works only for 1 exhibition (with multiple rooms).
+ // Rework this if multiple exhibitions should be loaded.
+ float x = room.position.x, y = room.position.y, z = room.position.z;
+ var off = Settings.RoomOffset; // Space between rooms.
+ return new Vector3(x * room.size.x + x * off, y * room.size.y + y * off, z * room.size.z + z * off);
+ }
+
+ ///
+ /// Builds a room, i.e., creating and building its walls and exhibits as well as adding textures, lighting,
+ /// teleports, etc.
+ ///
+ /// The room data that should be used to build this room (as received from VREM).
+ /// The GameObject for the created room.
+ public static GameObject BuildRoom(Room roomData)
+ {
+ // Textures to use.
+ Material[] mats =
+ {
+ TexturingUtility.LoadMaterialByName(roomData.floor),
+ TexturingUtility.LoadMaterialByName(roomData.ceiling),
+ GetMaterialForWallOrientation(WallOrientation.North, roomData),
+ GetMaterialForWallOrientation(WallOrientation.East, roomData),
+ GetMaterialForWallOrientation(WallOrientation.South, roomData),
+ GetMaterialForWallOrientation(WallOrientation.West, roomData)
+ };
+
+ // Create room model.
+ var modelData = new CuboidRoomModel(CalculateRoomPosition(roomData), roomData.size.x, roomData.size.y,
+ mats[0], mats[1], mats[2], mats[3], mats[4], mats[5]);
+
+ // Create the actual GameObject for the room.
+ var room = ModelFactory.CreateCuboidRoom(modelData);
+
+ // Add exhibition room component, containing the room model.
+ var er = room.AddComponent();
+ er.RoomModel = modelData;
+ er.Model = room;
+ er.RoomData = roomData;
+
+ // Add walls.
+ var na = CreateAnchor(WallOrientation.North, room, modelData);
+ var ea = CreateAnchor(WallOrientation.East, room, modelData);
+ var sa = CreateAnchor(WallOrientation.South, room, modelData);
+ var wa = CreateAnchor(WallOrientation.West, room, modelData);
+
+ var nw = CreateExhibitionWall(WallOrientation.North, roomData, na);
+ var ew = CreateExhibitionWall(WallOrientation.East, roomData, ea);
+ var sw = CreateExhibitionWall(WallOrientation.South, roomData, sa);
+ var ww = CreateExhibitionWall(WallOrientation.West, roomData, wa);
+
+ er.Walls = new List(new[] {nw, ew, sw, ww});
+ er.Populate();
+
+ // Light.
+ var light = new GameObject("RoomLight");
+ var l = light.AddComponent();
+ l.type = LightType.Point;
+ l.range = 8;
+ l.color = Color.white;
+ l.intensity = 1.5f;
+ l.renderMode = LightRenderMode.ForcePixel;
+
+ var t = l.transform;
+ t.parent = room.transform; // Set room as parent for transform component.
+ t.localPosition = new Vector3(0, 2.5f, 0);
+ room.name = "Room";
+
+ // Teleport.
+ var teleportArea = new GameObject("TeleportArea");
+ var col = teleportArea.AddComponent();
+ col.size = new Vector3(modelData.size, 0.01f, modelData.size);
+ teleportArea.AddComponent();
+
+ var tpa = teleportArea.AddComponent();
+ var t1 = tpa.transform;
+ t1.parent = room.transform;
+ t1.localPosition = new Vector3(0, 0.01f, 0);
+
+ return room;
+ }
+
+ ///
+ /// Attaches an exhibition wall as defined in the room model to the corresponding GameObject of the room.
+ ///
+ /// The orientation of the wall.
+ /// The room model object to take the data for the wall from.
+ /// The GameObject to set as the anchor for the room.
+ /// The created wall component (with a set anchor).
+ private static ExhibitionWall CreateExhibitionWall(WallOrientation orientation, Room room, GameObject anchor)
+ {
+ var wall = anchor.AddComponent();
+
+ wall.Anchor = anchor;
+ wall.WallModel = null;
+ wall.WallData = room.GetWall(orientation);
+
+ return wall;
+ }
+
///
- /// Static class for object generation.
+ /// Returns the material (wall texture) for a specific wall orientation (= for 1 wall) as defined in the room model.
///
- public static class ObjectFactory
+ /// The orientation of the wall to get the material for.
+ /// The room model object to take the data for the wall material from.
+ /// The resulting Material object.
+ ///
+ private static Material GetMaterialForWallOrientation(WallOrientation orientation, Room roomData)
{
- public static ExhibitionBuildingSettings Settings = ExhibitionBuildingSettings.Instance;
-
- public static GameObject GetDisplayalPrefab()
- {
- // TODO Use other prefabs
- /*if (Settings.UseStandardDisplayalPrefab)
- {*/
- var prefab = Resources.Load("Prefabs/"+Settings.StandardDisplayalPrefabName, typeof(GameObject)) as GameObject;
- if (prefab == null)
- {
- throw new Exception(string.Format("Could not load '{0}' as Resource", Settings.StandardDisplayalPrefabName));
- }
-
- return prefab;
- //}
- }
-
- public static Vector3 CalculateRoomPosition(DefaultNamespace.VREM.Model.Room room)
- {
- // TODO exhibition-dependet calculation
- float x = room.position.x, y = room.position.y, z = room.position.z;
- var off = Settings.RoomOffset;
- return new Vector3(x * room.size.x + x * off, y * room.size.y + y * off, z * room.size.z + z * off);
- }
-
- public static GameObject BuildRoom(DefaultNamespace.VREM.Model.Room roomData)
- {
- Material[] mats =
- {
- TexturingUtility.LoadMaterialByName(roomData.floor),
- TexturingUtility.LoadMaterialByName(roomData.ceiling),
- GetMaterialForWallOrientation(WallOrientation.NORTH, roomData),
- GetMaterialForWallOrientation(WallOrientation.EAST, roomData),
- GetMaterialForWallOrientation(WallOrientation.SOUTH, roomData),
- GetMaterialForWallOrientation(WallOrientation.WEST, roomData)
- };
- CuboidRoomModel modelData = new CuboidRoomModel(CalculateRoomPosition(roomData), roomData.size.x, roomData.size.y,
- mats[0], mats[1], mats[2], mats[3], mats[4], mats[5]);
- GameObject room = ModelFactory.CreateCuboidRoom(modelData);
- var er = room.AddComponent();
- er.RoomModel = modelData;
- er.Model = room;
- er.RoomData = roomData;
- var na = CreateAnchor(WallOrientation.NORTH, room, modelData);
- var ea = CreateAnchor(WallOrientation.EAST, room, modelData);
- var sa = CreateAnchor(WallOrientation.SOUTH, room, modelData);
- var wa = CreateAnchor(WallOrientation.WEST, room, modelData);
-
- var nw = CreateExhibitionWall(WallOrientation.NORTH, roomData, na);
- var ew = CreateExhibitionWall(WallOrientation.EAST, roomData, ea);
- var sw = CreateExhibitionWall(WallOrientation.SOUTH, roomData, sa);
- var ww = CreateExhibitionWall(WallOrientation.WEST, roomData, wa);
-
- er.Walls = new List(new []{nw,ew,sw,ww});
- er.Populate();
-
- GameObject light = new GameObject("RoomLight");
- var l = light.AddComponent();
- l.type = LightType.Point;
- l.range = 8;
- l.color = Color.white;
- l.intensity = 1.5f;
- l.renderMode = LightRenderMode.ForcePixel;
- //l.lightmapBakeType = LightmapBakeType.Mixed; // Build fails with this line uncommented, even though unity automatically upgrades to this one.
- //l.lightmappingMode = LightmappingMode.Mixed; // Build fails with this line uncommented. it is obsolete
- // Results in mode Realtime (in Unity editor inspector)
- l.transform.parent = room.transform;
- l.transform.localPosition = new Vector3(0, 2.5f, 0);
- room.name = "Room";
-
- GameObject teleportArea = new GameObject("TeleportArea");
- var col = teleportArea.AddComponent();
- col.size = new Vector3(modelData.Size, 0.01f, modelData.Size);
- teleportArea.AddComponent();
- var tpa = teleportArea.AddComponent();
- tpa.transform.parent = room.transform;
- tpa.transform.localPosition = new Vector3(0, 0.01f, 0);
-
- return room;
- }
-
- private static ExhibitionWall CreateExhibitionWall(WallOrientation orientation, DefaultNamespace.VREM.Model.Room room, GameObject anchor)
- {
- var wall = anchor.AddComponent();
- wall.Anchor = anchor;
- wall.WallModel = null;
- wall.WallData = room.GetWall(orientation);
- return wall;
- }
-
- private static Material GetMaterialForWallOrientation(WallOrientation orientation,
- DefaultNamespace.VREM.Model.Room roomData)
- {
- foreach (DefaultNamespace.VREM.Model.Wall wallData in roomData.walls)
- {
- WallOrientation wor = (WallOrientation) Enum.Parse(typeof(WallOrientation), wallData.direction, true);
- if (wor.Equals(orientation))
- {
- Debug.Log("Material "+wallData.texture+" for room " + roomData.position);
- return TexturingUtility.LoadMaterialByName(wallData.texture, true);
- }
- }
-
- throw new ArgumentException("Couldn't find material for orientation " + orientation + " in room at " +
- roomData.position);
- }
-
- private static GameObject CreateAnchor(WallOrientation orientation, GameObject room, CuboidRoomModel model)
- {
- GameObject anchor = new GameObject(orientation + "Anchor");
- anchor.transform.parent = room.transform;
- Vector3 pos = Vector3.zero;
- var a = 0f;
- var sizeHalf = model.Size / 2f;
- switch (orientation)
- {
- case WallOrientation.NORTH:
- pos = new Vector3(-sizeHalf, 0, sizeHalf);
- a = 0;
- break;
- case WallOrientation.EAST:
- pos = new Vector3(sizeHalf, 0, sizeHalf);
- a = 90;
- break;
- case WallOrientation.SOUTH:
- pos = new Vector3(sizeHalf, 0, -sizeHalf);
- a = 180;
- break;
- case WallOrientation.WEST:
- pos = new Vector3(-sizeHalf, 0, -sizeHalf);
- a = 270;
- break;
- default:
- throw new ArgumentOutOfRangeException("orientation", orientation, null);
- }
- anchor.transform.Rotate(Vector3.up, a);
- anchor.transform.localPosition = pos;
- return anchor;
- }
-
- private static ComplexCuboidModel GenerateButtonModel(float size, float border, float height)
- {
- ComplexCuboidModel model = new ComplexCuboidModel();
- // TODO Add material somehow
- model.Add(Vector3.zero, new CuboidModel(size, size, height));
- model.Add(new Vector3(border, border, -height), new CuboidModel(size - 2 * border, size - 2 * border, height));
- return model;
- }
-
- public static GameObject CreateTeleportButtonModel(Vector3 position, Vector3 destination, float size, float border)
- {
- var modelData = GenerateButtonModel(size, border, border / 2f);
- GameObject buttonObj = ModelFactory.CreateModel(modelData);
- PlayerTeleporter tpBtn = buttonObj.AddComponent();
- tpBtn.Destination = destination;
- BoxCollider col = buttonObj.AddComponent();
- col.size = new Vector3(size,size,border*2);
- col.center = new Vector3(size/2f, size/2f, -border);
- buttonObj.AddComponent