统一animation.play()不起作用

Ozg*_*cin 1 c# scripting animation unity-game-engine

我有一个简单的脚本,应该动画我的播放器,但它不起作用.我读了一段时间的论坛,有些人有关于动画遗留选项的问题,我修复了它,但我的角色仍然没有动画,并且没有任何编译错误.这是我的脚本:

using UnityEngine;
using System.Collections;

public class maincharacter : MonoBehaviour {

    void Start () {
    }

    float xSpeed = 10f;
    float zSpeed = 10f;
    public float playerMovementSpeed = 10f;

    void Update () {
       float deltaX = Input.GetAxis ("Horizontal") * xSpeed;
       float deltaZ = Input.GetAxis ("Vertical") * zSpeed;

       Vector3 trans = new Vector3 (deltaX + deltaZ ,0f,deltaZ - deltaX);
       transform.Translate (trans.normalized * Time.deltaTime * playerMovementSpeed, Space.World);

       animation.Play ("mcrunsw");

       /*if (deltaX != 0 || deltaZ != 0) {
                 animation.Play ("mcrunsw");
          }*/
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的gameObject和动画: 在此输入图像描述

任何帮助,将不胜感激.提前致谢.

Jan*_*omä 6

手册:

Play()将以名称动画开始动画,或播放默认动画.动画将突然播放而不进行任何混合.

因为你每帧都调用它,我想它只会显示动画的第一帧,然后被下一个动画停止.播放在下一个更新中.试试这个:

if (!animation.isPlaying) {
    animation.Play();
}
Run Code Online (Sandbox Code Playgroud)

一般来说,我建议使用Mechanim进行角色动画.