Animator动画系统

来源:互联网 发布:啥叫大数据 编辑:程序博客网 时间:2024/06/04 20:06

默认:取平均值

优化:循环相加

单一动作的实现(跑)

Animator animators;

float aa = 10.0f;

void  Start()

{

    animators = GetComponent<Animator>();//获取Aniamtor

}

void Update()

{

    if(animators)

    {

        float _speed = Input.GetAxis("Vertical") * aa;//获取轴向

        animators.SetFloat("speed",_speed);//运用系统float类型变量

    }

}

多个动作的组合(前后移动,左右旋转,跳跃)

Animator animators;

float aa1 = 0.1f;

float aa2 = 3f;

void  Start()

{

    animators = GetComponent<Animator>();//获取Aniamtor

}

void Update()

{

    if(animators)

    {

        if(Input.GetKeyDown(KeyCode.Space))//如果按下空格键

        {

            animators.SetBool("isbool",true);//传入跳动画为true

        }

        else if(Input.GetKeyUp(KeyCode.Space))//如果抬起空格键

        {

            animators.SetBool("isbool",false);//传入跳动画为false

        }

        float _speed = Input.GetAxis("Vertical") * aa1;//获取轴向

        transform.Translate(0,0,_speed);//控制物体前后移动

        float _sspeed = Input.GetAxis("Horizontal") * aa2;//获取轴向

        transform.Rotate(0,_sspeed,0);//控制物体左右移动

        animators.SetFloat("speed",_speed);//运用系统float类型变量

        animatos.SetFloat("speed1",_sspeed);

    }

}

动画系统——混合树




Animator animators;

float aa = 10.0f;

void  Start()

{

    animators = GetComponent<Animator>();//获取Aniamtor

}

void Update()

{

    if(animators)

    {

        float _speed = Input.GetAxis("Vertical") * aa;//获取轴向

        float _speed1 = Input.GetAxis("Horziontal") * aa;//获取轴向

        animators.SetFloat("speed",_speed);//运用系统float类型变量

        animators.SetFloat("idr",_speed1);

    }

}

Animator遮罩(在Project视图里面创建)


动作(人物右手去抓东西)//如果运行时任务下沉,可添加Idle动作



Animator animators;

public bool isIK;

public Transform handpos;

void Start()

{

    animators = GetComponent<Animator>();

}

void OnAnimatorIK()//获取IK动画的回调函数

{

    if(animaors)

    {

        if(isIK)

        {

            if(handpos != null)

            {

                animators.SetIKPositionWeight(AvatarIKGoal.RightHand,1f);//权重,(AvatarIKGoal骨骼)

                animators.SetIKRotationWeight(AvaterIKGoal.RightHand,1f);

                animators.SetIKPosition(AvataIKGoal.RightHand,handpos.position);//位置

                animators.SetIKRotation(AvatarIKGoal.RightHand,handpos.rotation);

            }

            else

            {

                animators.SetIKPositionWeight(AvatarIKGoal.RightHand,1f);//权重,(AvatarIKGoal骨骼)

                animators.SetIKRotationWeight(AvaterIKGoal.RightHand,1f);

            }

        }

    }

}

0 0
原创粉丝点击