Unity使用代码控制Spine2D动画

欢迎加入Unity业内qq交流群:956187480

qq扫描二维码加群


 Unity使用代码控制Spine2D动画_第1张图片

public class Controller : MonoBehaviour {

    SkeletonAnimation skeletonAnimation;   

    Spine.AnimationState spineAnimationState;
    // Use this for initialization
    void Start () {
        skeletonAnimation = GetComponent();
        spineAnimationState = skeletonAnimation.state;
        spineAnimationState.SetAnimation(0, "idle", true);

        skeletonAnimation.state.Start += State_Start;
        skeletonAnimation.state.End += State_End; ;
        skeletonAnimation.state.Interrupt += State_Interrupt;
        skeletonAnimation.state.Complete += State_Complete;
        skeletonAnimation.state.Event += State_Event;
    }

    private void State_Event(Spine.TrackEntry trackEntry, Spine.Event e)
    {

    }

    private void State_Complete(Spine.TrackEntry trackEntry)
    {
    }

    private void State_Interrupt(Spine.TrackEntry trackEntry)
    {

    }

    private void State_End(Spine.TrackEntry trackEntry)
    {
       
    }

    private void State_Start(Spine.TrackEntry trackEntry)
    {
        //获取spine部件的位置坐标
        Vector3 pos = skeletonAnimation.skeleton.FindSlot("head").Bone.GetWorldPosition(transform);
        Debug.Log("头不坐标:" + pos);
    }

    // Update is called once per frame
    void Update () {

        if (Input.GetKeyDown(KeyCode.A))
        {
            skeletonAnimation.skeleton.SetToSetupPose();
            spineAnimationState.ClearTracks();
            spineAnimationState.SetAnimation(0, "attack", false);
        }
	}
}

 

你可能感兴趣的:(Unity使用代码控制Spine2D动画)