private IEnumerator UpdateSubFamilies(FamilyController behaviour, string relatedFamilyId) { GameObject famObj = FamilyInstanceLibrary.GetFamily(relatedFamilyId); famObj.SetActive(false); CoroutineWithData <Message> cd = new CoroutineWithData <Message>( behaviour, this.ServerRequestCoroutine(new Message { Type = "GET", Data = JsonConvert.SerializeObject(new { Id = relatedFamilyId }) }) ); yield return(cd.coroutine); Message getResponse = cd.result; FamilyInstance fam = JObject.Parse(getResponse.Data).ToObject <FamilyInstance>(); famObj.GetComponent <FamilyController>().UpdateInstanceData(fam); famObj.SetActive(true); }
private IEnumerator PlaceFamily(string familyId) { if (FamilyLibrary.GetFamily(familyId) != null) { FamilyInstance newFam = new FamilyInstance { FamilyId = familyId, Transform = new Common.Models.Transform { BasisX = new XYZ { X = this.transform.right.x, Y = this.transform.right.z, Z = this.transform.right.y }, BasisY = new XYZ { X = this.transform.forward.x, Y = this.transform.forward.z, Z = this.transform.forward.y }, BasisZ = new XYZ { X = this.transform.up.x, Y = this.transform.up.z, Z = this.transform.up.y }, Origin = new XYZ { X = this.transform.position.x * Helpers.Constants.FT_PER_M, Y = this.transform.position.z * Helpers.Constants.FT_PER_M, Z = this.transform.position.y * Helpers.Constants.FT_PER_M } } }; Debug.Log($"Requesting new family"); newFam = StreamVR.Instance.PlaceFamilyInstance(newFam); Debug.Log($"Loading family instance"); yield return(this.LoadInstance(newFam)); FamilyInstanceLibrary.AddFamily(newFam, this.gameObject); } else { Debug.LogError($"Can't create family from missing ID {familyId}"); } }