Ejemplo n.º 1
0
    public void CreateMiddle()
    {
        RoleEquipmentData equipmentData = new RoleEquipmentData();

        equipmentData.RolePlastomerId    = "88888888";
        equipmentData.RoleEquipmentItems = new List <RoleEquipmentItem> ();
        equipmentData.RoleEquipmentItems.Add(new RoleEquipmentItem {
            EquipmentId = 300007, EquipmentType = RoleEquipmentType.RoleHair
        });                                                                                                                                //7
        equipmentData.RoleEquipmentItems.Add(new RoleEquipmentItem {
            EquipmentId = 400008, EquipmentType = RoleEquipmentType.RoleClothe
        });                                                                                                                                  //8
        equipmentData.RoleEquipmentItems.Add(new RoleEquipmentItem {
            EquipmentId = 500009, EquipmentType = RoleEquipmentType.RoleFace
        });                                                                                                                                //9
        equipmentData.RoleEquipmentItems.Add(new RoleEquipmentItem {
            EquipmentId = 200005, EquipmentType = RoleEquipmentType.RoleGlasses
        });                                                                                                                                   //5
        equipmentData.RoleEquipmentItems.Add(new RoleEquipmentItem {
            EquipmentId = 600009, EquipmentType = RoleEquipmentType.RoleHand
        });                                                                                                                                //11
        equipmentData.RoleEquipmentItems.Add(new RoleEquipmentItem {
            EquipmentId = 100005, EquipmentType = RoleEquipmentType.RoleHat
        });                                                                                                                               //5
        AvatarCreateQueue.Instance.CreateAvatar(equipmentData, SpineAvatarType.Middle, "jump_lv1_01", true, true, (Avatar a) => {
            middle                    = a as SpineAvatar;
            GameObject role           = middle.avatarObject as GameObject;
            role.transform.position   = new Vector3(2.5f, -2f, 0);
            role.transform.localScale = Vector3.one;
            LogManager.Log("角色gameobject完成。");
        }, (bool b) => { LogManager.Log("穿戴所有装备完成。"); }, null);
    }
Ejemplo n.º 2
0
 public void StartFollow(GameObject role, SpineAvatar follow)
 {
     followAvatar     = follow;
     roleBoneFollower = role.GetComponent <BoneFollower>();
     followTrans      = ((followAvatar.avatarObject) as GameObject).transform;
     roleTrans        = role.transform;
     isStart          = true;
 }
Ejemplo n.º 3
0
    //跟随骨骼移动
    public void FollowBoneMove(SpineAvatar otherSpine, string boneName)
    {
        GameObject selfFollowGameObject = new GameObject(avatarObject.name);

        avatarFollow = selfFollowGameObject.AddComponent <AvatarFollow> ();
        BoneFollower boneFollower = selfFollowGameObject.AddComponent <BoneFollower> ();

        boneFollower.SkeletonRenderer = GetSkeletonAnimation;
        boneFollower.SetBone(boneName);
        avatarFollow.StartFollow(selfFollowGameObject, otherSpine);
    }
Ejemplo n.º 4
0
        /// <summary>
        /// 通过skeletonDataAsset创建角色
        /// </summary>
        /// <returns><c>true</c>, if spine role was created, <c>false</c> otherwise.</returns>
        /// <param name="skeletonDataAsset">Skeleton data asset.</param>
        /// <param name="animationName">Animation name.</param>
        /// <param name="skinName">Skin name.</param>
        /// <param name="pos">Position.</param>
        private System.Collections.IEnumerator Create(SpineAvatarType avatarType, EquipmentObject eo, SkeletonDataAsset skeletonDataAsset, string roleGameObjectName, string animationName, string skinName, bool loop, RoleEquipmentData data, Action <Avatar> createSucCallBack, Action <string> failCallBack, Action <bool> createQueueCallBack, bool isTP)
        {
            if (skeletonDataAsset == null)
            {
                if (failCallBack != null)
                {
                    failCallBack.Invoke("<-创建角色失败->");
                }
                yield break;
            }
            GameObject roleSpine = new GameObject {
                name = roleGameObjectName
            };

            roleObject        = roleSpine;
            skeletonAnimation = SkeletonAnimation.AddToGameObject(roleSpine, skeletonDataAsset);
            skeletonAnimation.Initialize(false);
            skeletonAnimation.Skeleton.SetSkin(skinName);
            skeletonAnimation.state.SetAnimation(SpineConstValue.TrackIndex, animationName, loop);
            CreateSlotAttachmentDic(skeletonAnimation.Skeleton.Data.DefaultSkin.Attachments);
            if (null == data)
            {
                equipmentData = new RoleEquipmentData();
                equipmentData.RoleEquipmentItems = new List <RoleEquipmentItem> ();
            }
            else
            {
                equipmentData = data;
            }
            CombineTextureData combineTextureData = new CombineTextureData();

            combineTextureData.resultData = new CombineFinishedData();
            RoleAnaimationData rad = new RoleAnaimationData {
                roleJsonStr = eo.equipmentJsonAsset.text
            };
            Avatar avatar = new SpineAvatar(equipmentData, skeletonAnimation, slotAttachmentDic, rad, combineTextureData, avatarType, roleObject, eo.equipmentJsonAsset.text);

            combineTextureData.resultData.self = avatar;
            if (createSucCallBack != null)
            {
                if (null != roleSpine)
                {
                    roleSpine.SetActive(false);
                    createSucCallBack.Invoke(avatar);
                }
            }
            //初始化角色的所有服装信息
            if (equipmentData.RoleEquipmentItems.Count > 0)
            {
                if (null != combineTextureData.initRoleCoroutine)
                {
                    GameManager.Instance.StopCoroutine(combineTextureData.initRoleCoroutine);
                }
                combineTextureData.initRoleCoroutine = GameManager.Instance.StartCoroutine(InitRoleEquipment(rad, skeletonAnimation, equipmentData, combineTextureData, slotAttachmentDic, avatar.GetDestoryTextureList, roleSpine.SetActive, null, isTP));
                yield return(combineTextureData.initRoleCoroutine);
            }
            else
            {
                roleSpine.SetActive(true);
            }
            if (null != createQueueCallBack)
            {
                createQueueCallBack.Invoke(true);
            }
        }