功能 'top-level statements' 在 C# 7.3 中不可用。请使用 9.0 或更高版本的语言。戈多问题
Feature 'top-level statements' is not available in C# 7.3. Please use language version 9.0 or greater. Godot Question
我正在尝试学习如何使用 Godot,因为我发现它比 Unity 更容易学习,并且一直在关注 a tutorial on their official documentation page,我已经设法达到了
'Preparing for Collisions' 部分,并创建了 Hit
信号,但是,当我将节点链接在一起时,它创建了函数,并且我编写了它所说的代码放入其中:
public void OnPlayerBodyEntered(PhysicsBody2D body)
{
Hide(); // Player disappears after being hit.
EmitSignal("Hit");
GetNode<CollisionShape2D>("CollisionShape2D").SetDeferred("disabled", true);
}
但是当我 运行 它时,它给出了这个错误:
Feature 'top-level statements' is not available in C# 7.3. Please use language version 9.0 or greater.
我认为这意味着我必须更新 C#,我认为这不是什么大问题,我尝试通过 dotnet-sdk
更新它,但我不太确定是什么它是或者它是如何工作的,并且在 Godot 中找不到任何其他更新它的方法。如果这是一个愚蠢的问题,我深表歉意,我是 Godot 的新手。在此先感谢您的帮助。
我不完全确定这是否是产生顶级语句错误的代码片段。顶级语句错误通常来自,通常是 Program.cs
,或包含 Main
方法的代码文件。
C# 9 引入了顶级语句:
MSDN - Top-level statements
为了在您的项目中启用 C# 9.0,您需要编辑 .csproj
文件并添加以下内容:
<PropertyGroup>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
或者,您可以使用以下配置来定位最新的 C# 版本,目前 10.0:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
虽然 Godot 完全支持 C# 语言,但 IDE 的集成不是最好的(好吧,集成不好)。
I (...) have created the Hit signal, however, when I linked the nodes together, it created the function, and I wrote the code it said to put into it
问题是它在错误的地方创建了它。 Godot 在文件末尾添加处理程序方法。这是不正确的。它应该是 class 中与文件共享名称的方法。把方法移到那里。
我正在尝试学习如何使用 Godot,因为我发现它比 Unity 更容易学习,并且一直在关注 a tutorial on their official documentation page,我已经设法达到了
'Preparing for Collisions' 部分,并创建了 Hit
信号,但是,当我将节点链接在一起时,它创建了函数,并且我编写了它所说的代码放入其中:
public void OnPlayerBodyEntered(PhysicsBody2D body)
{
Hide(); // Player disappears after being hit.
EmitSignal("Hit");
GetNode<CollisionShape2D>("CollisionShape2D").SetDeferred("disabled", true);
}
但是当我 运行 它时,它给出了这个错误:
Feature 'top-level statements' is not available in C# 7.3. Please use language version 9.0 or greater.
我认为这意味着我必须更新 C#,我认为这不是什么大问题,我尝试通过 dotnet-sdk
更新它,但我不太确定是什么它是或者它是如何工作的,并且在 Godot 中找不到任何其他更新它的方法。如果这是一个愚蠢的问题,我深表歉意,我是 Godot 的新手。在此先感谢您的帮助。
我不完全确定这是否是产生顶级语句错误的代码片段。顶级语句错误通常来自,通常是 Program.cs
,或包含 Main
方法的代码文件。
C# 9 引入了顶级语句: MSDN - Top-level statements
为了在您的项目中启用 C# 9.0,您需要编辑 .csproj
文件并添加以下内容:
<PropertyGroup>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
或者,您可以使用以下配置来定位最新的 C# 版本,目前 10.0:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
虽然 Godot 完全支持 C# 语言,但 IDE 的集成不是最好的(好吧,集成不好)。
I (...) have created the Hit signal, however, when I linked the nodes together, it created the function, and I wrote the code it said to put into it
问题是它在错误的地方创建了它。 Godot 在文件末尾添加处理程序方法。这是不正确的。它应该是 class 中与文件共享名称的方法。把方法移到那里。