首页 > 学院 > 开发设计 > 正文

获取spine动画的一些信息

2019-11-06 09:56:16
字体:
来源:转载
供稿:网友

//skeletonDataSkeletonAnimation 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());//根据骨骼名获取骨骼的indexDebug.Log(skeletonAnimation.skeleton.FindSlot("torso").attachment.Name);//根据slot名获取slotDebug.Log(skeletonAnimation.skeleton.FindSlotIndex("torso").ToString());//根据slot名获取slot indexDebug.Log(skeletonAnimation.skeleton.data.FindAnimation("walk").name);//根据动画名获取动画//skinDebug.Log(skeletonAnimation.skeleton.data.skins[0].name.ToString());//获取所有 skinSpine.Attachment _attachment = skeletonAnimation.skeleton.data.skins[0].GetAttachment(5,"left lower leg");//从skin通过slot的index attachment的名获取attachment//BoneDataSpine.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是相对父骨骼//SlotDataSpine.Slot _slot = skeletonAnimation.skeleton.FindSlot("torso");Debug.Log(_slot.data.name);//获取slot的名字Debug.Log(_slot.data.boneData.name);//获取slot挂靠的boneDebug.Log(_slot.r.ToString());//获取slot的颜色R值Debug.Log(_slot.data.attachmentName);//获取pose下slot的attachment名_slot.data.additiveBlending = true;//获取或设置slot时候用additive blending来渲染 注释:用于特效?//AnimationDebug.Log(skeletonAnimation.skeleton.data.animations[0].duration.ToString());//动画持续时间?List<Spine.Timeline> _timeline = skeletonAnimation.skeleton.data.animations[0].timelines;//获取动画timeline//SkeletonSpine.SkeletonData _data = skeletonAnimation.skeleton.data;//获取SkeletonDataDebug.Log(_data.bones[0].ToString()); //获取所有骨骼Debug.Log(_data.slots[0].ToString());//获取所有slotsDebug.Log(skeletonAnimation.skeleton.draWorder[0].attachment.Name);//获取所有DrawOderDebug.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;


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表