C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎

C#或C-Sharp是一种比C++更现代和灵活的编程语言,它也在游戏开发中广受欢迎。C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎,它为各种游戏提供动力,例如《口袋妖怪围棋》、《超级马里奥跑》和《神庙跑》。

Unity 3D也在虚拟现实游戏(VR)中很受欢迎,例如《半衰期:爱莉克斯》和《超级热》。

使用C#开发游戏的主要优势是该语言比C++更简单和易用。

它有更清晰和一致的语法,更强大和丰富的库和框架,例如.NET、Xamarin和MonoGame。它也支持面向对象编程(OOP)和函数式编程(FP),这些编程范式可以帮助游戏开发者组织和重用代码,提高可读性和可维护性。

另一个优势是C#支持跨平台开发,即可以在不同的设备和操作系统上运行游戏,例如Windows、macOS、Linux、Android、iOS和控制台。这是因为C#运行在一个名为公共语言运行时(CLR)的虚拟机上,它可以把C#代码转换成适合不同平台的机器码。

C#的主要缺点是该语言比C++更慢和占用更多的资源。这是因为CLR需要额外的时间和空间来执行代码转换和管理内存。

此外,C#对于底层优化的控制能力比C++差,例如直接访问硬件或操作系统功能。因此,C#更适合创建中等规模和复杂度的游戏。

从游戏引擎开始时,你所用的编程语言可能是一个决定性因素。在Unity中,使用C# 编写代码,而在Unreal中,使用C++。

虽然Unreal有自己的集成可视化脚本,叫做蓝图(Blueprints),但C++被认为是一种更难学的语言。而可视化脚本可以很好地代替编程——无需编码,就能做同样的事。只需创建节点并将它们连接在一起,就可以为游戏开发逻辑。

虽然到目前为止,Unity还没有集成的可视脚本,但是有许多第三方选项可供使用,例如Bolt和PlayMaker(Bolt现在已免费,并且计划在引擎中集成)。

如果你要写代码,可以更轻松地选择用C#的Unity,如果你不想写代码,也可以使用Unreal的蓝图。

第 1 章 游戏开发和托管代码 .... 3 1.1 什么是.NET? ...... 3 1.2 什么是托管代码 ...... 5 1.3 使用 Microsoft Visual Studio .NET 2003 IDE 编写代码 ...... 5 1.3.1 C#代码 ..... 6 1.3.2 VB .NET 代码 ..... 8 1.4 在命令行中编译.NET 代码 ...... 9 1.5 游戏开发简述 ...... 10 1.6 开发人员 ...... 10 1.7 游戏开发过程 ...... 11 1.8 工具 ...... 12 1.9 小结 ...... 16 第 II 部分 图形和游戏 1 的介绍 第 2 章 策划第一个游戏 .... 19 2.1 提出游戏构想 ...... 19 2.2 理解一个 3D 游戏的需求 ...... 21 2.3 游戏规范 ...... 24 2.4 小结 ...... 26 第 3 章 理解示例框架 .... 27 3.1 创建项目 ...... 27 3.2 枚举所有设备选项 ...... 32 3.3 小结 ...... 39 第 4 章 在屏幕上显示 .... 40 4.1 创建设备 ...... 40 4.2 开始绘图 ...... 47 4.3 加载并绘制网格 ...... 48 4.4 在场景中添加照相机 ...... 51 4.5 小结 ...... 54 第 5 章 完成代码 .... 55 5.1 理解高分辨率计时器 ...... 55 5.2 处理丢失的设备 ...... 60 5.3 添加帧速率输出 ...... 63 5.4 设计 UI 界面 ...... 65 5.5 设计按钮 ...... 72 5.6 小结 ...... 75 第 6 章 实现用户界面 .... 76 6.1 设计主菜单 ...... 76 6.2 插入到游戏引擎中 ...... 81 6.3 选择人物(Loopy) .. 84 6.4 利用新界面更新游戏引擎 ...... 91 6.5 小结 ...... 95 第 7 章 实现玩家和块 .... 96 7.1 编写 Player 对象 ...... 96 7.2 设计块 ...... 104 7.3 小结 ...... 110 第 8 章 实现级别对象 .... 111 8.1 实现级别 ...... 111 8.2 控制玩家的移动 ...... 116 8.3 处理级别的更新 ...... 119 8.4 小结 ...... 123 第 9 章 综合应用 .... 124 9.1 包含玩家 ...... 124 9.2 挂钩级别 ...... 128 9.3 实现退出界面 ...... 132 9.4 结束工作 ...... 135 9.5 小结 ...... 140 第 III 部分 基本的数学规则 第 10 章 3D 数学快速入门 .... 145 10.1 2D 与 3D .... 145 10.2 使用 3D 点 ...... 147 10.3 操作 3D 对象 ...... 148 10.3.1 平移(移动)对象 ..... 149 10.3.2 缩放 ..... 149 10.3.3 旋转 ..... 150 10.3.4 坐标系 ..... 150 10.4 数学结构 ...... 151 10.5 向量 ...... 151 10.6 矩阵 ...... 154 10.7 小结 ...... 157 第 IV 部分 间接图形、对等网、游戏 2 第 11 章 开始创建游戏 .... 161 11.1 Tankers—— 下一个游戏构想 ...... 161 11.2 创建 Tankers 项目 ...... 163 11.3 项目的图形绘制 ...... 169 11.4 为纹理构建对象池 ...... 171 11.5 小结 ...... 173 第 12 章 开发更先进的用户界面 .... 174 12.1 使用 Blockers 的基类(Base 类) .. 174 12.2 添加新的基类 ...... 179 12.3 实现主界面 ...... 182 12.4 利用用户界面绘制 3D 模型 ...... 189 12.5 小结 ...... 193 第 13 章 绘制真实的坦克 .... 194 13.1 理解网格层次结构 ...... 194 13.2 加载坦克层次结构 ...... 197 13.3 绘制网格层次 ...... 199 13.4 操作坦克 ...... 201 13.5 坦克的属性 ...... 204 13.6 创建照相机类 ...... 207 13.7 小结 ...... 210 第 14 章 天空?级别?玩家! .... 211 14.1 没有天空的世界将是黑色的世界 ...... 211 14.2 有了一个天空,但坦克不能驱动到那里 ...... 214 14.3 控制坦克 ...... 216 14.4 IMoveableObject 接口 ...... 225 14.5 基本碰撞检测 ...... 231 14.6 小结 ...... 234 第 15 章 准备,瞄准,开火! .... 235 15.1 实现 Ammunition 类 ...... 235 15.2 Bullets 集合 ...... 242 15.3 完成玩家 ...... 243 15.4 添加声音 ...... 245 15.5 小结 ...... 248 第 16 章 避免单人游戏的枯燥 .... 249 16.1 使用 DirectPlay ... 249 16.2 创建会话 ...... 255 16.3 加入会话 ...... 257 16.4 事件处理程序 ...... 258 16.5 发送及接收数据 ...... 260 16.6 小结 ...... 265 第 17 章 完成 Tankers 游戏 .... 266 17.1 插入到游戏引擎中 ...... 266 17.2 绘制游戏 ...... 272 17.3 小结 ...... 275 第 V 部分 高级绘图、客户/服务器网络和游戏 3 第 18 章 添加特殊效果 .... 279 18.1 实现基本粒子系统 ...... 279 18.2 绘制粒子系统 ...... 287 18.3 将各部分连接到一起 ...... 290 18.4 小结 ...... 292 第 19 章 构建自己的游戏 .... 293 19.1 阐明思想 ...... 293 19.2 创建自己的项目 ...... 294 19.3 设计用户界面 ...... 300 19.4 小结 ...... 305 第 20 章 可编程流水线 .... 306 20.1 定义可编程流水线 ...... 306 20.2 使用 HLSL ... 307 20.3 编写 Vertex Shader .. 309 20.4 使用着色增加逼真度 ...... 314 20.5 添加 Pixel shader .. 315 20.6 小结 ...... 317 第 21 章 控制细节的级别 .... 318 21.1 简化网格 ...... 318 21.2 使用简化的网格 ...... 322 21.3 使用渐进网格控制细节的级别 ...... 323 21.4 小结 ...... 324 第 22 章 使用绘图目标创建特效 .... 325 22.1 绘制跑道和多辆卡丁车 ...... 325 22.2 创建绘图目标和表面 ...... 331 22.3 将场景绘制到绘图目标 ...... 333 22.4 演示后视镜 ...... 334 22.5 小结 ...... 335 第 23 章 理解高级渲染语言 .... 336 23.1 理解老的 shader 模型的限制 ...... 336 23.2 添加卡丁车镜面高亮 ...... 337 23.3 逐 pixel 镜面高亮 ...... 340 23.4 小结 ...... 343 第 24 章 关于性能的注意事项 .... 344 24.1 事件模型和 Managed DirectX .... 344 24.2 生成本机程序集 ...... 345 24.3 Boxing 恶梦 ...... 346 24.4 Managed DirectX 的速度 ...... 348 24.5 理解方法的开销 ...... 349 24.6 小结 ...... 350 第 VI 部分 附 录 附录 A 开发级别创建器 .... 353
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值