角色动画师问题动画无法正常工作

时间:2015-12-02 19:39:30

标签: c# unity3d 2d animator

我正在制作一个迷你2d游戏,我只是创建了一个2d角色和一些动画(Up_Idle,Down_Idle,Right_Idle,Left_Idle / Up_run,Down_run,Right_run,Left_run) 问题是这些动画无法正常工作(例如,当我按下theArrow字符不播放Up_run动画但他同时播放Up_run和left_run动画时)

这里是截图:

enter image description here

这是代码:

using UnityEngine;
using System.Collections;

public class movement : MonoBehaviour
{

    public float speedX =1f;

    public float speedY =1f;

    Animator animator;

    void Start()
    {
        animator = GetComponent <Animator> ();
    }

    void Update()
    {
        if (Input.GetKey (KeyCode.UpArrow)) {
                    transform.Translate (new Vector2 (speedX, speedY) * Time.deltaTime);
                    animator.SetFloat ("Up", 1);
                    return;
        } else {
            animator.SetFloat ("Up", 0);
        }

        if (Input.GetKey (KeyCode.DownArrow)) {
            transform.Translate (new Vector2 (-speedX, -speedY) * Time.deltaTime);
            animator.SetFloat ("Down", 1);
            return;

        } else {
            animator.SetFloat ("Down", 0);
        }

        if (Input.GetKey (KeyCode.RightArrow)) {
            transform.Translate (new Vector2 (speedX, -speedY) * Time.deltaTime);
            animator.SetFloat ("Right", 1);
            return;
        } else {
            animator.SetFloat ("Right", 0);
        }

        if (Input.GetKey (KeyCode.LeftArrow)) {
            transform.Translate (new Vector2 (-speedX, speedY) * Time.deltaTime);
            animator.SetFloat ("Left", 1);
            return;
        } else {
            animator.SetFloat ("Left", 0);
        }
    } 
}

2 个答案:

答案 0 :(得分:0)

如果同时播放两个动画,则表示该条件用作2个图形的转换。例如,您的idle_left - &gt; run_left和idle_up - &gt; run_up肯定具有相同的转换条件(Up == 1.0我假设)。如果您希望动画独立,则它们不应具有相同的过渡条件。

希望它有所帮助。

答案 1 :(得分:0)

私人动画师动画师;

{{1}}