图书前言

前言

Unity 是世界上最受欢迎的游戏引擎之一,它适用于业余爱好者、专业3A工作室和电影制作公司。尽管Unity常以其作为3D工具的使用而闻名,但它还有诸多专有功能,为2D游戏、虚拟现实、影视后期制作、跨平台发布等内容生产提供支持。

开发者喜欢Unity的拖放界面和内置功能,但真正让Unity更上一层楼的,是因其能为行为和游戏机制编写自定义C#脚本。学习编写C#代码对于已熟悉其他语言、经验丰富的程序员来说可能不是一个巨大的障碍,但对于那些没有编程经验的人来说,可能会是令人生畏的。本书的意义在,将带你从零开始学习编程的和C#语言的基本知识,并同时在Unity中构建一个有趣且可玩的游戏原型。

本书读者对象

本书主要面向没有编程基础或C#语言经验的人群。然而,无论你是C#语言或其他编程语言的编程老手,还是编程初学者,只要想尝试在Unity中动手实践进行游戏开发,那么本书就正是你所需要的。

本书主要内容

第1章“了解开发环境”,介绍了Unity安装过程、Unity编辑器的主要功能、如何查阅C#和 Unity特定主题的文档。以及如何从Unity编辑器创建C#脚本,并初步了解如何使用Visual Studio,Visual Studio是进行所有的代码编辑工作的地方。

第2章“编程的基本构建块”,从列举编程的原子级概念开始,将变量、方法和类与日常生活中的事物联系起来。然后,介绍了简单的调试技巧、如何进行正确的格式设置和注释,以及Unity是如何将C#脚本转换为组件的。

第3章“深入了解变量、类型和方法”,在第2章的基础上进行更深入的讲解,内容包括C#的数据类型、命名规则、访问修饰符等其他编程基础内容。还介绍了如何更有效地编写方法、使用参数和返回类型。最后,对属于MonoBehaviour类的标准Unity方法进行了概述。

第4章“控制流和集合类型”,介绍了在代码中做决策的常用方法,包括if-else和switch语句。然后介绍了如何使用数组、列表和字典,并结合迭代语句来循环遍历集合类型。在本章的最后,介绍了条件循环语句和一个称为枚举的特殊C#数据类型。

第5章“使用类、结构体以及面向对象编程”,在本章首次接触如何构建和实例化类和结构体。还介绍创建构造函数、添加变量和方法的基本步骤,以及如何使用子类和继承的基础知识。最后,全面诠释了面向对象编程及其在C#中的应用。

第6章“亲手实践Unity”,标志着我们从C#语法进入游戏设计、关卡构建和Unity特色工具的世界。首先从了解游戏设计文档的基础知识开始,然后进行游戏关卡的几何布局,并添加光照和简单的粒子系统。

第7章“角色移动、摄像机以及碰撞”,讲解了使玩家对象移动和设置第三人称摄像机的不同方法,还介绍了如何通过Unity物理引擎获得更逼真的运动效果,如何使用碰撞体组件以及如何捕获场景中的交互。

第8章“游戏机制脚本编写”,介绍了游戏机制的概念以及如何有效地实现游戏机制。从添加简单的跳跃动作开始,然后创建射击机制,并基于前几章的代码添加处理道具收集的逻辑。

第9章“AI基础与敌人行为”,简要概述了游戏中的人工智能以及应用于Hero Born示例中的相关概念。涵盖的主题包括Unity中的地图导航、使用关卡几何结构和导航网格、智能代理,以及敌人自动移动等。

第10章“重睹类型、方法和类”,更深入地讲解了有关数据类型、中级的方法特性以及可用于更复杂类的附加行为。本章带领读者进一步了解C#语言的功能多样性和广度。

第11章“特殊集合类型和LINQ”,深入探讨了栈、队列和哈希集,以及它们分别适合的不同开发场景。此外,本章还探讨了如何使用LINQ(语言集成查询)对数据集合进行过滤、排序、变换等。

第12章“保存、加载与数据序列化”,着重介绍了如何处理游戏信息。话题涵盖了如何操作文件系统,以及如何创建、删除、更新文件等。此外还介绍了如何处理如XML、JSON、二进制数据等不同的数据类型,并在最后实践部分讨论如何将C#对象直接序列化为对应的数据格式。

第13章“探索泛型、委托以及更多”,详细介绍了C#语言的中级特性以及如何在实战中应用它们。从泛型编程的概述开始,逐步介绍了委托、事件和异常处理等概念。

第14章“旅程继续”,回顾了整本书中所学的主要主题,并提供了进一步学习C#和Unity的资源。这些资源包括在线阅读材料、认证信息和一些推荐的视频教程频道。

如何充分地利用好本书

为了能在即将到来的C#和Unity旅程中获得最大收益,你唯一需要的是保持好奇心和学习意愿。话虽如此,如果你希望巩固所学知识,那么完成所有的代码练习、“英雄的试炼”和“小测验”等部分是必须的。最后,在继续学习新知识之前,重温已学过的知识点或整个章节来刷新或巩固理解不失为一个好主意。毕竟,在不稳定的地基上建造房子是没有意义的。

此外,还需要在计算机上安装当前版本的Unity——建议使用2022或更新版本。所有代码示例均已在Unity 2022.1上进行了测试,它们应该可以在未来的版本中正常运行。

本书涉及的软件和硬件

Unity 2022.1 或更高版本

Visual Studio 2019 或更高版本

C# 8.0 或更高版本

在开始之前,请参考以下链接,检查计算机设置是否满足Unity的系统要求:https://docs.unity3d.com/2022.1/Documentation/Manual/system-requirements.html。

本书的代码库和彩图可扫描封底二维码下载。