• unity animator BlendTree1


    好想骂人啊,终于解决了

    问题

    我使用blendtree让角色进行跑,向左转,向右转,跳跃的的功能,但角色其他动画播放正常,只要转向就在原地不动了

    原因:动画播放完了就不动了,设置下loop属性就行了。

    使用blendtree

    1 动画如果只在原地运动,可以给动画添加运动曲线,(curves,在animation视窗中)然后给忽角色添加运动代码

    OnAnimatorMove函数中
        void OnAnimatorMove()
        {
            Animator animator = GetComponent<Animator>();
            if (animator)
            {
                Vector3 newposition = transform.position;
                newposition.z += animator.GetFloat("run") * Time.deltaTime;
                transform.position = newposition;
            }
        }
    

    2 创建控制器controller,给控制器添加动画,添加blendtree,如果想控制动画运动可以给controller添加变量通过condition条件控制角色运动 

    添加代码

    public class blendTree1 : MonoBehaviour {
        Animator animator1;
        public float speed1 = 0.08f;
    	// Use this for initialization
    	void Start () {
            animator1 = GetComponent<Animator>();
    	}
    	
    	// Update is called once per frame
    	void Update () {
            if (animator1)
            {
                AnimatorStateInfo statInfo = animator1.GetCurrentAnimatorStateInfo(0);
                if (statInfo.IsName("Base Layer.Run"))
                {
                    if (Input.GetKey(KeyCode.A))
                    {
                        animator1.SetBool("jump", true);
                    }
                }
                else
                {
                    animator1.SetBool("jump", false);
                }
    
                float horizontal = Input.GetAxis("Horizontal");
    
                animator1.SetFloat("speed", horizontal, speed1, Time.deltaTime);
            }
    	}
    }
    

      

     

  • 相关阅读:
    Spark Streaming 的容错
    Master 接受其它组件的注册
    Spark Context 概述
    Python 使用random模块生成随机数
    Python 中print 和return 的区别
    Python 访问字典(dictionary)中元素
    PIL:处理图像的好模块
    2.线性回归
    3.梯度下降法
    4.pca与梯度上升法
  • 原文地址:https://www.cnblogs.com/lv-sally/p/4519134.html
Copyright © 2020-2023  润新知