惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
小众软件
小众软件
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
L
LangChain Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Docker
Cyberwarzone
Cyberwarzone
腾讯CDC
V
Vulnerabilities – Threatpost
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
AWS News Blog
AWS News Blog
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
MyScale Blog
MyScale Blog
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
Security Archives - TechRepublic
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
Security Latest
Security Latest
N
News and Events Feed by Topic
Attack and Defense Labs
Attack and Defense Labs
V
Visual Studio Blog
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
Intezer
P
Privacy International News Feed
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
O
OpenAI News
云风的 BLOG
云风的 BLOG
博客园_首页
雷峰网
雷峰网
M
MIT News - Artificial intelligence
Project Zero
Project Zero
I
InfoQ
Hacker News: Ask HN
Hacker News: Ask HN
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic
S
Security Affairs
S
Secure Thoughts
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
美团技术团队
The GitHub Blog
The GitHub Blog
B
Blog
H
Hacker News: Front Page

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测 505游戏母公司现已收购《明末:渊虚之羽》IP | 机核 GCORES 基石 手动杂谈12|格斗游戏也能讲好故事 | 机核 GCORES I Love You Mr Snowball 我的向日葵小姐 会比GTA6先发售吗?最硬核的生存游戏《DAYZ》要推新DLC了 周记02:在2026遇到新怪谈 什么硬件,能让游戏Loading界面快速消失? | 机核 GCORES GadioSpec《百年风云世界杯》免费试听集 | 机核 GCORES 百年风云世界杯Vol.1丨足球崛起 | 机核 GCORES 100年前,一群人提前替我们经历了AI恐惧 | 机核 GCORES 《呼啸山庄》2026 ——一辆当代艺术的大卡车冲撞了我的大脑 手游《天穗之咲稻姬:日之香巡灵传》宣布将于7月27日停服 | 机核 GCORES 集结梦之队,征战世界杯,《最佳球会ONLINE》上线Steam 山水绝景随心拼 休闲建造游戏《千里山河录》Steam商店页公开 巫师帽、法袍、魔杖,为什么它们是影视、游戏里的法师必备三件套? 《无鞘信使》-第一章 复古风自动战斗肉鸽《终结之终结》Steam商店页面现已上线 电脑里有一款不破不立的MMO,录音笔VOL.688 | 机核 GCORES 《生化危机》30周年纪念周边发售,这次是真的“保护伞” 可靠耐用+AI全能,惠普战66 2025锐龙版深度体验 《时之书:无尽终章》关卡“大航海时代”全球首次公开 经典名作《乌龙派出所》改编经营模拟游戏《乌龙派出所~阿两的商店街物语~》正式宣布支持简体中文 明日开冲,解锁反套路三国互动影游《代号三国:龙起》即将上线 独立游戏《这是我的宝藏!》已发售~ 降低难度不是唯一解,无压力死亡也是好体验 Netflix官宣新片《普通人》:讲述韩国现代史上的权力风暴 《生化危机:安魂曲》全球销量现已突破700万份 《绝地鸭卫》PC版5月15日正式发售 亡妻回忆录?女性向情感叙事游戏《S-mail》现已正式发售 全新酷黑风格,酷睿Ultra 200S PLUS的高性价比搭档!七彩虹BATTLE-AX B860M-PLUS S WIFI7 V20 超级黑刃主板测评 胖狗 索尼发布了港台地区PS5产品价格调整公告,将于5月1日起实施 二次元怪猎+性感美女!《碧蓝幻想:无尽黄昏》开启Beta公测 这款怪谈类型中式恐怖游戏居然更新了?! 《百日战纪 -最终防卫学园-》改编漫画将于今年冬季开启连载 《如被附身,请致电我们》:匈牙利黑色幽默恐怖小说 《竹屿山房杂部卷五》(译文) 大树 超越引擎 摄影分享丨四月 碎片杂记vol.72 当老式FPS与老式动画技术碰撞出新时代的火花—《神探杰克鼠》 想做独游,如何避免首个项目就褒姒? 在线多人动作游戏《OCTOPinbs》将于5月12日上线Steam! 《酒鬼女神的酒诡》确定将于2026年登陆Steam 《CRYMELIGHT》将于11月5日(周四)正式发售!4月25日开始预购! 钢铁国度MKI部落Evolution,蛮兵部分 【钢铁国度】部落-Primal MK I,蛮兵部分 这是一个高中生用ai跑出来的作品,我自称他为物理神话 钢铁国度MKI部落Metamorphosis,蛮兵部分上 钢铁国度MKI部落Metamorphosis,蛮兵部分下 INDIE Live Expo于4月25日举办:首发9款新作,超200款独立游戏亮相 暗黑卡牌策略新作《魔忌:穷鼠啮狸》发布全新中文试玩版和发售预告片,4月30日正式上线在即 战锤40K长篇小说:变节者・苦难主宰(三)(全书完) 战锤40K长篇小说:变节者・苦难主宰(二) 战锤40K长篇小说:变节者・苦难主宰(一) 英语语言学习丨短语专题1:短语的特点 唯一的EVE战争 【少前同人】【M200】战术人形会梦见音乐会吗 【昏迷3】即将发售,前作主角悉数到场!“恶灵”宋老师化身可操控角色 业内人士:游戏公司“十有八九”使用生成式AI,包括卡普空 欢庆一周年:《光与影:33号远征队》全新纪念艺术图、超值折扣与免费更新同步上线 才刚刚开始呢 【抽奖】《星际卡车司机》推出免费大型更新,四折平史低折扣进行中 四人合作FPS游戏《佣兵猎手》抢先体验重大更新 1 现已上线 Raw Fury新作《深馅地牢 Deep Dish Dungeon》将于今秋加入 XGP 塔防幸存者游戏《魔怪来袭》推出首个 DLC 《饿狼传说:群狼之城》1周年纪念!新DLC“沃尔夫冈·克劳萨”今日参战 猫狗相伴 欢乐闯关 双人合作平台跳跃游戏《猫狗同行》上线Steam商店页 《同行:月球逃脱》(Together: Moon Escape)上线将于明日上线Steam
C# with Godot:Hello C#
cameLcAsE · 2025-07-07 · via 机核

前言

这一系列的文章面向的读者是,已经对Godot和GDScript有一定的了解,并且希望了解C#并将其运用到Godot中的朋友。

如果你对Godot还不甚了解,可以看看我之前的文章

C#是Godot官方支持的两种脚本语言中的一种。GDScript采用了类Python的语法和一些内置的语法糖来给引擎用户(特别是非编程人员)提供足够高的开发效率和足够平坦的学习曲线。

如果你在接触Godot之前并非C#开发者,还有什么理由在Godot中用C#编程呢?

C#是来自名门微软的“大小姐”(若干年前有一组编程语言拟人的图,但是我找不到了)。是一门通用的编程语言,而非GDScript这种专为Godot这一个游戏引擎设计的、且只能在Godot中使用的编程语言。如果不考虑受欢迎的程度,C#编写的软件可以在很多领域、操作系统上运行。控制台应用、桌面应用、移动端应用、网站、服务端等等领域都能用C#来处理,甚至有些神奇的项目是C#写操作系统。另外你可能也了解到,Unity也是以C#作为主要的编程语言。总之,C#是应用非常广泛的编程语言。

另一个“更正经”的角度是C#语言本身的设计是更加严谨的。它是一门真正的(绝大部分时候)静态的、强类型的编程语言。对于较为复杂的功能,C#能比GDScript提供更高的安全性和可维护性。另一方面也可以让代码编辑器进行更详细、准确的静态分析以提前发现错误、提供自动补全建议。

不错的开发效率

C#虽然算是比较年轻的语言(和Java、C++等语言相比),但是也已经面世多年,积累了非常丰富的第三方库,并且有自己的包管理器,可以非常方便地引入现有的库而不是重复造轮子。

另一方面,C#目前依然在积极地改进之中,每年都有新的版本、新的语言特性,以提高开发者的体验。得益于Godot使用了“标准的”.NET实现,因此你是可以用上这些新特性、新语法的。

和Godot友好互动

作为Godot内置支持的语言,很多地方的设计是考虑到了和引擎编辑器以及GDScript的互动的。比如在GDScript中非常常用的@export等功能在C#中也可以做到。同时,GDScript也可以调用C#脚本中暴露的功能,C#脚本也可以调用GDScript的函数。这就意味着你并不需要在两者之间做出非此即彼的选择,而是可以渐进地或者部分地采用C#来开发游戏。

关于性能

由于C#脚本需要和用C++编写的Godot核心部分互动,所以在涉及和引擎交互的时候,C#不一定会比GDScript快。但如果说你的这部分代码不涉及和引擎交互(比如说单纯的算法或者一些业务代码),那么C#是可以比GDScript快很多的。

啥是.NET?

一旦你开始和C#打交道,你就无法避开.NET。说实话,在2025年,绝绝绝大部分Windows用户都是.NET的用户。

.NET是微软的一个开发平台,它是对CLI标准的一个具体实现,C#是经过编译后可以在这个运行时环境中运行的一个编程语言。

下面是一些历史(八卦),如果你对详细的不感兴趣,下面这段内容可以跳过。

C#.NET和Sun(现甲骨文)的Java之间有一段故事。当年微软拿自己实现了一套Java虚拟机,弄了另一个语言叫J++,后来Sun以其违反Java标准为由将微软告上法庭。这场官司的结果是双方达成协议不允许微软再继续开发J++相关产品。于是,微软几乎可以说是照着Java平台的模子倒出来了.NET和C#。

微软长期以来在取名字这一问题上品味很差,所以它进行了很多开发者都搞不清楚的操作。十多年前你可能在玩游戏时需要安装什么.NET Framework。这个玩意儿是微软自己对.NET相关标准的一个实现,它只能在Windows上工作,然而它早期模范的对象Java却是跨平台的。相对的,Mono则是一个跨平台实现,没错,Unity就是用的它。实际上Godot的C#版也叫Mono,但是它现在使用的其实是标准的.NET。后来微软想通了,于是发起了一个开源项目叫.NET Core,说白了就是一个官方跨平台.NET实现。这个东西大家自然是比较欢迎。不过,.NET Core 3.1之后微软直接改名说,这个东西以后就叫.NET了!并且版本号从5开始(目前最新版本是.NET 10预览版)。当然跳过4可以理解,因为.NET Framework的版本号永远停留在4了,它现在已经是事实上的过时技术了。当然你的电脑上其实极大可能也有.NET Framework,因为一些老软件还得依赖它。

C#怎么念?

发音为“see sharp”。对音乐有一定了解的朋友应该注意到了,这个井号的念法是按照乐谱中的♯来念的(没错,这个符号和#是有区别的)。

叫“C”是因为它确实又是一门基本语法和C类似的编程语言(和C++一样)。根据一篇对“C#之父”——Anders Hejlsberg的访谈,后面的#是因为它看起来像C++++。访谈中还提到最早它准备叫Cool(C like Object Oriented Language,类C面向对象语言)。

开发环境准备

下载支持C#的Godot

到Godot官网下载.NET版Godot。到目前为止,支持C#的Godot依然是一个单独的版本。当然,除了C#支持以外的功能基本上是一样的。你也可以用C#版去打开一个普通的Godot项目(但是反过来不太行)。

安装.NET SDK

为了编写运行C#代码我们需要安装.NET SDK。实际上如果只是为了运行C#代码或者说它开发的软件,我们其实一般只需要.NET Runtime(运行时),不过现在Windows会有内置安装的情况,另外部分分发方式也可能自带运行时。

前往.NET官网下载SDK并安装。目前的最新稳定版为9,而Godot的C# API目标框架为.NET 8,所以你至少要在电脑上安装了.NET 8+的SDK。

安装完成后,打开终端(或者命令提示符、PowerShell),输入dotnet。如果安装成功你的终端中应该会显示一串英文。

安装编辑器或IDE

C#语言要比GDScript复杂很多,Godot编辑器内置代码编辑器对C#支持非常简陋,不建议使用。

这里的较为主流的选择至少有三种。但是为了避免麻烦,先从安装最快、最简单的开始介绍。

IDE和编辑器有啥区别?

IDE和文本编辑器都是用来方便写代码和软件开发的东西。放在当下来说,两个东西的边界其实已经很模糊了。

IDE(Integrated Development Environment)是所谓集成开发环境。这种东西一般是用来方便特定编程语言、SDK开发工作的一套软件。它们通常会内置或者提供简单的方式安装、管理、使用各种SDK、工具链。它们通常功能比较完备而复杂,占用体积也比较大。比较典型的就是微软的Visual Studio、苹果的Xcode。

程序员所谓的文本编辑器也可以说是代码编辑器。它们是用来方便编辑各种有特殊格式的文本的。这类工具一般来说不会局限于某种特定的编程语言或者SDK,而是为了方便编写各种文本,并且一般都可以通过各种插件来支持更多格式的文本。当然,正因为插件的存在,很多文本编辑器实际上也可以完成很多放当年要IDE才能完成的工作。毕竟大部分编程语言的源文件就是单纯的文本文件,真正的“软件”是源代码编译之后得到的结果。虽然你用起来不会太舒服,但是“记事本”和Word也可以用来写代码,毕竟它们都是“文本编辑器”。当然真正符合开发者心目中的文本编辑器定义的,是Vim、Atom、Visual Studio Code这类的。

Visual Studio Code

是微软主导开发的开源的代码编辑器。完全免费,所有主流操作系统均支持。请前往官网下载

完成安装之后,最好安装C# Dev Kit插件以获得更好的C#支持。启动VS Code之后,在左侧找到“四个方块有一个方块要掉了”的图标来安装扩展(快捷键Ctrl+Shift+X)。搜索C# Dev Kit安装即可。

Visual Studio

微软自家的IDE,对C#的支持是非常好的。没错,微软确实不怎么会取名。Visual Studio Code是Visual Studio诞生很多年之后才出的,当时很多人搞不清楚两者的关系。不过这个没有macOS版!其实曾经有个微软拿Xamarin Studio改的VS for Mac,但是已经被砍掉了。前面说的Xamarin是微软(收购)的一个以C#为主要编程语言的跨平台开发框架,后面也被抛弃了,它的继任者是MAUI(半死状态)。

Visual Studio是很多计算机专业学生会接触的软件。必须要多次强调,这些专业软件不要到处去搜什么免费版破解版,第一你很有可能根本找不到想要的,还会把电脑搞得全是流氓软件。第二是根本没有这个必要。包括VS在内的很多软件都提供可用于非商业用途的免费社区版。VS Community可以免费下载安装使用。很多软件提供学生或教师证明还可以申请教育许可证免费用。

VS的官网上直接下载。这个下载下来实际上是一个安装器。打开之后会让你选择版本。可供开源项目、非盈利项目免费使用的版本叫Community。

安装VS时会让你选择安装工作负载(workload),说白了就是要选择性地安装哪些功能。要进行C#.NET开发,最好直接勾上.NET桌面开发:

JetBrains Rider

JetBrains是一家专门开发IDE的公司。在很早的时候给VS开发了一个C#插件ReSharper,这个插件现在依然在更新和服务,颇有一种NTR的感觉。而Rider是JetBrains为C#和.NET开发的独立IDE。可能是因为竞争太激烈的缘故,现在JetBrains的很多开发工具都放出了非商业用途可以免费使用的版本。如果你需要的JetBrains软件没有免费版,并且你是学生或者老师,可以到这里去申请教育许可证(需要提供教育邮箱或者学生证等证明材料)。

Rider的安装不需要太多解释,点一下下载,点一下安装。

Rider有一个优点就是内置了Godot支持。如果用Rider打开一个Godot C#项目,会显示一个启动Godot的图标。比较方便。

没用的知识:JetBrains最早的产品是用Java开发的Java IDE,名叫IDEA。这套IDE框架后来被JetBrains用来开发了一大堆IDE。

真正的Hello World

现在我们用一门正经的编程语言写一个正经的Hello World。也就是很多朋友第一次学习编程时在“黑框框”里输出Hello World的体验。

打开你的终端——现在Windows 11和macOS用户应该都有这个叫终端的应用。其他Windows用户可以打开“命令提示符”或者PowerShell。找到一个合适的位置输入以下命令:

dotnet new console -o HelloWorld

dotnet命令是.NET SDK提供的一个命令行工具,可以用于.NET项目的管理。.NET及其他微软开发的(使用MSBuild)的SDK都会以“项目”为单位来构建代码。这行命令使用new选项创建了一个叫HelloWorld的命令行项目。-o--output)指明生成的项目要放到哪个目录中,如果目录不存在会自动创建,并且会以此作为项目名称。

如果你使用的是VS,那么直接可以打开这个新建的文件夹中的HelloWorld.csproj。VS Code和Rider则选择打开这个文件夹即可。

这个项目中的唯一文件是Program.cs。C#的源文件后缀名为.cs,即C Sharp的缩写。打开文件只有唯一一行代码:

Console.WriteLine("Hello, World!");

它的作用不言而喻了。Console是一个提供控制台输入输出的静态类,WriteLine的作用是向控制台写入字符串中的内容,并在末尾加个换行。需要注意的是,C#强制要求代码行要以分号结尾。

无论你用的是什么编辑器,你都可以在终端中使用dotnet run来运行.NET项目。如果你要通过命令行运行项目的话,最好确保当前工作目录在项目目录(使用cd 项目路径切换工作目录),也就是HelloWorld.csproj所在目录。在VS或者VS Code中可以按下F5启动调试,Rider的运行按钮也是在窗口最上方类似的播放按钮。正常情况下,你的程序应该会在控制台中输出Hello, World!

揭开它的面纱

这个文件中的这一行代码实际上是在近年开始你才能这么写。C#是一个纯面向对象的编程语言,意味着你的所有代码都是在某个类的某个方法里(这一点和Java是一样的)。并且你要有个Main方法作为程序入口。实际上上面这行代码等价于:

internal class Program { private static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }

这就是C# Hello World的标准八股文式写法。它是在一个叫Program的类中写了一个叫Main的静态方法,然后再在里面写实际的Hello World代码。

后续的文章中,我们会在Godot和一般C#控制台应用中来回研究。