Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 团结就是“团结”;类型或命名空间定义,或应为文件结尾;错误_C#_Unity3d_Compiler Errors - Fatal编程技术网

C# 团结就是“团结”;类型或命名空间定义,或应为文件结尾;错误

C# 团结就是“团结”;类型或命名空间定义,或应为文件结尾;错误,c#,unity3d,compiler-errors,C#,Unity3d,Compiler Errors,这里有两个错误,但我很确定它们是相互依赖的: Assets\Course Library\Scripts\PlayerController.cs(9,16):错误CS1513:}应为 Assets\Course Library\Scripts\PlayerController.cs(42,1):错误CS1022:类型或命名空间定义,或预期为文件结尾 这对我来说真的没有任何意义。我确信我的格式正确,语法正确。每当我对错误所在的代码行进行任何更改时,它只会向我抛出更多的错误 我认为代码中可能只有一个

这里有两个错误,但我很确定它们是相互依赖的:

Assets\Course Library\Scripts\PlayerController.cs(9,16):错误CS1513:
}
应为

Assets\Course Library\Scripts\PlayerController.cs(42,1):错误CS1022:类型或命名空间定义,或预期为文件结尾

这对我来说真的没有任何意义。我确信我的格式正确,语法正确。每当我对错误所在的代码行进行任何更改时,它只会向我抛出更多的错误

我认为代码中可能只有一个错误导致了复合反应,但我没有发现任何错误

能不能请一个对团结有更多了解的人向我解释一下我做错了什么

代码:

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类玩家控制器:单行为
{
void Start()
{
public float tank=GameObject.Find(“tank”).transform.localPosition.x;
}
公共浮动水平输入;
公共浮动速度=5;
公共浮动范围=20;
公共浮动zRange=30;
公共浮动zRange2=-8;
公共浮动转速=20;
公共投入;
无效更新()
{
if(变换位置x<-x范围){
transform.position=新矢量3(-xRange,transform.position.y,transform.position.z);
}
if(变换位置x>x范围){
transform.position=新矢量3(xRange,transform.position.y,transform.position.z);
}
if(变换位置zzRange){
transform.position=新矢量3(transform.position.x,transform.position.y,zRange);
}
horizontalInput=Input.GetAxis(“水平”);
forwardInput=Input.GetAxis(“垂直”);
transform.Translate(Vector3.forward*Time.deltaTime*speed*forwardInput);
变换。旋转(矢量3.up,转速*水平输入*时间。增量时间);
}
}

一般来说:编译器不太可能以引发此类异常的方式损坏;)


Start
中,您可以

public float tank = GameObject.Find("tank").transform.localPosition.x;
您不能在
Start
方法中定义
public
字段(或者确切地说是任何方法)

因此,在
public
关键字之前,编译器希望
}
关闭
Start
方法。其余的只是第一个错误导致的后续错误

编译器将尝试继续并“假定”
}
是它所期望的位置,因此您的类
玩家控制器
将在
公共浮箱之后的下一个
}
关闭。
因此,在点击
公共浮箱水平输入时出现下一个错误,因为它需要一个
/
结构
。所以你是

类型或命名空间定义,或应为文件结尾


你可能更想

public float tank;

private void Start()
{
    tank = GameObject.Find("tank").transform.localPosition.x;
}

您能否在启动函数外部声明公共浮箱并在启动函数中初始化它?您不能在方法内部使用修饰符,在本例中为
public
。工作正常。我是C#的新手,所以那是个错误。谢谢
public float tank;

private void Start()
{
    tank = GameObject.Find("tank").transform.localPosition.x;
}