【发布时间】:2015-12-02 19:39:29
【问题描述】:
嗨,我正在统一开发一款迷你 2d 游戏,我只是创建了一个 2d 角色和一些动画(Up_Idle、Down_Idle、Right_Idle、Left_Idle/Up_run、Down_run、Right_run、Left_run) 问题是这些动画不能正常工作(例如,当我按向上箭头时,字符没有播放 Up_run 动画,但他同时播放 Up_run 和 left_run 动画)
这里是截图:
代码如下:
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);
}
}
}
【问题讨论】:
-
嗯..我对 Unity 也不太陌生......但我没有看到所有的转换。我不知道是否有一种方法可以在没有过渡的情况下更改动画......但你说左边的动画以某种方式工作。我的建议是检查过渡。但我可能错了。 :O
-
我阅读屏幕截图的方式是:怠速是默认的。只有 animator.SetFloat ("Up", 1);会触发一些东西来run_up。其他动画看起来无法访问。我的动画看起来像地狱,有很多过渡哈哈