private async Task <byte[]> ActionChangeTransform(NameValueCollection queryString) { var vector = new Vector3( ParseStringToFloat(queryString.Get("x")), ParseStringToFloat(queryString.Get("y")), ParseStringToFloat(queryString.Get("z"))); await TaskSwitcher.SwitchToMainThread(); var changeGameObject = GetGameObjectById(queryString.Get("id")); var fieldChange = queryString.Get("transformType"); switch (fieldChange) { case "position": changeGameObject.transform.position = vector; break; case "rotation": changeGameObject.transform.rotation = Quaternion.Euler(vector); break; case "scale": changeGameObject.transform.localScale = vector; break; } return(ResponseTools.CreateOkResponse()); }
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); }
private async Task <byte[]> ActionChangeTransform(NameValueCollection queryString) { var vector = new Vector3( ParseFloatString(queryString.Get("x")), ParseFloatString(queryString.Get("y")), ParseFloatString(queryString.Get("z"))); await TaskSwitcher.SwitchToMainThread(); var idGameObject = int.Parse(queryString.Get("id")); var hierarchy = HierarchyTools.GetHierarchyActiveScene(); hierarchy.gameobjectsDictonary.TryGetValue(idGameObject, out var changeGameObject); var fieldChange = queryString.Get("transformType"); switch (fieldChange) { case "position": changeGameObject.transform.position = vector; break; case "rotation": changeGameObject.transform.rotation = Quaternion.Euler(vector); break; case "scale": changeGameObject.transform.localScale = vector; break; } return(ResponseTools.CreateOkResponse()); }
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, }); }
private async Task <byte[]> ActionChangeEnableGameObject(NameValueCollection queryString) { await TaskSwitcher.SwitchToMainThread(); bool activeGameObject = ParseStringToBool(queryString.Get("activeSelf")); var changeGameObject = GetGameObjectById(queryString.Get("id")); changeGameObject.SetActive(activeGameObject); return(ResponseTools.CreateOkResponse()); }
private async Task DeleteGameObjectById(int idDeleteObject) { await TaskSwitcher.SwitchToMainThread(); var hierarchy = HierarchyTools.GetHierarchyActiveScene(); hierarchy.gameobjectsDictonary.TryGetValue(idDeleteObject, out var deleteObject); if (deleteObject != null) { UnityEngine.Object.DestroyImmediate(deleteObject.gameObject); } }
public static async Task <FileReadResult> ReadFileFromStreamingAssetsWithPlatform(string fileName) { await TaskSwitcher.SwitchToMainThread(); var finalPath = GetPlatformPathToStreamingAssets(fileName); var fileReadResult = new FileReadResult(); UnityWebRequest loadFile = null; try { loadFile = UnityWebRequest.Get(finalPath); var asyncOperation = loadFile.SendWebRequest(); while (!asyncOperation.isDone) { await Task.Delay(25); } } catch (Exception) { fileReadResult.IsError = true; Debug.LogError($"UnityWebRequest {fileName}"); } if (loadFile != null && loadFile.isDone) { if (loadFile.isNetworkError || loadFile.isHttpError) { fileReadResult = new FileReadResult() { error = loadFile.error, IsError = true, }; } else { fileReadResult = new FileReadResult() { text = loadFile.downloadHandler.text, data = loadFile.downloadHandler.data, }; } } return(fileReadResult); }
private async void WorkHandleAsync(HttpServerContext listenerContext) { await TaskSwitcher.SwitchToThreadPool(); if (_onResponseHandler != null) { var returnHandler = await _onResponseHandler(listenerContext); HttpListenerResponse response = listenerContext.GetResponse(); byte[] buffer = returnHandler.data; response.ContentLength64 = buffer.Length; using (System.IO.Stream output = response.OutputStream) { await output.WriteAsync(buffer, 0, buffer.Length); output.Close(); } } }
private async Task MoveChildren(int idMove, int idTarget) { await TaskSwitcher.SwitchToMainThread(); var hierarchy = HierarchyTools.GetHierarchyActiveScene(); hierarchy.gameobjectsDictonary.TryGetValue(idMove, out var moveObject); hierarchy.gameobjectsDictonary.TryGetValue(idTarget, out var targetObject); if (moveObject != null) { if (targetObject != null) { moveObject.transform.parent = targetObject.transform; } else { moveObject.transform.parent = null; } } }
private async void WorkThreadAsync() { await TaskSwitcher.SwitchToThreadPool(); try { _listener = new HttpListener(); _listener.Prefixes.Add("http://*:" + _port + "/"); _listener.Start(); while (_listener != null && _listener.IsListening) { HttpListenerContext context = await _listener.GetContextAsync(); HttpServerContext serverContext = new HttpServerContext(context); WorkHandleAsync(serverContext); } } catch (Exception ex) { //Debug.LogException(ex); } }