public async Task <Response> CreateResponse(string pathWithoutParams) { Response response = null; if (pathWithoutParams.StartsWith("/json/hierarchy")) { await TaskSwitcher.SwitchToMainThread(); _sceneHierarchyData = HierarchyTools.GetHierarchyActiveScene(); response = new HierarchyResponse(_sceneHierarchyData); } else if (pathWithoutParams.StartsWith("/action")) { response = new ActionResponse(); } else if (pathWithoutParams.StartsWith("/gameObjectInfo")) { response = new GameObjectInfoResponse(_sceneHierarchyData); } else { response = new FileGetResponse(_resourceFileStorage); } response?.SetInfo(_context); return(response); }
public override async Task <ResponseData> MakeResponseData() { var idString = context.HttpListenerContext.Request.QueryString.Get("id"); if (string.IsNullOrEmpty(idString)) { throw new Exception("Dont find tag \"id\" in query string"); } var idInt = int.Parse(idString); byte[] finalArray = new byte[0]; if (_sceneHierarchyData == null) { _sceneHierarchyData = HierarchyTools.GetHierarchyActiveScene(); } if (_sceneHierarchyData.gameobjectsDictonary.TryGetValue(idInt, out GameObject go)) { await TaskSwitcher.SwitchToMainThread(); Vector3 position = go.transform.position; Vector3 rotation = go.transform.rotation.eulerAngles; Vector3 scale = go.transform.localScale; GameObjectInfo objectInfo = new GameObjectInfo() { activeSelf = go.activeSelf, name = go.name, position = position, rotation = rotation, scale = scale, }; var json = JsonConvert.SerializeObject(objectInfo, Formatting.Indented, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); finalArray = ResponseTools.ConvertStringToResponseData(json); if (LogToConsoleConfig.IsLogToConsole) { Debug.Log(json); } } else { throw new Exception("Dont find id object " + idInt); } return(new ResponseData() { data = finalArray, }); }
public override async Task <ResponseData> MakeResponseData() { if (_sceneHierarchyData == null) { _sceneHierarchyData = HierarchyTools.GetHierarchyActiveScene(); } var json = JsonConvert.SerializeObject(_sceneHierarchyData, Formatting.Indented); return(new ResponseData() { data = ResponseTools.ConvertStringToResponseData(json) }); }
public static SceneHierarchyData GetHierarchyByScene(Scene scene) { SceneHierarchyData sceneHierarchyData = new SceneHierarchyData(); var rootObjects = scene.GetRootGameObjects(); HierarchyNode sceneNode = new HierarchyNode { isScene = true, id = 0, pId = -1, gameObject = null, name = scene.name, isEnable = true, }; GetHierarchy(sceneNode, rootObjects, sceneHierarchyData); sceneHierarchyData.rootNode = sceneNode; return(sceneHierarchyData); }
public GameObjectInfoResponse(SceneHierarchyData sceneHierarchyData) { _sceneHierarchyData = sceneHierarchyData; }
public HierarchyResponse(SceneHierarchyData sceneHierarchyData) { _sceneHierarchyData = sceneHierarchyData; }
public static void GetHierarchy(HierarchyNode node, IEnumerable <GameObject> childGameObjects, SceneHierarchyData sceneHierarchyData) { List <HierarchyNode> childNodes = new List <HierarchyNode>(); if (childGameObjects != null) { foreach (var children in childGameObjects) { sceneHierarchyData.gameobjectsDictonary[children.GetInstanceID()] = children; HierarchyNode nodeChild = new HierarchyNode() { name = children.name, gameObject = children.gameObject, id = children.GetInstanceID(), pId = node.id, isScene = false, isEnable = children.gameObject.activeSelf, }; List <GameObject> childChild = new List <GameObject>(); for (int i = 0; i < children.transform.childCount; i++) { var childTransform = children.transform.GetChild(i); childChild.Add(childTransform.gameObject); } GetHierarchy(nodeChild, childChild, sceneHierarchyData); childNodes.Add(nodeChild); } } if (childNodes.Any()) { node.children = childNodes.ToArray(); } else { node.children = null; } }