diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..8059e46bd8646cc9263fecc5e535aeefe5160956 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Packages/unity-world-storage-package"] + path = Packages/unity-world-storage-package + url = https://labs.etsi.org/rep/arf/world-storage-api-helpers/unity-world-storage-package.git diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs similarity index 92% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs index 170de27a7aeefc4815ae95eb9c9eb268230745fc..0afeea9d79a43592a8503807a4eac553d642a112 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs @@ -7,7 +7,7 @@ using UnityEditor; using UnityEditor.Experimental.GraphView; using UnityEngine.UIElements; using UnityEditor.UIElements; -using ETSI.ARF.WorldStorage.RESTful; +using ETSI.ARF.WorldStorage.REST; #if USING_OPENAPI_GENERATOR using Org.OpenAPITools.Api; @@ -23,13 +23,14 @@ namespace ETSI.ARF.WorldStorage.UI public class GraphWindow : EditorWindow { - [HideInInspector] public WorldStorageSettings worldStorageSettings; + [HideInInspector] public WorldStorageServer worldStorageSettings; [SerializeField] public List trackables = new List(); bool groupEnabled; string uid = System.Guid.Empty.ToString(); + string customName = "NotDefined"; string creatorUid = System.Guid.Empty.ToString(); string type = "Unknow"; string unit = "Unknow"; @@ -42,8 +43,8 @@ namespace ETSI.ARF.WorldStorage.UI private ARFGraphView myGraph; - [MenuItem("[ ISG-ARF ]/Graph Editor")] - public static void ShowWindow()//WorldStorageSettings ws) + [MenuItem("ARFWorldStorage/Graph Editor")] + public static void ShowWindow()//WorldStorageServer ws) { GraphWindow win = EditorWindow.GetWindow(typeof(GraphWindow), false, WorldStorageWindow.winName) as GraphWindow; //win.worldStorageSettings = ws; @@ -117,6 +118,7 @@ namespace ETSI.ARF.WorldStorage.UI //graph.Draw(); } + /* void DrawTrackableStuffs()// Trackable trackable) { GUILayout.BeginVertical("AR Trackable", gsTest); @@ -133,9 +135,9 @@ namespace ETSI.ARF.WorldStorage.UI if (GUILayout.Button("Get Parameters")) { Trackable t = RESTfulTrackableRequest.GetTrackable(worldStorageSettings, uid); - creatorUid = t.CreatorUID.ToString(); + creatorUid = t.CreatorUUID.ToString(); type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); + unit = t.Unit.ToString(); } GUI.backgroundColor = ori; @@ -177,18 +179,18 @@ namespace ETSI.ARF.WorldStorage.UI { Debug.Log("PostAddTrackable"); if (string.IsNullOrEmpty(uid) || uid == "0") uid = System.Guid.Empty.ToString(); - Trackable t = RESTfulTrackableRequest.TrackableFromStrings(uid, worldStorageSettings.creatorUID); + Trackable t = RESTfulTrackableRequest.TrackableFromStrings(uid, cus, worldStorageSettings.creatorUID); RESTfulTrackableRequest.PostAddTrackable(worldStorageSettings, t); WorldStorageWindow.WorldStorageWindowSingleton.UpdateList(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); - uid = t.UID.ToString(); + uid = t.UUID.ToString(); type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); + unit = t.Unit.ToString(); } GUI.backgroundColor = ori; } - + */ } } \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs deleted file mode 100644 index 0d106c5fc573e6ee3142dfccb2ba83e2a35fe4a9..0000000000000000000000000000000000000000 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs +++ /dev/null @@ -1,450 +0,0 @@ -// Source: -// https://gist.github.com/thelastpointer/c52c4b1f147dc47961798e39e3a7ea10 - - -/* - EditorGraph -- quickly draw graphs in the inspector. - Place this in a folder named 'Editor'. -*/ - -/* - USAGE: - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - TLP.Editor.EditorGraph graph = new TLP.Editor.EditorGraph(0, -1, 10, 1, "Just a sin wave", 100); - graph.AddFunction(x => Mathf.Sin(x)); - graph.Draw(); - } - - MORE COMPLICATED USAGE: - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - TLP.Editor.EditorGraph graph = new TLP.Editor.EditorGraph(0, -1, 10, 1, "Another sin wave!", 100); - graph.AddFunction(x => Mathf.Sin(x)); - - // Another function with a different color - graph.AddFunction(x => Mathf.Sin(x * 2), Color.cyan); - - // Do something when the graph is clicked on - graph.AddClickEvent((x, y) => Debug.LogFormat("You clicked at {0};{1}. The sin value for that is {2}", x, y, Mathf.Sin(x))); - - // Edit some colors... - graph.Colors.Background = new Color(0.2f, 0.2f, 0.2f, 1f); - - // Add two vertical lines - graph.AddLineX(Mathf.PI); - graph.AddLineX(Mathf.PI * 2); - - // Add a horizontal line with different color - graph.AddLineY(0, Color.gray); - - graph.Draw(); - } -*/ - -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; - -namespace TLP.Editor -{ - /// - /// Draw graphs in the inspector. - /// - public class EditorGraph - { - /// - /// Title of the graph. - /// - public string Title; - - /// - /// Vertical helper line distance, in graph units (a vertical line will be drawn every X units, starting at minimum X). Set 0 to disable. - /// - /// There will be at most one line per every two pixels. - public float GridLinesX = 0; - /// - /// Horizontal helper line distance, in graph units (a horizontal line will be drawn every Y units, starting at minimum Y). Set 0 to disable. - /// - /// There will be at most one line per every two pixels. - public float GridLinesY = 0; - - /// - /// Color settings. - /// - public GraphColors Colors; - - /// - /// Resolution of the graph -- how many points are evaluated and rendered for custom functions. - /// - public int GraphResolution = 48; - - /// - /// Constructor. - /// - /// Minimum X value in graph units. - /// Minimum Y value in graph units. - /// Maximum X value in graph units. - /// Maximum Y value in graph units. - /// Title of the graph (optional). - /// Resolution of the graphs (how many points are evaluated for each custom function). - public EditorGraph(float _minX, float _minY, float _maxX, float _maxY, string _title = "", int _resolution = 48) - { - if (_minX >= _maxX) - throw new System.ArgumentException("Editor graph: minimum X value must be greater than maximum!", "_minX"); - if (_minY >= _maxY) - throw new System.ArgumentException("Editor graph: minimum Y value must be greater than maximum!", "_minY"); - - minX = _minX; - maxX = _maxX; - minY = _minY; - maxY = _maxY; - - rangeX = maxX - minX; - rangeY = maxY - minY; - - Title = _title; - GraphResolution = _resolution; - - // Default graph colors - Colors = new GraphColors - { - Background = new Color(0.15f, 0.15f, 0.15f, 1f), - Outline = new Color(0.15f, 0.15f, 0.15f, 1f), - GridLine = new Color(0.5f, 0.5f, 0.5f), - Function = Color.red, - CustomLine = Color.white - }; - } - - /// - /// Colors used to draw the graph. - /// - public struct GraphColors - { - /// - /// Background color. - /// - public Color Background; - - /// - /// Outline color for the graph. - /// - public Color Outline; - - /// - /// Helper line color. - /// - public Color GridLine; - - /// - /// Default color for custom functions. - /// - public Color Function; - - /// - /// Default color for custom lines. - /// - public Color CustomLine; - } - - #region Public functions - - /// - /// Draw the graph with the default size (128x80). - /// - public void Draw() - { - Draw(128, 80); - } - - /// - /// Draw the graph with the specified minimum size. - /// - /// Minimum width of the graph in pixels. - /// Minimum height of the graph in pixels. - public void Draw(float width, float height) - { - // Get rect - if (!string.IsNullOrEmpty(Title)) - { - using (new GUILayout.HorizontalScope(EditorStyles.toolbar)) - GUILayout.Label(Title); - } - - // Title - using (new GUILayout.HorizontalScope()) - { - GUILayout.Space(EditorGUI.indentLevel * 15f); - rect = GUILayoutUtility.GetRect(width, height); - } - - // Handle MouseDown events - if (Event.current.type == EventType.MouseDown) - { - if (rect.Contains(Event.current.mousePosition)) - { - Vector2 mousePos = (Event.current.mousePosition - rect.position); - Vector2 unitPos = new Vector2( - mousePos.x / rect.width * rangeX + minX, - (1f - (mousePos.y / rect.height)) * rangeY + minY - ); - - foreach (var e in clickEvents) - e(unitPos.x, unitPos.y); - } - } - - // Only continue if we're repainting the graph - if (Event.current.type != EventType.Repaint) - return; - - // Background - DrawRect(minX, minY, maxX, maxY, Colors.Background, Colors.Outline); - - // Vertical helper lines - if (GridLinesX > 0) - { - float multiplier = 1; - while ((rangeX / (GridLinesX * multiplier)) > (rect.width / 2f)) - multiplier *= 2; - - for (float x = minX; x <= maxX; x += GridLinesX * multiplier) - DrawLine(x, minY, x, maxY, Colors.GridLine, 1); - } - // Horizontal helper lines - if (GridLinesY > 0) - { - float multiplier = 1; - while ((rangeY / (GridLinesY * multiplier)) > (rect.height / 2f)) - multiplier *= 2; - - for (float y = minY; y <= maxY; y += GridLinesY * multiplier) - DrawLine(minX, y, maxX, y, Colors.GridLine, 1); - } - - // Vertical lines - foreach (var line in linesX) - { - DrawLine(line.Position, minY, line.Position, maxY, line.Color, 2); - } - // Horizontal lines - foreach (var line in linesY) - { - DrawLine(minX, line.Position, maxX, line.Position, line.Color, 2); - } - - // Check if the vertex buffer is of the correct size - int res = (GraphResolution <= 0 ? 48 : GraphResolution); - if ((curveVertices == null) || (curveVertices.Length != res)) - curveVertices = new Vector3[res]; - - // Evaluate all functions - foreach (var func in functions) - { - var vcount = 0; - while (vcount < res) - { - var x = this.rangeX * vcount / (res - 1); - var y = func.Function(x); - if ((y > minY) && (y < maxY)) - { - curveVertices[vcount++] = UnitToGraph(x, y); - } - else - { - if (vcount > 1) - { - // Extend the last segment to the top edge of the rect. - var v1 = curveVertices[vcount - 2]; - var v2 = curveVertices[vcount - 1]; - var clip = (rect.y - v1.y) / (v2.y - v1.y); - curveVertices[vcount - 1] = v1 + (v2 - v1) * clip; - } - break; - } - } - - if (vcount > 1) - { - Handles.color = func.Color; - Handles.DrawAAPolyLine(2.0f, vcount, curveVertices); - } - } - } - - /// - /// Add a custom function to the graph using the default color. - /// - /// A function that evaluates the graph at a given position (graph units). - public void AddFunction(GraphFunction func) - { - AddFunction(func, Colors.Function); - } - - /// - /// Add a custom function to the graph. - /// - /// A function that evaluates the graph at a given position (graph units). - /// Color of the rendered function. - public void AddFunction(GraphFunction func, Color color) - { - foreach (var pair in functions) - { - if (pair.Function == func) - return; - } - - functions.Add(new FunctionColorPair { Function = func, Color = color }); - } - - /// - /// Register a function that handles click events. Arguments are passed as graph units. - /// - /// Function to call when the user clicks on the graph. - public void AddClickEvent(MouseEvent e) - { - if (!clickEvents.Contains(e)) - clickEvents.Add(e); - } - - /// - /// Add a vertical line with the default color. - /// - /// Position of the line in graph units. - public void AddLineX(float value) - { - AddLineX(value, Colors.CustomLine); - } - - /// - /// Add a vertical line. - /// - /// Position of the line in graph units. - /// Color of the line. - public void AddLineX(float value, Color color) - { - foreach (var pair in linesX) - { - if (pair.Position == value) - return; - } - - linesX.Add(new LineColorPair { Position = value, Color = color }); - } - - /// - /// Add a horizontal line with the default color. - /// - /// Position of the line in graph units. - public void AddLineY(float value) - { - AddLineY(value, Colors.CustomLine); - } - - /// - /// Add a horizontal line. - /// - /// Position of the line in graph units. - /// Color of the line. - public void AddLineY(float value, Color color) - { - foreach (var pair in linesY) - { - if (pair.Position == value) - return; - } - - linesY.Add(new LineColorPair { Position = value, Color = color }); - } - - #endregion - - /// - /// Custom function delegate. This works in graph units. - /// - /// Input value, eg. where the function is evaluated. - /// The evaluated value at position x. - public delegate float GraphFunction(float x); - - /// - /// Mouse click delegate. - /// - /// X position of the click, in graph units. - /// Y position of the click, in graph units. - public delegate void MouseEvent(float x, float y); - - #region Internal state - - // Vertex buffers - Vector3[] rectVertices = new Vector3[4]; - Vector3[] lineVertices = new Vector3[2]; - Vector3[] curveVertices; - - List functions = new List(); - List linesX = new List(); - List linesY = new List(); - List clickEvents = new List(); - float minX, maxX, minY, maxY; - Rect rect; - float rangeX = 10; - float rangeY = 10; - - struct FunctionColorPair - { - public GraphFunction Function; - public Color Color; - } - struct LineColorPair - { - public float Position; - public Color Color; - } - - #endregion - - #region Helper functions - - Vector3 UnitToGraph(float x, float y) - { - x = Mathf.Lerp(rect.x, rect.xMax, (x - minX) / rangeX); - y = Mathf.Lerp(rect.yMax, rect.y, (y - minY) / rangeY); - - return new Vector3(x, y, 0); - } - - float UnitToGraphX(float x) - { - return Mathf.Lerp(rect.x, rect.xMax, (x - minX) / rangeX); - } - - float UnitToGraphY(float y) - { - return Mathf.Lerp(rect.yMax, rect.y, (y - minY) / rangeY); - } - - void DrawLine(float x1, float y1, float x2, float y2, Color color, float width) - { - lineVertices[0] = UnitToGraph(x1, y1); - lineVertices[1] = UnitToGraph(x2, y2); - Handles.color = color; - Handles.DrawAAPolyLine(width, lineVertices); - } - - void DrawRect(float x1, float y1, float x2, float y2, Color fill, Color line) - { - rectVertices[0] = UnitToGraph(x1, y1); - rectVertices[1] = UnitToGraph(x2, y1); - rectVertices[2] = UnitToGraph(x2, y2); - rectVertices[3] = UnitToGraph(x1, y2); - - Handles.DrawSolidRectangleWithOutline(rectVertices, fill, line); - } - - #endregion - } -} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs deleted file mode 100644 index 447f2ebe97681b1330b9b9f1d1aa7dd38d530cb6..0000000000000000000000000000000000000000 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs +++ /dev/null @@ -1,163 +0,0 @@ -// -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 -// -// Development "World Storage", data management, authoring tools -// -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 -// - -#define USING_OPENAPI_GENERATOR // alt. is Swagger - -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; -using ETSI.ARF.WorldStorage.RESTful; - -#if USING_OPENAPI_GENERATOR -using Org.OpenAPITools.Api; -using Org.OpenAPITools.Model; -#else -using IO.Swagger.Api; -using IO.Swagger.Model; -#endif - - -namespace ETSI.ARF.WorldStorage.UI -{ - public class TrackableWindow : EditorWindow - { - [HideInInspector] public WorldStorageSettings worldStorageSettings; - - [SerializeField] public List trackables = new List(); - - bool groupEnabled; - - string uid = System.Guid.Empty.ToString(); - string creatorUid = System.Guid.Empty.ToString(); - string type = "Unknow"; - string unit = "Unknow"; - Vector2Int dim; - - private Trackable currentTrackable; - private Vector2 scrollPos; - private Color ori; - private GUIStyle gsTest; - - public static void ShowWindow(WorldStorageSettings ws) - { - TrackableWindow win = EditorWindow.GetWindow(typeof(TrackableWindow), false, WorldStorageWindow.winName) as TrackableWindow; - win.worldStorageSettings = ws; - } - - public TrackableWindow() - { - // init somne stuffs - //currentTrackable = new Trackable(); - } - - void OnGUI() - { - ori = GUI.backgroundColor; // remember ori color - - gsTest = new GUIStyle("window"); - gsTest.normal.textColor = WorldStorageWindow.arfColors[0]; - gsTest.fontStyle = FontStyle.Bold; - - scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); - WorldStorageWindow.DrawCopyright(); - - DrawTrackableStuffs();// currentTrackable); - - EditorGUILayout.EndScrollView(); - - if (GUILayout.Button("Close Window")) - { - Close(); - } - } - - void DrawTrackableStuffs()// Trackable trackable) - { - GUILayout.BeginVertical("AR Trackable", gsTest); - // - GUILayout.Label("Server: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); - GUILayout.Label("Creator UID: " + creatorUid, EditorStyles.miniLabel); // readonly - EditorGUILayout.Space(); - - //GUILayout.BeginHorizontal(); - uid = EditorGUILayout.TextField("UID (0 = new one)", uid); - EditorGUILayout.Space(); - - GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Get Parameters")) - { - Trackable t = RESTfulTrackableRequest.GetTrackable(worldStorageSettings, uid); - creatorUid = t.CreatorUID.ToString(); - type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); - } - GUI.backgroundColor = ori; - - type = EditorGUILayout.TextField("Trackable Type", type); - unit = EditorGUILayout.TextField("Unit System", unit); - - EditorGUILayout.Space(10); - dim = EditorGUILayout.Vector2IntField("Dimension", dim); - - EditorGUILayout.Space(); - GUILayout.Button("Payload from Asset..."); - - EditorGUILayout.Space(); - groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); - EditorGUILayout.IntField("Number of KeyValues", 0); - EditorGUILayout.Space(); - EditorGUILayout.TextField("Key", ""); - EditorGUILayout.TextField("Value", ""); - EditorGUILayout.EndToggleGroup(); - // - GUILayout.EndVertical(); - - GUI.backgroundColor = WorldStorageWindow.arfColors[3]; - if (GUILayout.Button("Delete Trackable")) - { - Debug.Log("Deleting Trackable"); - RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, uid); - uid = System.Guid.Empty.ToString(); - creatorUid = System.Guid.Empty.ToString(); - type = ""; - unit = ""; - WorldStorageWindow.WorldStorageWindowSingleton.UpdateList(); - WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); - } - GUI.backgroundColor = ori; - - GUI.backgroundColor = WorldStorageWindow.arfColors[2]; - if (GUILayout.Button("Create/Update Trackable")) - { - Debug.Log("PostAddTrackable"); - if (string.IsNullOrEmpty(uid) || uid == "0") uid = System.Guid.Empty.ToString(); - Trackable t = RESTfulTrackableRequest.TrackableFromStrings(uid, worldStorageSettings.creatorUID); - RESTfulTrackableRequest.PostAddTrackable(worldStorageSettings, t); - WorldStorageWindow.WorldStorageWindowSingleton.UpdateList(); - WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); - - uid = t.UID.ToString(); - type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); - } - GUI.backgroundColor = WorldStorageWindow.arfColors[5]; - if (GUILayout.Button("Generate GameObject Component")) - { - } - GUI.backgroundColor = ori; - } - - - } -} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows.meta similarity index 77% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows.meta index 64ab4648eed6c845857a67664c52f5d05d77382d..bf1141ac4617e76d6c3c2cfa2f92f99a21f33728 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: efec94a96917ef946ab027baa62bc0bc +guid: fbbff3217b2a8cd428764d83150c7b22 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs new file mode 100644 index 0000000000000000000000000000000000000000..630f2d020c8cf2f59e9569e1b8ce66151311308b --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs @@ -0,0 +1,228 @@ +// +// ETSI (European Telecommunications Standards Institute, referred to as ETSI) +// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) +// (C) 2022 +// +// Development "World Storage", data management, authoring tools +// Date: June 2022 +// + +#define USING_OPENAPI_GENERATOR // alt. is Swagger +//#define isDEBUG + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using ETSI.ARF.WorldStorage.REST; + +#if USING_OPENAPI_GENERATOR +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +#else +using IO.Swagger.Api; +using IO.Swagger.Model; +#endif + + +namespace ETSI.ARF.WorldStorage.UI +{ + public class TrackableWindow : EditorWindow + { + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; + + [SerializeField] public List trackables = new List(); + + bool groupEnabled; + + string UUID = System.Guid.Empty.ToString(); + string customName = "NotDefined"; + string creatorUUID = System.Guid.Empty.ToString(); + string type = "Unknow"; + string unit = "Unknow"; + Vector2Int dim; + + private Trackable currentTrackable; + private Vector2 scrollPos; + private Color ori; + private GUIStyle gsTest; + + public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user) + { + TrackableWindow win = EditorWindow.GetWindow(typeof(TrackableWindow), false, WorldStorageWindow.winName) as TrackableWindow; + win.worldStorageServer = ws; + win.worldStorageUser = user; + } + + public TrackableWindow() + { + // init somne stuffs + //currentTrackable = new Trackable(); + } + + void OnGUI() + { + ori = GUI.backgroundColor; // remember ori color + + gsTest = new GUIStyle("window"); + gsTest.normal.textColor = WorldStorageWindow.arfColors[0]; + gsTest.fontStyle = FontStyle.Bold; + + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); + WorldStorageWindow.DrawCopyright(); + + DrawTrackableStuffs(); + + EditorGUILayout.EndScrollView(); + + if (GUILayout.Button("Close Window")) + { + Close(); + } + } + + void DrawTrackableStuffs()// Trackable trackable) + { + GUILayout.BeginVertical("AR Trackable", gsTest); + // + GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); + EditorGUILayout.Space(); + + //GUILayout.BeginHorizontal(); + customName = EditorGUILayout.TextField("Name of Trackable", customName); +#if isDEBUG + GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly + GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly +#endif + EditorGUILayout.Space(); + + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Get Parameters")) + { + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + Trackable obj = TrackableRequest.GetTrackable(worldStorageServer, UUID); + customName = obj.Name; + creatorUUID = obj.CreatorUUID.ToString(); + type = obj.TrackableType.ToString(); + unit = obj.Unit.ToString(); + } + GUI.backgroundColor = ori; + + type = EditorGUILayout.TextField("Trackable Type", type); + unit = EditorGUILayout.TextField("Unit System", unit); + + EditorGUILayout.Space(10); + dim = EditorGUILayout.Vector2IntField("Dimension", dim); + + EditorGUILayout.Space(); + GUILayout.Button("Payload from Asset..."); + + EditorGUILayout.Space(); + groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); + EditorGUILayout.IntField("Number of KeyValues", 0); + EditorGUILayout.Space(); + EditorGUILayout.TextField("Key", ""); + EditorGUILayout.TextField("Value", ""); + EditorGUILayout.EndToggleGroup(); + // + GUILayout.EndVertical(); + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Create/Update Trackable")) + { + Debug.Log("PostAddTrackable"); + + if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); + Trackable obj = GenerateTrackable(UUID, customName, worldStorageUser.UUID); + TrackableRequest.AddTrackable(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + + UUID = obj.UUID.ToString(); + customName = obj.Name; + type = obj.TrackableType.ToString(); + unit = obj.Unit.ToString(); + } + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete Trackable")) + { + Debug.Log("Deleting Trackable"); + TrackableRequest.DeleteTrackable(worldStorageServer, UUID); + UUID = System.Guid.Empty.ToString(); + creatorUUID = System.Guid.Empty.ToString(); + type = ""; + unit = ""; + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + GUI.backgroundColor = ori; + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[5]; + if (GUILayout.Button("Generate GameObject Component")) + { + } + GUI.backgroundColor = ori; + } + + + static public Trackable GenerateTrackable(string uuid, string name, string creatorUID) + { + EncodingInformationStructure trackableEncodingInformation = + new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); + Debug.Log("Created encoding information"); + +#if USING_OPENAPI_GENERATOR + List size = new List(); +#else + List trackableDimension = new List(); +#endif + size.Add(5); + size.Add(5); + Debug.Log("Created dimension"); + + byte[] bytes = new byte[100]; + + for (int i = 0; i < bytes.Length; i++) + { + bytes[i] = (byte)i; + } + + List crs = new List + { + -2, 1, -3, 4, + 4, 4, 4, 2, + 1, 0, -2, 1, + -1, -2, 0, 0 + }; + + Dictionary> kv = new Dictionary>(); + kv.Add("Scenario", new List { "ETSI Trackable" }); + + System.Guid _uuid = System.Guid.Parse(uuid); + Trackable t = new Trackable( + _uuid, + name, + System.Guid.Parse(creatorUID), + Trackable.TrackableTypeEnum.IMAGEMARKER, + trackableEncodingInformation, + bytes, + crs, + UnitSystem.M, + size, + kv); + t.UUID = _uuid; + return t; + } + } +} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs new file mode 100644 index 0000000000000000000000000000000000000000..9831a5e0c65a4f3df62b52e96c4f55870c4c9486 --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs @@ -0,0 +1,213 @@ +// +// ETSI (European Telecommunications Standards Institute, referred to as ETSI) +// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) +// (C) 2022 +// +// Development "World Storage", data management, authoring tools +// Date: June 2022 +// + +#define USING_OPENAPI_GENERATOR // alt. is Swagger +//#define isDEBUG + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using ETSI.ARF.WorldStorage.REST; + +#if USING_OPENAPI_GENERATOR +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +#else +using IO.Swagger.Api; +using IO.Swagger.Model; +#endif + +namespace ETSI.ARF.WorldStorage.UI +{ + public class WorldAnchorWindow : EditorWindow + { + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; + + [SerializeField] public List anchors = new List(); + + bool groupEnabled; + + string UUID = System.Guid.Empty.ToString(); + string customName = "NotDefined"; + string creatorUUID = System.Guid.Empty.ToString(); + string unit = "Unknow"; + Vector2Int dim; + + private Vector2 scrollPos; + private Color ori; + private GUIStyle gsTest; + + public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user) + { + WorldAnchorWindow win = EditorWindow.GetWindow(typeof(WorldAnchorWindow), false, WorldStorageWindow.winName) as WorldAnchorWindow; + win.worldStorageServer = ws; + win.worldStorageUser = user; + } + + public WorldAnchorWindow() + { + // init somne stuffs + } + + void OnGUI() + { + ori = GUI.backgroundColor; // remember ori color + gsTest = new GUIStyle("window"); + gsTest.normal.textColor = WorldStorageWindow.arfColors[0]; + gsTest.fontStyle = FontStyle.Bold; + + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); + WorldStorageWindow.DrawCopyright(); + + DrawAnchorStuffs(); + + EditorGUILayout.EndScrollView(); + + if (GUILayout.Button("Close Window")) + { + Close(); + } + } + + void DrawAnchorStuffs() + { + GUILayout.BeginVertical("AR World Anchor", gsTest); + // + GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); + EditorGUILayout.Space(); + + //GUILayout.BeginHorizontal(); + customName = EditorGUILayout.TextField("Name of Anchor", customName); +#if isDEBUG + GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly + GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly +#endif + EditorGUILayout.Space(); + + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Get Parameters")) + { + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + WorldAnchor obj = WorldAnchorRequest.GetWorldAnchor(worldStorageServer, UUID); + customName = obj.Name; + creatorUUID = obj.CreatorUUID.ToString(); + unit = obj.Unit.ToString(); + } + GUI.backgroundColor = ori; + //GUILayout.EndHorizontal(); + + unit = EditorGUILayout.TextField("Unit System", unit); + + EditorGUILayout.Space(10); + dim = EditorGUILayout.Vector2IntField("Dimension", dim); + + EditorGUILayout.Space(); + groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); + EditorGUILayout.IntField("Number of KeyValues", 0); + EditorGUILayout.Space(); + EditorGUILayout.TextField("Key", ""); + EditorGUILayout.TextField("Value", ""); + EditorGUILayout.EndToggleGroup(); + // + GUILayout.EndVertical(); + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Create/Update World Anchor")) + { + Debug.Log("PostAddWorldAnchor"); + + if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); + WorldAnchor obj = GenerateWorldAnchor(UUID, customName, worldStorageUser.UUID); + WorldAnchorRequest.AddWorldAnchor(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + + UUID = obj.UUID.ToString(); + customName = obj.Name; + unit = obj.Unit.ToString(); + } + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete World Anchor")) + { + Debug.Log("Deleting World Anchor"); + WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, UUID); + UUID = System.Guid.Empty.ToString(); + creatorUUID = System.Guid.Empty.ToString(); + unit = ""; + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + GUI.backgroundColor = ori; + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[5]; + if (GUILayout.Button("Generate GameObject Component")) + { + } + GUI.backgroundColor = ori; + } + + static public WorldAnchor GenerateWorldAnchor(string uuid, string name, string creatorUID) + { + EncodingInformationStructure trackableEncodingInformation = + new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); + Debug.Log("Created encoding information"); + +#if USING_OPENAPI_GENERATOR + List size = new List(); +#else + List trackableDimension = new List(); +#endif + size.Add(5); + size.Add(5); + Debug.Log("Created dimension"); + + byte[] bytes = new byte[100]; + + for (int i = 0; i < bytes.Length; i++) + { + bytes[i] = (byte)i; + } + + List crs = new List + { + -2, 1, -3, 4, + 4, 4, 4, 2, + 1, 0, -2, 1, + -1, -2, 0, 0 + }; + + Dictionary> kv = new Dictionary>(); + kv.Add("Scenario", new List { "ETSI WorldAnchor" }); + + System.Guid _uuid = System.Guid.Parse(uuid); + WorldAnchor t = new WorldAnchor( + _uuid, + name, + System.Guid.Parse(creatorUID), + crs, + UnitSystem.M, + size, + kv); + t.UUID = _uuid; + return t; + } + } +} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs similarity index 55% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs index 7658ceb501e3f8692896d3718b4e7ea24e9e6e3f..a7f8b858f250155272e2d992fdf9384095356d61 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs @@ -4,20 +4,18 @@ // (C) 2022 // // Development "World Storage", data management, authoring tools -// -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 +// Date: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger +//#define isDEBUG using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; -using ETSI.ARF.WorldStorage.RESTful; +using ETSI.ARF.WorldStorage; +using ETSI.ARF.WorldStorage.REST; #if USING_OPENAPI_GENERATOR using Org.OpenAPITools.Api; @@ -34,11 +32,15 @@ namespace ETSI.ARF.WorldStorage.UI { static public WorldStorageWindow WorldStorageWindowSingleton; - [HideInInspector] public WorldStorageSettings worldStorageSettings; + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; [SerializeField] public List creators = new List(); [SerializeField] public List trackables = new List(); + [SerializeField] public List anchors = new List(); + string ping = "-"; + string state = "Unknow"; string vers = "Unknow"; private Vector2 scrollPos; @@ -67,6 +69,7 @@ namespace ETSI.ARF.WorldStorage.UI { WorldStorageWindowSingleton = this; } + static public void DrawCopyright() { // Title @@ -89,12 +92,12 @@ namespace ETSI.ARF.WorldStorage.UI if (GUILayout.Button("Create/Edit Trackable...")) { Debug.Log("Open Trackable Window"); - TrackableWindow.ShowWindow(worldStorageSettings); + TrackableWindow.ShowWindow(worldStorageServer, worldStorageUser); } if (GUILayout.Button("Create/Edit World Anchor...")) { Debug.Log("Open World Anchor Window"); - WorldAnchorWindow.ShowWindow(worldStorageSettings); + WorldAnchorWindow.ShowWindow(worldStorageServer, worldStorageUser); } if (GUILayout.Button("Create/Edit Link...")) { @@ -108,15 +111,29 @@ namespace ETSI.ARF.WorldStorage.UI EditorGUILayout.EndScrollView(); } - public void UpdateList() + public void UpdateListTrackables() { // Get all objects Debug.Log("Get all server objects"); - List res = RESTfulTrackableRequest.GetAllTrackables(worldStorageSettings); + List res = TrackableRequest.GetAllTrackables(worldStorageServer); trackables.Clear(); foreach (var item in res) { - trackables.Add(item.UID.ToString()); + if (!string.IsNullOrEmpty(item.Name)) trackables.Add(item.Name + " [" + item.UUID.ToString() + "]"); + else trackables.Add(item.UUID.ToString()); + } + } + + public void UpdateListWorldAnchors() + { + // Get all objects + Debug.Log("Get all server objects"); + List res = WorldAnchorRequest.GetAllWorldAnchors(worldStorageServer); + anchors.Clear(); + foreach (var item in res) + { + if (!string.IsNullOrEmpty(item.Name)) anchors.Add(item.Name + " [" + item.UUID.ToString() + "]"); + else anchors.Add(item.UUID.ToString()); } } @@ -126,48 +143,68 @@ namespace ETSI.ARF.WorldStorage.UI GUILayout.BeginVertical("World Storage Server", gsTest); // GUILayout gl = new GUILayout(); - - GUILayout.Label("Server Name: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); - GUILayout.Label("Own Creator UID: " + worldStorageSettings.creatorUID); - GUILayout.Label("Base Path: " + worldStorageSettings.basePath); - GUILayout.Label("Port: " + worldStorageSettings.port); - EditorGUILayout.Space(); + GUILayout.Label("Server Name: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User Name: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); +#if isDEBUG + GUILayout.Label("Creator UID: " + worldStorageUser.UUID); + GUILayout.Label("Base Path: " + worldStorageServer.basePath); + GUILayout.Label("Port: " + worldStorageServer.port); +#endif - // Ping EditorGUILayout.Space(); + +#region Ping + GUILayout.BeginHorizontal(); + ping = EditorGUILayout.TextField("Last Ping", ping); if (GUILayout.Button("Ping")) { - vers = RESTfulTrackableRequest.Ping(worldStorageSettings); + ping = AdminRequest.Ping(worldStorageServer); } + GUI.backgroundColor = ori; + GUILayout.EndHorizontal(); +#endregion + +#region State + GUILayout.BeginHorizontal(); + state = EditorGUILayout.TextField("State", state); + + if (GUILayout.Button("Get World Storage Sate")) + { + state = AdminRequest.GetAdminInfo(worldStorageServer); + } + GUI.backgroundColor = ori; + GUILayout.EndHorizontal(); +#endregion - // Version +#region Version GUILayout.BeginHorizontal(); vers = EditorGUILayout.TextField("Version", vers); if (GUILayout.Button("Get World Storage API Version")) { - vers = RESTfulTrackableRequest.GetAdminInfo(worldStorageSettings); + vers = AdminRequest.GetVersion(worldStorageServer); } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); +#endregion ScriptableObject target = this; SerializedObject so = new SerializedObject(target); // Get creators - #region Get all creatorUid +#region Get all creator UUID EditorGUILayout.Space(10); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request all Creator ID")) { // Get all objects Debug.Log("Get all creators id"); - List res = RESTfulTrackableRequest.GetAllTrackables(worldStorageSettings); + List res = TrackableRequest.GetAllTrackables(worldStorageServer); creators.Clear(); foreach (var item in res) { - if (!creators.Contains(item.CreatorUID.ToString())) creators.Add(item.CreatorUID.ToString()); + if (!creators.Contains(item.CreatorUUID.ToString())) creators.Add(item.CreatorUUID.ToString()); } } GUI.backgroundColor = ori; @@ -175,58 +212,91 @@ namespace ETSI.ARF.WorldStorage.UI SerializedProperty stringsProperty = so.FindProperty("creators"); EditorGUILayout.PropertyField(stringsProperty, true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties - #endregion +#endregion + // // Get trackables - #region Get all trackable objects + // +#region Get all trackable objects EditorGUILayout.Space(10); + + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Trackable ID")) + if (GUILayout.Button("Request Trackables")) { - UpdateList(); + UpdateListTrackables(); } GUI.backgroundColor = ori; - //GUILayout.Label("Number of Trackables: " + trackables.Count.ToString()); + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; - if (GUILayout.Button("Delete all Trackables (5 stay in!!!)")) + if (GUILayout.Button("Delete all Trackables (3 stay in!!!)")) { Debug.Log("Deleting all Trackable "); int n = 0; foreach (var item in trackables) { - if (++n > 5) RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, item); + if (++n > 3) TrackableRequest.DeleteTrackable(worldStorageServer, item); } - UpdateList(); + UpdateListTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; + // Show list stringsProperty = so.FindProperty("trackables"); EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties - #endregion +#endregion + + // + // Get anchors + // +#region Get all anchor objects + EditorGUILayout.Space(10); - // Anchors - #region Get all anchor objects + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Anchor ID")) + if (GUILayout.Button("Request World Anchors")) { - + UpdateListWorldAnchors(); } GUI.backgroundColor = ori; - #endregion - // Links - #region Get all link objects + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete all World Anchors (3 stay in!!!)")) + { + Debug.Log("Deleting all World Anchors "); + int n = 0; + foreach (var item in anchors) + { + if (++n > 3) WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, item); + } + + UpdateListWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + GUI.backgroundColor = ori; + + // Show list + stringsProperty = so.FindProperty("anchors"); + EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children + so.ApplyModifiedProperties(); // Remember to apply modified properties +#endregion + + // + // Get Links + // +#region Get all link objects GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Link ID")) + if (GUILayout.Button("Request World Links")) { } GUI.backgroundColor = ori; - #endregion +#endregion // GUILayout.EndVertical(); diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs deleted file mode 100644 index b0d4f4442f5aacfd70d3d04be900a2217fdfc399..0000000000000000000000000000000000000000 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs +++ /dev/null @@ -1,122 +0,0 @@ -// -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 -// -// Development "World Storage", data management, authoring tools -// -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 -// - -#define USING_OPENAPI_GENERATOR // alt. is Swagger - -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; -using ETSI.ARF.WorldStorage.RESTful; - -#if USING_OPENAPI_GENERATOR -using Org.OpenAPITools.Api; -using Org.OpenAPITools.Model; -#else -using IO.Swagger.Api; -using IO.Swagger.Model; -#endif - -namespace ETSI.ARF.WorldStorage.UI -{ - public class WorldAnchorWindow : EditorWindow - { - [HideInInspector] public WorldStorageSettings worldStorageSettings; - - [SerializeField] public List anchors = new List(); - - bool groupEnabled; - - string creatorUid = System.Guid.Empty.ToString(); - string uid = System.Guid.Empty.ToString(); - string type = "Unknow"; - string unit = "Unknow"; - Vector2Int dim; - - private Vector2 scrollPos; - private Color ori; - private GUIStyle gsTest; - - public static void ShowWindow(WorldStorageSettings ws) - { - WorldAnchorWindow win = EditorWindow.GetWindow(typeof(WorldAnchorWindow), false, WorldStorageWindow.winName) as WorldAnchorWindow; - win.worldStorageSettings = ws; - } - - public WorldAnchorWindow() - { - // init somne stuffs - } - - void OnGUI() - { - ori = GUI.backgroundColor; // remember ori color - gsTest = new GUIStyle("window"); - gsTest.normal.textColor = WorldStorageWindow.arfColors[0]; - gsTest.fontStyle = FontStyle.Bold; - - scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); - WorldStorageWindow.DrawCopyright(); - DrawAnchorStuffs(); - EditorGUILayout.EndScrollView(); - - if (GUILayout.Button("Close Window")) - { - Close(); - } - } - - void DrawAnchorStuffs() - { - GUILayout.BeginVertical("AR World Anchor", gsTest); - // - GUILayout.Label("Server: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); - GUILayout.Label("Creator UID: " + creatorUid, EditorStyles.miniLabel); // readonly - EditorGUILayout.Space(); - - //GUILayout.BeginHorizontal(); - uid = EditorGUILayout.TextField("UID (0 = create new)", uid); - EditorGUILayout.Space(); - - GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Get Parameters")) - { - //WorldStorageRestRequest.PostAddTrackable(worldStorageSettings); - } - GUI.backgroundColor = ori; - //GUILayout.EndHorizontal(); - - type = EditorGUILayout.TextField("Anchor Type", type); - unit = EditorGUILayout.TextField("Unit System", unit); - - EditorGUILayout.Space(); - groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); - EditorGUILayout.IntField("Number of KeyValues", 0); - EditorGUILayout.Space(); - EditorGUILayout.TextField("Key", ""); - EditorGUILayout.TextField("Value", ""); - EditorGUILayout.EndToggleGroup(); - - // - GUILayout.EndVertical(); - - GUI.backgroundColor = WorldStorageWindow.arfColors[2]; - if (GUILayout.Button("Create/Update World Anchor")) - { - Debug.Log("PostAddWorldAnchor"); - RESTfulTrackableRequest.PostAddWorldAnchor(worldStorageSettings); - } - GUI.backgroundColor = ori; - } - } -} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs similarity index 61% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs index 07a459067ccfe26e3b0f14f2d6785a5a6ab20032..d595b9fdc8652d70fd2e682a40635735fa03310a 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs @@ -18,15 +18,15 @@ using UnityEditor; namespace ETSI.ARF.WorldStorage.UI { - [CustomEditor(typeof(WorldStorageSettings))] - public class WorldStorageSettingsEditor : Editor + [CustomEditor(typeof(WorldStorageServer))] + public class WorldStorageServerEditor : Editor { - WorldStorageSettings worldStorageSettings; + WorldStorageServer worldStorageServer; WorldStorageWindow win; public void OnEnable() { - worldStorageSettings = (WorldStorageSettings)target; + worldStorageServer = (WorldStorageServer)target; } public override void OnInspectorGUI() @@ -41,24 +41,14 @@ namespace ETSI.ARF.WorldStorage.UI DrawDefaultInspector(); EditorGUILayout.Space(); - // creator uid button - //GUILayout.BeginHorizontal(); - //GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Create New Creator UID")) - { - worldStorageSettings.creatorUID = System.Guid.NewGuid().ToString(); - if (win != null) win.worldStorageSettings.creatorUID = worldStorageSettings.creatorUID; - } - //GUI.backgroundColor = ori; - //GUILayout.EndHorizontal(); - - // open win button + // open window button GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Open World Storage Window...")) { Debug.Log("Open Main ARF Window"); win = EditorWindow.GetWindow(typeof(WorldStorageWindow), false, "ETSI ARF - Authoring Editor") as WorldStorageWindow; - win.worldStorageSettings = worldStorageSettings; + win.worldStorageServer = worldStorageServer; + win.worldStorageUser = worldStorageServer.user; } GUI.backgroundColor = ori; } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..e37b42f5d481473f8928d0a4810ec94c61ffea3b --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs @@ -0,0 +1,54 @@ +// +// ETSI (European Telecommunications Standards Institute, referred to as ETSI) +// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) +// (C) 2022 +// +// Development "World Storage", data management, authoring tools +// +// Authors: +// - Sylvain Renault (Fraunhofer HHI) +// +// Date: Feb. 2022 +// + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +namespace ETSI.ARF.WorldStorage.UI +{ + [CustomEditor(typeof(WorldStorageUser))] + public class WorldStorageUserEditor : Editor + { + WorldStorageUser worldStorageUser; + WorldStorageWindow win; + + public void OnEnable() + { + worldStorageUser = (WorldStorageUser)target; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + Color ori = GUI.backgroundColor; + + GUILayout.Label("Copyright(c) 2022, ETSI - ARF"); + EditorGUILayout.Space(); + GUILayout.Label("Parameters:", EditorStyles.boldLabel); + DrawDefaultInspector(); + EditorGUILayout.Space(); + + // creator UUID button + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Generate New Creator UUID")) + { + worldStorageUser.UUID = System.Guid.NewGuid().ToString(); + if (win != null) win.worldStorageUser.UUID = worldStorageUser.UUID; + } + GUI.backgroundColor = ori; + } + } +} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs.meta similarity index 83% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs.meta index 2d4c18f25634b2abfd22f2306e97a1442e85b8ef..fda722e173a00845529c4320e13d4eb268184994 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 963ad0211af9f3f48a53e88d9f9f5be5 +guid: 134a71a4b493ae1468ea8de88c99135c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset similarity index 75% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset index a50e69792722d6b7e25504575e6535867ef99413..b4b6a1d0de3f9cb0a8324ed9c3480c19a4f1b925 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset @@ -10,9 +10,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} - m_Name: WorldStorageSettings_HHI_Detlef + m_Name: HHI Server - local m_EditorClassIdentifier: - serverName: Detlef's PC - creatorUID: 00000000-0000-0000-0000-000000000000 + serverName: HHI Server (Detlef) basePath: http://172.17.132.19 port: 8080 + user: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta similarity index 79% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta index 6e4830d1b423225ad76b6071173f7e4f168e789c..cd8c2c249f171d24b65dbab018c58e63e8574268 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b656b4f6c38b83148a06d0ccd523227c +guid: 62e22250d4134d64ca319770717f0b43 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset similarity index 66% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset index 58c245c10a5bf2452efe914da1c1acf86d876210..a556ade807c0deee3bac9b01c0bdbc84e83e1e5f 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset @@ -10,8 +10,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} - m_Name: myWorldStorageSettings + m_Name: HHI Server m_EditorClassIdentifier: - serverName: HHI Servers - basePath: https://localhosts - port: 40311 + serverName: HHI World Storage Server + basePath: https://ics1.hhi.fraunhofer.de/ + port: 8080 + user: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta similarity index 79% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta index 60f30736a45b910667c83b6f25924f3ffe48c583..ba6a8f7f7640f7037ba95d93de679c04c30acc99 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1d9997341aa0c1c45810f4b291addf39 +guid: 4f997253243de534dad12937f1284975 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset new file mode 100644 index 0000000000000000000000000000000000000000..b904326662a8d34184d38e62cb99ba8197e791d6 --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a1e3e7961eae84468e6ee20d5b09ffd, type: 3} + m_Name: Sylvain + m_EditorClassIdentifier: + userName: Sylvain R. + UUID: faee4241-62ac-47d1-92c8-5b4b7a5fbc93 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta new file mode 100644 index 0000000000000000000000000000000000000000..9a36c5d94f415b8ad0f885bb34005a9b525d9651 --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce0f40be06008b14283766424922b729 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity index 2e05d638926e7674509dd6c29358968229f4e8b5..51b3ac9e05164713f603cb3dfff4af54aca7a090 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity @@ -394,3 +394,47 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1056454763 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1056454765} + - component: {fileID: 1056454764} + m_Layer: 0 + m_Name: World Storage Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1056454764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056454763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 02da7adcc65f4694684d71e61d88070b, type: 3} + m_Name: + m_EditorClassIdentifier: + worldStorageServer: {fileID: 11400000, guid: 62e22250d4134d64ca319770717f0b43, type: 2} +--- !u!4 &1056454765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056454763} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Packages/manifest.json b/Packages/manifest.json index 7d93fb81455c6d6264cfa31999d0b723b5f50877..6a17a2d4fa9943fad441e49ea2668d301c238b9e 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -7,8 +7,9 @@ "com.unity.test-framework": "1.1.24", "com.unity.textmeshpro": "3.0.4", "com.unity.timeline": "1.4.7", + "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.0", "com.unity.ugui": "1.0.0", - "etsi.isg.arf.worldstorage": "file:D:/Fraunhofer/Projects/ETSI/ETSI Labs-STF/unity-world-storage-package", + "etsi.isg.arf.worldstorage": "file:./unity-world-storage-package", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 598afa179fe24e4f2ace9e8756bc237472da4b93..2c2ade1639b0e5002a955b86693e1c3ef5efacfe 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -39,6 +39,22 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.sysroot": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.sysroot.linux-x86_64": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.test-framework": { "version": "1.1.24", "depth": 0, @@ -71,6 +87,16 @@ }, "url": "https://packages.unity.com" }, + "com.unity.toolchain.win-x86_64-linux-x86_64": { + "version": "2.0.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.0", + "com.unity.sysroot.linux-x86_64": "2.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.ugui": { "version": "1.0.0", "depth": 0, @@ -81,9 +107,9 @@ } }, "etsi.isg.arf.worldstorage": { - "version": "file:D:/Fraunhofer/Projects/ETSI/ETSI Labs-STF/unity-world-storage-package", + "version": "file:unity-world-storage-package", "depth": 0, - "source": "local", + "source": "embedded", "dependencies": {} }, "com.unity.modules.ai": { diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package new file mode 160000 index 0000000000000000000000000000000000000000..14e1e679ed253a6760c78f05fe1250d1a6b86f06 --- /dev/null +++ b/Packages/unity-world-storage-package @@ -0,0 +1 @@ +Subproject commit 14e1e679ed253a6760c78f05fe1250d1a6b86f06 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000000000000000000000000000000000000..5b5facecace9276319b6e497953ab0429de65b61 --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/README.md b/README.md index 2a260d035e22da6efe4087701f007832671b77e4..b3fe2052b05b8cb7d53c46e09e9dd778d765cb96 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Setting RESTful package -Please set up first the path for the 'Unity World Storage Package' correcly +Please set up first the path in the Unity manifest.json for the 'Unity World Storage Package' correctly! --- diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index a27413b32da63531bcfb78094d2bc4999eee5d78..d053285ceecf4bd0abcecc71097c8be73e6837c9 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -11,6 +11,12 @@ EditorUserSettings: RecentlyUsedScenePath-1: value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b0d0032e2060c38f50e040e515fb31b1ff6040a flags: 0 + RecentlyUsedScenePath-2: + value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b100428b2390a0ef80e441e1f07e917 + flags: 0 + RecentlyUsedScenePath-3: + value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b090e2dfe0e3a1ff9190b0c143dfc0301f3155d04cb11d103 + flags: 0 vcSharedLogLevel: value: 0d5e400f0650 flags: 0 diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt new file mode 100644 index 0000000000000000000000000000000000000000..61c15713a29dbfe82e98ba86742ced287f61d9db --- /dev/null +++ b/UserSettings/Layouts/default-2021.dwlt @@ -0,0 +1,1020 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 6.2222223 + y: 48.444447 + width: 1694.2223 + height: 972 + m_ShowMode: 4 + m_Title: Project + m_RootView: {fileID: 8} + m_MinSize: {x: 875, y: 300} + m_MaxSize: {x: 10000, y: 10000} + m_Maximized: 0 +--- !u!114 &2 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ConsoleWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 628.44446 + y: 0 + width: 722.22217 + height: 364.22223 + m_MinSize: {x: 102, y: 121} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 20} + m_Panes: + - {fileID: 20} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &3 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 7} + - {fileID: 2} + m_Position: + serializedVersion: 2 + x: 0 + y: 557.7778 + width: 1350.6666 + height: 364.22223 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 167 +--- !u!114 &4 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 11} + - {fileID: 5} + m_Position: + serializedVersion: 2 + x: 0 + y: 30 + width: 1694.2222 + height: 922 + m_MinSize: {x: 300, y: 200} + m_MaxSize: {x: 24288, y: 16192} + vertical: 0 + controlID: 21 +--- !u!114 &5 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 1350.6666 + y: 0 + width: 343.55554 + height: 922 + m_MinSize: {x: 276, y: 71} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 16} + m_Panes: + - {fileID: 16} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &6 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 334.22223 + height: 557.7778 + m_MinSize: {x: 201, y: 221} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 17} + m_Panes: + - {fileID: 17} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &7 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProjectBrowser + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 628.44446 + height: 364.22223 + m_MinSize: {x: 231, y: 271} + m_MaxSize: {x: 10001, y: 10021} + m_ActualView: {fileID: 15} + m_Panes: + - {fileID: 15} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &8 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 9} + - {fileID: 4} + - {fileID: 10} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1694.2222 + height: 972 + m_MinSize: {x: 875, y: 300} + m_MaxSize: {x: 10000, y: 10000} + m_UseTopView: 1 + m_TopViewHeight: 30 + m_UseBottomView: 1 + m_BottomViewHeight: 20 +--- !u!114 &9 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1694.2222 + height: 30 + m_MinSize: {x: 0, y: 0} + m_MaxSize: {x: 0, y: 0} + m_LastLoadedLayoutName: +--- !u!114 &10 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 952 + width: 1694.2222 + height: 20 + m_MinSize: {x: 0, y: 0} + m_MaxSize: {x: 0, y: 0} +--- !u!114 &11 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 12} + - {fileID: 3} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1350.6666 + height: 922 + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 16192, y: 16192} + vertical: 1 + controlID: 73 +--- !u!114 &12 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 6} + - {fileID: 13} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1350.6666 + height: 557.7778 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 74 +--- !u!114 &13 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 334.22223 + y: 0 + width: 1016.4444 + height: 557.7778 + m_MinSize: {x: 202, y: 221} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 18} + m_Panes: + - {fileID: 18} + - {fileID: 19} + - {fileID: 14} + m_Selected: 0 + m_LastSelected: 1 +--- !u!114 &14 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12111, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 400, y: 100} + m_MaxSize: {x: 2048, y: 2048} + m_TitleContent: + m_Text: Asset Store + m_Image: {fileID: -7444545952099596278, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 468 + y: 181 + width: 973 + height: 501 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] +--- !u!114 &15 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 230, y: 250} + m_MaxSize: {x: 10000, y: 10000} + m_TitleContent: + m_Text: Project + m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 6.2222223 + y: 636.44446 + width: 627.44446 + height: 343.22223 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SearchFilter: + m_NameFilter: + m_ClassNames: [] + m_AssetLabels: [] + m_AssetBundleNames: [] + m_VersionControlStates: [] + m_SoftLockControlStates: [] + m_ReferencingInstanceIDs: + m_SceneHandles: + m_ShowAllHits: 0 + m_SkipHidden: 0 + m_SearchArea: 1 + m_Folders: + - Packages/com.unity.nuget.newtonsoft-json/Runtime/AOT + m_Globs: [] + m_OriginalText: + m_ViewMode: 1 + m_StartGridSize: 16 + m_LastFolders: + - Packages/com.unity.nuget.newtonsoft-json/Runtime/AOT + m_LastFoldersGridSize: 16 + m_LastProjectPath: D:\Fraunhofer\Projects\ETSI\GitLab (STF)\unity-world-storage-editor + m_LockTracker: + m_IsLocked: 0 + m_FolderTreeState: + scrollPos: {x: 0, y: 128.77777} + m_SelectedIDs: 22640000 + m_LastClickedID: 25634 + m_ExpandedIDs: 00000000d4630000d6630000d8630000da630000dc630000de630000e0630000e2630000e4630000e6630000026400002064000000ca9a3bffffff7f + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_AssetTreeState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: 00000000d4630000d6630000d8630000da630000dc630000de630000e0630000e2630000e4630000e6630000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_ListAreaState: + m_SelectedInstanceIDs: + m_LastClickedInstanceID: 0 + m_HadKeyboardFocusLastEvent: 1 + m_ExpandedInstanceIDs: c6230000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_NewAssetIndexInList: -1 + m_ScrollPosition: {x: 0, y: 0} + m_GridSize: 16 + m_SkipHiddenPackages: 0 + m_DirectoriesAreaWidth: 334 +--- !u!114 &16 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Inspector + m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 1356.8889 + y: 78.666664 + width: 342.55554 + height: 901 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_ObjectsLockedBeforeSerialization: [] + m_InstanceIDsLockedBeforeSerialization: + m_PreviewResizer: + m_CachedPref: 160 + m_ControlHash: -371814159 + m_PrefName: Preview_InspectorPreview + m_LastInspectedObjectInstanceID: -1 + m_LastVerticalScrollValue: 0 + m_GlobalObjectId: + m_InspectorMode: 0 + m_LockTracker: + m_IsLocked: 0 + m_PreviewWindow: {fileID: 0} +--- !u!114 &17 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Hierarchy + m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 6.2222223 + y: 78.666664 + width: 333.22223 + height: 536.7778 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SceneHierarchy: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: 3e640000 + m_LastClickedID: 0 + m_ExpandedIDs: 7ee2ffff + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ExpandedScenes: [] + m_CurrenRootInstanceID: 0 + m_LockTracker: + m_IsLocked: 0 + m_CurrentSortingName: TransformSorting + m_WindowGUID: 26d3cc4a749ad3148bdaac8cbfc0727d +--- !u!114 &18 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Scene + m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 340.44446 + y: 78.666664 + width: 1014.4444 + height: 536.7778 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: -98.22223, y: -25.777771} + snapCorner: 3 + id: Tool Settings + index: 0 + layout: 1 + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: -141, y: 149} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-grid-and-snap-toolbar + index: 1 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-scene-view-toolbar + index: 0 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-search-toolbar + index: 1 + layout: 1 + - dockPosition: 0 + containerId: overlay-container--left + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-transform-toolbar + index: 0 + layout: 2 + - dockPosition: 0 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 67.5, y: 86} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Orientation + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Light Settings + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Camera + index: 1 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Constraints + index: 2 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Collisions + index: 3 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Navmesh Display + index: 4 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Agent Display + index: 5 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Obstacle Display + index: 6 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Occlusion Culling + index: 7 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Physics Debugger + index: 8 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Scene Visibility + index: 9 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Particles + index: 10 + layout: 4 + m_WindowGUID: f5dcb30f0be3f8447834243ac481bdf9 + m_Gizmos: 1 + m_OverrideSceneCullingMask: 6917529027641081856 + m_SceneIsLit: 1 + m_SceneLighting: 1 + m_2DMode: 0 + m_isRotationLocked: 0 + m_PlayAudio: 0 + m_AudioPlay: 0 + m_Position: + m_Target: {x: 0, y: 0, z: 0} + speed: 2 + m_Value: {x: 0, y: 0, z: 0} + m_RenderMode: 0 + m_CameraMode: + drawMode: 0 + name: Shaded + section: Shading Mode + m_ValidateTrueMetals: 0 + m_DoValidateTrueMetals: 0 + m_ExposureSliderValue: 0 + m_SceneViewState: + m_AlwaysRefresh: 0 + showFog: 1 + showSkybox: 1 + showFlares: 1 + showImageEffects: 1 + showParticleSystems: 1 + showVisualEffectGraphs: 1 + m_FxEnabled: 1 + m_Grid: + xGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + yGrid: + m_Fade: + m_Target: 1 + speed: 2 + m_Value: 1 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 1, y: 1} + zGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + m_ShowGrid: 1 + m_GridAxis: 1 + m_gridOpacity: 0.5 + m_Rotation: + m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + speed: 2 + m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + m_Size: + m_Target: 10 + speed: 2 + m_Value: 10 + m_Ortho: + m_Target: 0 + speed: 2 + m_Value: 0 + m_CameraSettings: + m_Speed: 1 + m_SpeedNormalized: 0.5 + m_SpeedMin: 0.01 + m_SpeedMax: 2 + m_EasingEnabled: 1 + m_EasingDuration: 0.4 + m_AccelerationEnabled: 1 + m_FieldOfViewHorizontalOrVertical: 60 + m_NearClip: 0.03 + m_FarClip: 10000 + m_DynamicClip: 1 + m_OcclusionCulling: 0 + m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0} + m_LastSceneViewOrtho: 0 + m_ReplacementShader: {fileID: 0} + m_ReplacementString: + m_SceneVisActive: 1 + m_LastLockedObject: {fileID: 0} + m_ViewIsLockedToObject: 0 +--- !u!114 &19 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Game + m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 507 + y: 94 + width: 1532 + height: 790 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SerializedViewNames: [] + m_SerializedViewValues: [] + m_PlayModeViewName: GameView + m_ShowGizmos: 0 + m_TargetDisplay: 0 + m_ClearColor: {r: 0, g: 0, b: 0, a: 0} + m_TargetSize: {x: 3447, y: 1730.25} + m_TextureFilterMode: 0 + m_TextureHideFlags: 61 + m_RenderIMGUI: 0 + m_EnterPlayModeBehavior: 0 + m_UseMipMap: 0 + m_VSyncEnabled: 0 + m_Gizmos: 0 + m_Stats: 0 + m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_ZoomArea: + m_HRangeLocked: 0 + m_VRangeLocked: 0 + hZoomLockedByDefault: 0 + vZoomLockedByDefault: 0 + m_HBaseRangeMin: -766 + m_HBaseRangeMax: 766 + m_VBaseRangeMin: -384.5 + m_VBaseRangeMax: 384.5 + m_HAllowExceedBaseRangeMin: 1 + m_HAllowExceedBaseRangeMax: 1 + m_VAllowExceedBaseRangeMin: 1 + m_VAllowExceedBaseRangeMax: 1 + m_ScaleWithWindow: 0 + m_HSlider: 0 + m_VSlider: 0 + m_IgnoreScrollWheelUntilClicked: 0 + m_EnableMouseInput: 1 + m_EnableSliderZoomHorizontal: 0 + m_EnableSliderZoomVertical: 0 + m_UniformScale: 1 + m_UpDirection: 1 + m_DrawArea: + serializedVersion: 2 + x: 0 + y: 21 + width: 1532 + height: 769 + m_Scale: {x: 1, y: 1} + m_Translation: {x: 766, y: 384.5} + m_MarginLeft: 0 + m_MarginRight: 0 + m_MarginTop: 0 + m_MarginBottom: 0 + m_LastShownAreaInsideMargins: + serializedVersion: 2 + x: -766 + y: -384.5 + width: 1532 + height: 769 + m_MinimalGUI: 1 + m_defaultScale: 1 + m_LastWindowPixelSize: {x: 3447, y: 1777.5} + m_ClearInEditMode: 1 + m_NoCameraWarning: 1 + m_LowResolutionForAspectRatios: 00000000000000000000 + m_XRRenderMode: 0 + m_RenderTexture: {fileID: 0} +--- !u!114 &20 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Console + m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 634.6667 + y: 636.44446 + width: 720.22217 + height: 343.22223 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: []