예제 #1
0
        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);
        }
예제 #2
0
        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}");
            }
        }