C# 团结就是“团结”;类型或命名空间定义,或应为文件结尾;错误
这里有两个错误,但我很确定它们是相互依赖的: Assets\Course Library\Scripts\PlayerController.cs(9,16):错误CS1513: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(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;
}