错误CS1519 c#脚本
我没有太多使用C#的经验,我正在为学校做一个游戏,我确实给了角色一个动画(空闲和行走),我正在使用MixAmo来获得动画。但是老师给我的密码不起作用。。。错误CS1519不断发生,我无法修复,请帮助我 这是代码:错误CS1519 c#脚本,c#,unity3d,C#,Unity3d,我没有太多使用C#的经验,我正在为学校做一个游戏,我确实给了角色一个动画(空闲和行走),我正在使用MixAmo来获得动画。但是老师给我的密码不起作用。。。错误CS1519不断发生,我无法修复,请帮助我 这是代码: public class Controle : MonoBehaviour { private Animator controller; private float speed; private Rigidbody rb; // Use this for initializatio
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");
}
}
公共类控制:单一行为{
专用动画控制器;
私人浮动速度;
私人刚体;
//用于初始化
void Start()
{
控制器=GetComponent();
rb=GetComponent();
速度=5*Time.deltaTime;
}
//每帧调用一次更新
无效更新(){
if(Input.GetKey(KeyCode.W))
控制器。播放(“原地行走”);
transform.Translate(0,0,速度);
if(Input.GetKey(KeyCode.S))
控制器。播放(“原地行走”);
transform.Translate(0,0,-速度);
if(Input.GetKey(KeyCode.D))
控制器。播放(“原地行走”);
transform.Translate(速度,0,0);
if(Input.GetKey(KeyCode.A))
控制器。播放(“原地行走”);
transform.Translate(-speed,0,0);
}
其他的
{
控制器。播放(“呼吸空闲”);
}
}
如果else指令位置错误,请尝试以下代码:
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");
}
如果查看更新方法:
// 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");
}
}
类、结构或接口成员声明中的令牌“token”无效
每当在令牌不属于的位置遇到令牌时,就会生成此错误。标记是关键字;标识符(类、结构、方法等的名称);字符串、字符或数字文字值,如108、“Hello”或“a”;或运算符或标点符号,如==或
在类型之前包含无效修饰符的任何类、结构或接口成员声明都将生成此错误。要修复错误,请删除无效的修饰符
在您的特殊情况下(代码片段?我将参考Camilo和pablocity答案,您将else语句放在了更新之外,这是不正确的。此外,我认为您在C上没有命令,所以请先看一些tut来了解它,然后尝试在unity中进行编码。错误到底是什么样子,以及哪一行?您可能还有其他问题:您的if语句后面可能缺少块大括号,因为您似乎希望在每个if语句后面执行两行,而不是一行,即
controller.Play
和transform.Translate
,而不仅仅是controller.Play
。这甚至不会编译。不要发布答案blindlyCorrect您的代码在每个if语句之后都有{
和}
,因为每个if语句都有多个操作。