//skeletonData SkeletonAnimation skeletonAnimation = GetComponent<SkeletonAnimation>(); Debug.Log(skeletonAnimation.name);//獲取角色名 Debug.Log(skeletonAnimation.skeleton.bones[5].ToString()); //獲取所有骨骼數組list<spine.Bone> Debug.Log(skeletonAnimation.skeleton.slots[5].ToString());//獲取所有插槽數組 Debug.Log(skeletonAnimation.skeleton.data.animations[0].name.ToString());//獲取所有動畫數組 skeletonAnimation.skeleton.FindBone("root").flipX = true;//根據骨骼名獲取骨骼 Debug.Log(skeletonAnimation.skeleton.FindBoneIndex("root").ToString());//根據骨骼名獲取骨骼的index Debug.Log(skeletonAnimation.skeleton.FindSlot("torso").attachment.Name);//根據slot名獲取slot Debug.Log(skeletonAnimation.skeleton.FindSlotIndex("torso").ToString());//根據slot名獲取slot index Debug.Log(skeletonAnimation.skeleton.data.FindAnimation("walk").name);//根據動畫名獲取動畫 //skin Debug.Log(skeletonAnimation.skeleton.data.skins[0].name.ToString());//獲取所有 skin Spine.Attachment _attachment = skeletonAnimation.skeleton.data.skins[0].GetAttachment(5,"left lower leg");//從skin通過slot的index attachment的名獲取attachment //BoneData Spine.Bone _bone = skeletonAnimation.skeleton.FindBone("left upper leg"); Debug.Log(_bone.parent.ToString());//獲取骨骼的父骨骼 Debug.Log(_bone.data.length.ToString());//獲取骨骼長度 Debug.Log(_bone.rotation.ToString());//獲取骨骼旋轉 Debug.Log(_bone.data.scaleX.ToString());//獲取骨骼放縮 Debug.Log(_bone.data.scaleY.ToString()); Debug.Log(_bone.data.inheritRotation.ToString());// 是否旋轉值相對父骨骼 true是相對父骨骼 Debug.Log(_bone.data.inheritScale.ToString());//是否放縮值相對父骨骼 true是相對父骨骼 //SlotData Spine.Slot _slot = skeletonAnimation.skeleton.FindSlot("torso"); Debug.Log(_slot.data.name);//獲取slot的名字 Debug.Log(_slot.data.boneData.name);//獲取slot掛靠的bone Debug.Log(_slot.r.ToString());//獲取slot的顏色R值 Debug.Log(_slot.data.attachmentName);//獲取pose下slot的attachment名 _slot.data.additiveBlending = true;//獲取或設置slot時候用additive blending來渲染 注釋:用於特效? //Animation Debug.Log(skeletonAnimation.skeleton.data.animations[0].duration.ToString());//動畫持續時間? List<Spine.Timeline> _timeline = skeletonAnimation.skeleton.data.animations[0].timelines;//獲取動畫timeline //Skeleton Spine.SkeletonData _data = skeletonAnimation.skeleton.data;//獲取SkeletonData Debug.Log(_data.bones[0].ToString()); //獲取所有骨骼 Debug.Log(_data.slots[0].ToString());//獲取所有slots Debug.Log(skeletonAnimation.skeleton.drawOrder[0].attachment.Name);//獲取所有DrawOder Debug.Log(skeletonAnimation.skeleton.skin.name);//獲取當前skin名 skeletonAnimation.skeleton.r = 0.5f;//對skin的整體偏色 有rgba四個參數 Debug.Log(skeletonAnimation.skeleton.time.ToString());//? skeletonAnimation.skeleton.flipX = true;//skeleton翻轉軸向 skeletonAnimation.skeleton.flipY = true; skeletonAnimation.skeleton.x = 0;//skeleton的坐標 skeletonAnimation.skeleton.y = 0; skeletonAnimation.skeleton.SetBonesToSetupPose(); skeletonAnimation.skeleton.SetSlotsToSetupPose(); skeletonAnimation.skeleton.SetToSetupPose(); //skeletonAnimation.skeleton.GetAttachment();//獲取GetAttachment //skeletonAnimation.skeleton.SetAttachment(); skeletonAnimation.skeleton.Update(0.5f);//?? } --換裝函數,但是必須在slot里有這個attachMent名 skeletonAnimation = GetComponent<SkeletonAnimation>(); skeletonAnimation.skeleton.SetAttachment("rear_upper_arm","muzzle"); skeletonAnimation.skeleton.GetAttachment(); --動畫翻轉 if(x > 0) skeletonAnimation.skeleton.FlipX = false; else if(x < 0) skeletonAnimation.skeleton.FlipX = true; --播放動畫 skeletonAnimation.state.SetAnimation(0, hitAnimation, false); skeletonAnimation.state.AddAnimation(0, currentAnimation, true, 0); 注:(起始幀,動畫名,是否loop) //角色之間的繪制排序 renderer.sortingOrder = -5;