如何将动画应用于Unity中的播放器

时间:2017-05-16 16:06:27

标签: android unity3d android-animation unity5

嘿伙计,所以我正在制作我的第一个应用程序。我知道这是一个非常复杂的问题,但我很难跟踪示例,因为脚本代码不同。我正在制作2D平台跑步者。首先,我创建了平台,环境以及大多数(如果不是全部)物理。此时的玩家只是一个圆圈(只是一个占位符)。圆圈可以从左向右移动并跳跃。我现在已经创建了一个真正的玩家精灵,并为步行,跳跃和闲置制作了动画。如何将新的精灵动画应用于当前的圆占位符以及脚本?我的下一步是进入动画师并开始进行转换我猜。我只是不确定如何将动画添加到我当前的脚本。我知道这将是一个挑战,如果您需要任何其他信息,请告诉我。非常感谢你们。

这是我的" Controls.cs"目前已附加到我的圈子播放器/占位符。我的CheckGround附在他身上。其他一切都与他正在跳跃的平台有关,我认为不会改变。再一次,我有一个精灵走路,跳跃和空闲,我想取代当前的圈子/占位符。我需要在按下左箭头和右箭头时进行步行动画,在按下跳跃按钮时播放泵动画,在播放器静止不动时播放空闲动画。再次,非常感谢你们!

using UnityEngine;
using System.Collections;


public class Controls : MonoBehaviour
{
    public Rigidbody2D rb;
    public float movespeed;
    public float jumpheight;
    public bool moveright;
    public bool moveleft;
    public bool jump;
    public Transform groundCheck;
    public float groundCheckRadius;
    public LayerMask whatIsGround;
    private bool onGround;

    // Use this for initialization
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();

    }

    void FixedUpdate()
    {
        onGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);
    }

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



        if (Input.GetKey(KeyCode.LeftArrow))
        {
            rb.velocity = new Vector2(-movespeed, rb.velocity.y);

        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            rb.velocity = new Vector2(movespeed, rb.velocity.y);

        }

        if (Input.GetKey(KeyCode.Space))
        {
            if (onGround)
            {
                rb.velocity = new Vector2(rb.velocity.x, jumpheight);
            }
        }

        if (jump)
        {
            if (onGround)
            {
                rb.velocity = new Vector2(rb.velocity.x, jumpheight);
            }
            jump = false;
        }

        if (moveright)
        {
            rb.velocity = new Vector2(movespeed, rb.velocity.y);
        }
        if (moveleft)
        {
            rb.velocity = new Vector2(-movespeed, rb.velocity.y);
        }

    }

}

2 个答案:

答案 0 :(得分:0)

了解Animation Controller。创建它之后,您可以从游戏对象中抓取Animator,如transform.GetComponent<Animator>() 稍后您可以混合动画或只是播放它们。 Unity甚至可以为输入动画制作输入条件,所以老实说你甚至不需要输入太多的代码。

答案 1 :(得分:0)

绝对使用动画控制器 看看这个视频 - 我现在正在关注这个教程。

https://www.youtube.com/watch?v=I0IVZhHNarg