我没有很多使用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");
}
}
答案 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#的命令所以请先看一下,先学习它,然后尝试统一编码。