1.U3d物体移动,动画制作

1.U3d物体移动,动画制作

1.1 实现物体的移动

1.物体移动的目的——控制物体在场景中躲的移动,躲子弹

2.物体移动的实现方法

(1)通过transform类中的position实现。

        Vector2 trans = transform.position;        float Horizontal = Input.GetAxisRaw("Horizontal");        float Vertical = Input.GetAxisRaw("Vertical");                    trans.y += highSpeed * Vertical * Time.deltaTime;        trans.x += highSpeed * Horizontal * Time.deltaTime;        transform.position = trans;

该方法实现简单,但是存在缺点,当物体与带有box collider 2D的物体碰撞时,会发生抖动。于是,便引入了通过刚体组件实现物体的移动。

(2)通过刚体组件中MovePosition()函数实现物体移动。

    void Start()    {        rgd = GetComponent<Rigidbody2D>();    }            private void Move()    {        Vector2 trans = transform.position;        float Horizontal = Input.GetAxisRaw("Horizontal");        float Vertical = Input.GetAxisRaw("Vertical");        trans.y += highSpeed * Vertical * Time.deltaTime;        trans.x += highSpeed * Horizontal * Time.deltaTime;        transform.position = trans;        rgd.MovePosition(trans);    }

1.2物体移动的动画制作

1.该行为的目的——使画面更加生动

2.如何实现:

1,给物体添加动画组件animator

2,点击预制体,制作动画,具体方法:

(1)在windows中呼唤出animation窗口,添加动画

(2)将图片拖入animation窗口,由于最后一张图会直接切到第一张图,故需要将最后一张图在最后一帧复制一次;

(3)完成物体各个动作的动画制作

3,通过animator控制物体的动画显示

(1)在Assets中创建animatorController组件,将其拖到物体animator组件中;

(2)双击打开animatorcontroller,通过blend tree 或 通过Make transition添加动画的交换条件 或 两者共同作用

(3)通过代码修改参数控制动画的交互。

        if (Mathf.Approximately(Horizontal,-1))        {            animator.SetFloat("MoveX", 0);        }        if (Mathf.Approximately(Horizontal,1))        {            animator.SetFloat("MoveX", 0.5f);        }        if (Mathf.Approximately(Horizontal,0))        {            animator.SetFloat("MoveX", 1);        }

其中Input.GetAxisRaw("Horizontal");的输出为(-1)或者(1)

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部