错误CS1519 c#脚本

时间:2017-06-01 22:20:17

标签: c# unity3d

我没有很多使用C#的经验,而且我正在为学校做游戏,我已经为角色做了动画(空闲和步行),我正在使用MixAmo来获取动画。但老师给我的代码不起作用......错误CS1519一直在发生,我无法解决,请帮助我。

这是代码:

public class Controle : MonoBehaviour {

private Animator controller;
private float speed;
private Rigidbody rb;

// Use this for initialization
void Start()
{
    controller = GetComponent<Animator>();
    rb = GetComponent<Rigidbody>();
    speed = 5 * Time.deltaTime;
}

// Update is called once per frame
void Update() {
    if (Input.GetKey(KeyCode.W))
        controller.Play("walking_inPlace");
    transform.Translate(0, 0, speed);

    if (Input.GetKey(KeyCode.S))
        controller.Play("walking_inPlace");
    transform.Translate(0, 0, -speed);

    if (Input.GetKey(KeyCode.D))
        controller.Play("walking_inPlace");
    transform.Translate(speed, 0, 0);

    if (Input.GetKey(KeyCode.A))
        controller.Play("walking_inPlace");
    transform.Translate(-speed, 0, 0);
}
else 
{
 controller.Play("breathing_idle");
}
}

3 个答案:

答案 0 :(得分:1)

如果你看一下Update方法:

// Update is called once per frame
void Update() {
    .......
}
else 
{
 controller.Play("breathing_idle");
}

else不仅在方法之外,而且与任何close if语句都不对应 你很可能想要这样做:

void Update()
{
    if (Input.GetKey(KeyCode.W))
    {
        controller.Play("walking_inPlace");
        transform.Translate(0, 0, speed);
    }
    else if (Input.GetKey(KeyCode.S))
    {
        controller.Play("walking_inPlace");
        transform.Translate(0, 0, -speed);
    }
    else if (Input.GetKey(KeyCode.D))
    {
        controller.Play("walking_inPlace");
        transform.Translate(speed, 0, 0);
    }
    else if (Input.GetKey(KeyCode.A))
    {
        controller.Play("walking_inPlace");
        transform.Translate(-speed, 0, 0);
    }
    else 
    {
         controller.Play("breathing_idle");
    }
}

答案 1 :(得分:0)

你有其他错误的指示,请尝试以下代码:

if (Input.GetKey(KeyCode.W)) {
    controller.Play("walking_inPlace");
transform.Translate(0, 0, speed);
        }

        else if (Input.GetKey(KeyCode.S)) {
    controller.Play("walking_inPlace");
transform.Translate(0, 0, -speed);
        }

        else if (Input.GetKey(KeyCode.D)) {
    controller.Play("walking_inPlace");
transform.Translate(speed, 0, 0);
        }

        else if (Input.GetKey(KeyCode.A)) {
    controller.Play("walking_inPlace");
transform.Translate(-speed, 0, 0);
        }

else
{
    controller.Play("breathing_idle");
}

答案 2 :(得分:0)

<强> Compiler Error CS1519

类,结构或接口成员声明中的令牌'token'无效 只要在不属于它的位置遇到令牌,就会生成此错误。 令牌是关键字;标识符(类,结构,方法等的名称);字符串,字符或数字文字值,例如108,“Hello”或“A”;或者操作员或标点符号,例如==或;。

在类型之前包含无效修饰符的任何类,结构或接口成员声明都将生成此错误。要修复错误,请删除无效修饰符。

特殊情况(代码段_我将参考 Camilo pablocity 答案中,您已将else语句放在更新之外这是不正确的。另外,我认为你没有关于C#的命令所以请先看一下,先学习它,然后尝试统一编码。