Ejemplo n.º 1
0
        private void InitializeAnimator()
        {
            if (umaObject == null)
            {
                return;
            }

            UMAContextBase uc = UMAContextBase.Instance;

            if (uc == null)
            {
                return;
            }
            UMAGeneratorBase ugb = uc.gameObject.GetComponentInChildren <UMAGeneratorBase>();

            _animator = umaObject.gameObject.GetComponent <Animator> ();
            if (_animator == null)
            {
                _animator = umaObject.gameObject.AddComponent <Animator> ();
            }

            var umaTransform = umaObject.transform;
            var oldParent    = umaTransform.parent;
            var originalRot  = umaTransform.localRotation;
            var originalPos  = umaTransform.localPosition;

            umaTransform.SetParent(null, false);
            umaTransform.localRotation = Quaternion.identity;
            umaTransform.localPosition = Vector3.zero;
            _umaData.KeepAvatar        = false;

            UMAGeneratorBase.SetAvatar(_umaData, _animator);
            if (ugb != null)
            {
                ugb.UpdateAvatar(_umaData);
            }


            umaTransform.SetParent(oldParent, false);
            umaTransform.localRotation = originalRot;
            umaTransform.localPosition = originalPos;

            //if (saveAvatar)
            //	AssetDatabase.CreateAsset(_animator.avatar, "Assets/CreatedAvatar.asset");
        }