Unity入门项目——汽车控制器设计


Unity入门项目——汽车控制器设计

1、Unity简介

Unity是一个广泛使用的游戏开发引擎,由Unity Technologies开发,用于创建2D和3D游戏以及交互式内容。Unity的关键特点包括:

  1. 跨平台支持:Unity允许开发者一次开发,多平台发布。支持的平台包括Windows、macOS、Linux、iOS、Android、WebGL、各种游戏主机以及VR/AR设备。
  2. 易用的编辑器:Unity提供了一个直观的用户界面,使得游戏开发更加高效和易于上手。它包括场景设计工具、资产管理工具和强大的脚本编辑功能。
  3. 强大的脚本能力:Unity使用C#作为其主要脚本语言,允许开发者轻松实现复杂的游戏逻辑和界面。
  4. 丰富的资源库:Unity Asset Store提供了大量资源,包括模型、纹理、音效、脚本和教程,帮助开发者加速游戏开发过程。
  5. 物理和光照系统:Unity拥有先进的物理引擎和光照系统,可以创造逼真的游戏环境和动态效果。
  6. 社区和支持:Unity拥有庞大的开发者社区,提供丰富的教程、论坛讨论和支持服务,帮助开发者解决遇到的问题。

Unity广泛应用于游戏开发,同时也被用于建筑可视化、仿真训练和其他交互式媒体领域。由于其强大的功能和灵活性,Unity成为了初学者和专业开发者都非常青睐的工具。

2、其他游戏引擎

除了Unity,一些知名的Unity替代品:

  1. Unreal Engine:由Epic Games开发,是Unity的主要竞争对手。它以其高质量的图形和视觉效果著称,非常适合制作AAA级游戏。Unreal Engine使用C++和蓝图可视脚本系统。
  2. Godot Engine:一个开源的游戏引擎,以其轻量级和易用性著称。Godot支持2D和3D游戏开发,并使用自己的脚本语言GDScript,同时也支持C#和C++。
    值得注意的是,Godot的安装包非常小(仅有50M),而且不需要额外的许可费用。
  3. Cocos:一款面向移动端游戏开发的开源游戏引擎,支持多平台,提供丰富的功能和工具,适合开发2D和3D游戏。Cocos支持Lua、JavaScript和C++等多种脚本语言。
    这个软件有点貌似假开源,并且有一些商业化的操作,商业化的数字人、自动驾驶平台开发服务看起来很不错。
  4. GameMaker Studio:特别适合2D游戏开发,以其简单的拖放界面和自己的脚本语言GML(GameMaker Language)受到独立游戏开发者的喜爱。
  5. CryEngine:以其先进的图形和物理效果而闻名,是一个强大的游戏开发工具,适用于制作高端游戏。它使用C++和Lua脚本语言。
  6. RPG Maker:专门用于制作角色扮演游戏(RPG)。它提供了一套易于使用的工具和资源,使得非程序员也能创建游戏。
  7. Construct:一个适合初学者的HTML5游戏创建工具,以其直观的可视编辑界面和不需要编程知识的特性而受欢迎。
  8. Amazon Lumberyard:一个免费的AAA游戏引擎,由亚马逊开发。它基于CryEngine,但加入了对AWS(亚马逊云服务)和Twitch的集成支持。

3、Unity安装

Unity提供了免费的个人版,可以在Unity官网下载安装。Unity支持Windows和macOS操作系统。

4、Unity建模流程

4.1、项目结构

Unity项目常见的组织结构如图下:

  1. Assets:这是Unity项目中最重要的文件夹。它包含了所有的游戏资源,如场景(Scenes)、脚本(Scripts)、3D模型、纹理、音频文件等。通常,这个文件夹会进一步细分为子文件夹,以便更好地组织资源。

    1. Scenes:场景文件夹通常位于Assets文件夹内。一个场景可以视为游戏中的一个级别或环境。在Unity中,你可以同时拥有多个场景文件,分别代表游戏的不同部分。
    2. Scripts:这个文件夹存放游戏的脚本,通常是C# (.cs) 文件。脚本用于定义游戏的逻辑和行为。
    3. Materials, Textures, and Models:这些文件夹分别用于存储材质(Materials)、纹理(Textures)和3D模型(Models)。它们是游戏视觉设计的关键部分。
    4. Animations:动画文件夹用于存储角色或对象的动画。
    5. Audio:用于存放游戏的音频文件,如背景音乐和音效。
    6. Plugins:插件文件夹用于存放Unity项目可能依赖的第三方库和插件。
  2. Prefabs:预制件(Prefabs)是可以在多个场景中重复使用的游戏对象。它们可以包括一组组件,如网格、碰撞体、脚本等。

  3. ProjectSettings:这个文件夹包含了Unity项目的设置文件,如图形设置、输入设置、音频设置等。这些设置会影响整个项目。

  4. Library:这个文件夹是Unity自动生成的,用于存储项目的元数据和缓存。通常不需要直接修改这个文件夹中的内容。

  5. Build:虽然不是默认生成的文件夹,但通常会创建一个用于存放项目的编译版本。

4.2、界面介绍

Unity的界面如下:

  1. Scene View(场景视图):

    • 这是你的3D场景的主视图,在这里可以放置和操作游戏对象。
    • 提供了一系列工具来移动、旋转和缩放对象。
    • 可以切换不同的视角,如正视图、俯视图等。
  2. Game View(游戏视图):

    • 显示的是从摄像机角度看到的游戏实际运行时的样子。
    • 可以用来测试和预览游戏。
  3. Hierarchy(层级):

    • 列出了当前场景中所有的游戏对象。
    • 可以用来选择、查找和组织对象。
  4. Inspector(检视器):

    • 显示并允许编辑选中对象的属性和附加组件。
    • 可以用来调整对象的变换属性(位置、旋转、缩放),以及编辑脚本、材质等。
  5. Project(项目):

    • 显示项目中的所有文件和资源。
    • 这里可以组织和管理你的脚本、3D模型、音频文件等资源。
  6. Toolbar(工具栏):

    • 位于界面顶部,提供了一系列快捷工具,如播放、暂停和前进游戏。
    • 包括用于场景编辑的变换工具(移动、旋转、缩放)。
  7. Console(控制台):

    • 显示游戏运行时的日志信息、警告和错误信息。
    • 对于调试游戏非常有用。

4.3、插入预制件(Prefabs)

免费车辆模型可以从ARCADE: FREE Racing Car | 3D 汽车 | Unity Asset Store下载,然后导入到Unity中,在Assets\ARCADE - FREE Racing Car\Prefabs (Meshes Only)中选中车辆,拖进层级(Hierarchy)窗口中,右键对预制件(Prefabs)完全解压缩。

然后就可以对车辆模型进行自定义编辑。

4.4、添加组件

在检查器中为Car添加RigidbodyBox Collider等组件,并且在inspector设置合适的属性参数。

4.4、添加控制器

Assets路径下新建Scripts文件夹,在其中新建CarController的C#脚本,在VS中编写控制器代码。

4.5、添加摄像头

GameObject中通过align with view将摄像头对齐到当前场景中的界面。

为了在汽车运动过程中更好的观测车辆运动,我们可以通过添加脚本使得摄像头跟随车辆。

4.6、添加跑道和障碍物

可以通过添加贴图,使场景更为逼真。
或者通过Blender进行建模,然后倒入Unity。

5、参考资料

  • 有UP将视频搬运到了Bilibili:

文章作者: BITBCI
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BITBCI !
  目录