private void UploadButtonOnClick(Button obj) { var req = JesusWebRequest.Post(ServerUrl.Url + "Model", _formData); req.Send(); //var resp = req.GetResponse(); }
protected override void OnLoaded() { var req = new JesusWebRequest(ServerUrl.Url, "Model/List"); req.SendWait(); var resp = req.GetResponse <List <Model> >(); if (resp == null) { return; } foreach (var model in resp) { var button = new Button { Content = string.Join(" - ", new [] { model.Id + "", model.Name, model.ModelCreator.Name }), Data = model }; button.Click += ModelButtonClick; _modelsList.Children.Add(button); } }
private void ModelButtonClick(Button button) { var data = (Model)button.Data; var req = new JesusWebRequest(ServerUrl.Url, "Model/Detail?id=" + data.Id); req.SendWait(); var jsonData = req.GetResponsePart <ResponseJsonModel>("JsonData"); var meshData = req.GetResponsePart <Stream>("ModelData"); if (jsonData == null) { Debug.LogError("Response json is null"); return; } if (meshData == null) { Debug.LogError("Response mesh is null"); return; } var mesh = UnityBinaryMesh.GetMesh(meshData); mesh.name = "FromServer: " + data.ModelFile.Id + (data.Name != null ? " - " + data.Name : ""); var newGo = new GameObject(mesh.name); // Func<UnityEngine.Material> getNewMat = () => new UnityEngine.Material(Shader.Find("IdMei/WorldSpaceMix")); Func <UnityEngine.Material> getNewMat = () => new UnityEngine.Material(Shader.Find("Standard")); var matList = new List <UnityEngine.Material>(); for (int i = 0; i < jsonData.Submeshes.Count; i++) { var subMesh = jsonData.Submeshes[i]; var material = jsonData.Materials[i]; var newMat = getNewMat(); // transfer properties matList.Add(newMat); } newGo.AddComponent <MeshRenderer>().materials = matList.ToArray(); newGo.AddComponent <MeshFilter>().mesh = mesh; Undo.RegisterCreatedObjectUndo(newGo, "Object download"); Selection.objects = new Object[] { newGo }; }
private void SubmitTags() { var tags = _tagsWrapper.Children.OfType <TagField>().Where(p => p.Tag != null).ToArray(); var newTags = tags.Where(p => p.Tag != null && p.Tag.Id == 0).Select(p => new { p.Tag.Name, p.Tag.ChineseName }); var changedTags = ( from tagElm in tags let tag = tagElm.Tag let dbTags = ( from dbTag in _materialTagsDb where dbTag.Id == tag.Id && ( dbTag.Name != tag.Name || dbTag.ChineseName != tag.ChineseName ) select dbTag ) where tagElm.Tag != null && tag.Id > 0 && tagElm.Delete == false && dbTags.Any() select tag ); var deletedTags = tags.Where(p => p.Tag != null && p.Delete).Select(p => p.Tag.Id); if (newTags.Any() == false && changedTags.Any() == false && deletedTags.Any() == false) { return; } var user = Login.GetGlobal(); var req = JesusWebRequest.Post(TagsUrl, new { NewTags = newTags, ChangedTags = changedTags, DeletedTags = deletedTags, UserName = user.Username, Password = Crc32.Checksum(user.Password) }); req.SendWait(); var resp = req.GetResponse <TagsResponse>(); if (resp.Error) { Debug.LogError("Error in webserver response"); } var ids = resp.NewIds.GetEnumerator(); foreach (var tag in tags.Where(p => p.Tag != null && p.Tag.Id == 0)) { ids.MoveNext(); if (ids.Current != null) { tag.Tag.Id = (int)ids.Current; } } _tagsWrapper.Children.RemoveAll(p => ((TagField)p).Delete); _materialTagsDb = tags.Select(p => p.Tag).Select(p => new MaterialTag { Id = p.Id, Name = p.Name, ChineseName = p.ChineseName }).ToList(); }