Ejemplo n.º 1
0
    public void SavePersonData()
    {
        PersonInfoBean personInfo = new PersonInfoBean();

        personInfo.id    = personId;
        personInfo.valid = 1;

        PersonDetailsBean personDetails = new PersonDetailsBean();

        int number = 0;

        for (int i = 0; i < PersonHandler.Instance.manager.personContainer.transform.childCount; i++)
        {
            Transform tfChild    = PersonHandler.Instance.manager.personContainer.transform.transform.GetChild(i);
            Person    itemPerson = tfChild.GetComponent <Person>();
            if (!tfChild.tag.Equals(TagInfo.Tag_Person))
            {
                continue;
            }
            //添加人
            PersonDetailsItemBean personDetailsItem = new PersonDetailsItemBean();
            personDetailsItem.position   = new Vector3Bean(tfChild.localPosition);
            personDetailsItem.size       = new Vector3Bean(tfChild.localScale);
            personDetailsItem.angle      = new Vector3Bean(tfChild.localEulerAngles);
            personDetailsItem.bufferTime = itemPerson.bufferTime;
            Transform[] tfListPart = tfChild.GetComponentsInChildren <Transform>();
            for (int f = 0; f < tfListPart.Length; f++)
            {
                //添加部件
                Transform itemPart = tfListPart[f];
                PersonDetailsItemPartBean personDetailsItemPart = new PersonDetailsItemPartBean();
                personDetailsItemPart.position = new Vector3Bean(itemPart.localPosition);
                personDetailsItemPart.size     = new Vector3Bean(itemPart.localScale);
                personDetailsItemPart.angle    = new Vector3Bean(itemPart.localEulerAngles);
                personDetailsItemPart.partName = itemPart.name;
                personDetailsItem.listPartData.Add(personDetailsItemPart);
            }
            number++;
            personDetails.listPersonData.Add(personDetailsItem);
        }
        personInfo.person_number = number;
        personInfo.SetPersonDetilas(personDetails);

        personInfoService.UpdateData(personInfo);
    }
Ejemplo n.º 2
0
 public void SetPersonDetilas(PersonDetailsBean sceneDetails)
 {
     person_data = JsonUtil.ToJson(sceneDetails);
 }
Ejemplo n.º 3
0
    public PersonDetailsBean GetPersonDetilas()
    {
        PersonDetailsBean sceneDetails = JsonUtil.FromJson <PersonDetailsBean>(person_data);

        return(sceneDetails);
    }
Ejemplo n.º 4
0
    public void SetPersonNumber(PersonInfoBean personInfo)
    {
        PersonDetailsBean personDetails = personInfo.GetPersonDetilas();

        if (manager.personContainer.transform.childCount < personInfo.person_number)
        {
            int offsetNumber = personInfo.person_number - manager.personContainer.transform.childCount;
            for (int i = 0; i < offsetNumber; i++)
            {
                GameObject objPersonModel = manager.GetPersonModel("Person");
                GameObject objPerson      = Instantiate(manager.personContainer, objPersonModel);
            }
        }
        for (int i = 0; i < manager.personContainer.transform.childCount; i++)
        {
            Transform tfChild = manager.personContainer.transform.GetChild(i);
            if (i >= personInfo.person_number)
            {
#if UNITY_EDITOR
                DestroyImmediate(tfChild.gameObject);
#else
                Destroy(tfChild.gameObject);
#endif
                i--;
            }
            else
            {
                PersonDetailsItemBean personDetailsItem = personDetails.listPersonData[i];
                Person person = CptUtil.AddCpt <Person>(tfChild.gameObject, out bool isNew);
                if (isNew)
                {
                    manager.AddPerson(person);
                }
                person.SetData(personDetailsItem.position.GetVector3(), personDetailsItem.bufferTime, isNew);
                if (Application.isPlaying)
                {
                    //tfChild.DOLocalMove(personDetailsItem.position.GetVector3(), 0.5f);
                    tfChild.DOScale(personDetailsItem.size.GetVector3(), 0.5f);
                    tfChild.DOLocalRotate(personDetailsItem.angle.GetVector3(), 0.5f);
                }
                else
                {
                    //tfChild.localPosition = personDetailsItem.position.GetVector3();
                    tfChild.localScale       = personDetailsItem.size.GetVector3();
                    tfChild.localEulerAngles = personDetailsItem.angle.GetVector3();
                }

                Transform[] listPartTF = tfChild.GetComponentsInChildren <Transform>();
                for (int f = 0; f < listPartTF.Length; f++)
                {
                    Transform tfItemPart = listPartTF[f];
                    if (tfItemPart == tfChild)
                    {
                        continue;
                    }
                    for (int p = 0; p < personDetailsItem.listPartData.Count; p++)
                    {
                        PersonDetailsItemPartBean personDetailsItemPart = personDetailsItem.listPartData[p];
                        if (tfItemPart.name.Equals(personDetailsItemPart.partName))
                        {
                            if (Application.isPlaying)
                            {
                                tfItemPart.DOLocalMove(personDetailsItemPart.position.GetVector3(), 0.5f);
                                tfItemPart.DOScale(personDetailsItemPart.size.GetVector3(), 0.5f);
                                tfItemPart.DOLocalRotate(personDetailsItemPart.angle.GetVector3(), 0.5f);
                            }
                            else
                            {
                                tfItemPart.localPosition    = personDetailsItemPart.position.GetVector3();
                                tfItemPart.localScale       = personDetailsItemPart.size.GetVector3();
                                tfItemPart.localEulerAngles = personDetailsItemPart.angle.GetVector3();
                            }

                            break;
                        }
                    }
                }
            }
        }
    }