Exemplo n.º 1
0
        IEnumerator BoneChange(float time)
        {
            float _time = 0;

            while (_time < time)
            {
                _time += Time.deltaTime;
                FaceData.RecalculateBone(_time / time);
                yield return(new WaitForEndOfFrame());
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 读取一个Avatar数据
        /// </summary>
        /// <param name="data">Avatar数据</param>
        public void SetAvatarData(AvatarData data)
        {
            Texture2D tex = new Texture2D(0, 0);

            if (data.FaceImageData != null)
            {
                tex.LoadImage(data.FaceImageData);
            }
            else
            {
                tex = null;
            }
            FaceData = new FaceData(transform, Face, data.FaceBonesData, false, tex);
            SetFaceImage(FaceData.DataImage);
            Hair       = data.Hair.GetSkinnedMesh(Bones, Hair);
            UpperBody  = data.UpperBody.GetSkinnedMesh(Bones, UpperBody);
            UpperCloth = data.UpperCloth.GetSkinnedMesh(Bones, UpperCloth);
            LowerBody  = data.LowerBody.GetSkinnedMesh(Bones, LowerBody);
            LowerCloth = data.LowerCloth.GetSkinnedMesh(Bones, LowerCloth);
            Shoes      = data.Shoes.GetSkinnedMesh(Bones, Shoes);
            StartCoroutine(BoneChange(changeTime));
            AvatarDebug.Log("SetAvatarData done!");
        }
Exemplo n.º 3
0
        private void JsonManager(bool isDone, string json, Texture2D tex)
        {
            if (LoadResultEvent != null)
            {
                LoadResultEvent(isDone);
            }
            if (!isDone)
            {
                return;
            }
            IJsonFaceData jsonData = new JsonFaceData(AvatarTools.ReadFaceJson(json));

            Gender   = jsonData.Gender;
            Age      = jsonData.Age;
            FaceData = new FaceData(transform, Face);
            Dictionary <string, BoneInfo> dataBone = new JsonFaceDataBone(jsonData);
            IFaceImageData imageData = new JsonFaceDataImage(jsonData, tex);

            FaceData = new FaceData(transform, Face, dataBone, true, null);
            AvatarTools.FaceTexMapper(imageData, FaceData);
            SetFaceImage(FaceData.DataImage);
            AvatarDebug.Log("LoadFaceTex done!");
            StartCoroutine(BoneChange(changeTime));
        }