【Unity】游戏开发入门介绍

认识Unity

Unity介绍

Unity是一款跨平台的游戏开发引擎,由Unity Technologies开发。它最初于2005年推出,并迅速成为游戏开发领域的主要引擎之一。Unity允许开发者在一次编写,多平台发布,支持Windows、Mac、Linux、iOS、Android等多个平台。

Unity是游戏行业最受欢迎的引擎之一,拥有庞大的用户基础和广泛的市场份额。根据统计数据,截至2021年,超过60%的移动游戏、30%的PC和控制台游戏都是使用Unity引擎开发的。这个数字在未来可能会继续增长,因为Unity不断更新和改进其技术,并适应不断变化的游戏市场。

在中国,Unity也具有广泛的影响力。许多中国的游戏开发者和公司使用Unity引擎进行游戏开发,这些游戏不仅在国内受欢迎,还在全球范围内拥有庞大的用户群。同时,中国也是Unity的一个重要市场,Unity Technologies在中国设有分支机构,并且积极与当地开发者社区合作。

Unity特点

用户友好的界面:Unity提供了直观且易于使用的用户界面,使开发者能够快速上手并开始创作内容。编辑器提供了丰富的工具和功能,包括场景编辑、动画编辑、材质编辑、粒子系统等,使开发过程更加高效和便捷。

脚本编程:Unity允许开发者使用C#和JavaScript(UnityScript)等多种编程语言来编写游戏逻辑和交互行为。这为开发者提供了灵活性和自由度,可以根据自己的喜好和需求选择合适的编程语言。

资源商店:Unity Asset Store是Unity的官方资源商店,开发者可以在其中购买和出售3D模型、纹理、音频、插件和脚本等资源。这为开发者提供了方便,可以节省时间和资源,同时也促进了社区的交流与合作。

跨平台支持:Unity是一款跨平台的游戏引擎,支持多个平台,包括PC、主机游戏机、移动设备、虚拟现实(VR)、增强现实(AR)以及Web等。这使得开发者可以将游戏和应用轻松发布到不同的平台,覆盖更广泛的受众。

虚拟现实和增强现实支持:Unity对虚拟现实(VR)和增强现实(AR)有着很好的支持。开发者可以借助Unity构建各种虚拟现实和增强现实应用,提供沉浸式的体验和将虚拟内容与现实世界相结合的功能。

Unity案例

纪念碑谷(Monument Valley):这是一款备受赞誉的2D解谜游戏,以其华丽的艺术风格和独特的游戏机制而闻名。

炉石传说(Hearthstone):由暴雪娱乐开发的一款流行的在线卡牌游戏,该游戏在Unity引擎下构建。

精灵宝可梦(Pokémon GO):由Niantic开发的增强现实游戏,让玩家可以在现实世界中捕捉虚拟的口袋妖怪。

奥里与迷失森林(Ori and the Blind Forest):一款美丽的2D冒险游戏,融合了精美的艺术风格和令人难忘的故事。

空洞骑士(Hollow Knight):这是一款受欢迎的探险平台游戏,以其美丽的2D艺术风格和深度的游戏内容而受到称赞。

森林(The Forest):这是一款恐怖生存游戏,玩家需要在荒野中生存并与敌对部落对抗。

深海迷航(Subnautica):这是一款水下生存冒险游戏,玩家在异星世界的水下探索和建造基地。

城市:天际线(Cities: Skylines):这是一款城市建造模拟游戏,允许玩家创建自己的城市,并管理城市的发展和资源。

只狼:影逝二度(Sekiro: Shadows Die Twice):这是一款由FromSoftware开发的动作冒险游戏,以其挑战性的战斗和丰富的关卡设计而闻名。

Unity安装

前往Unity官网安装Unity Hub,通过Unity Hub安装Unity LTS(长期支持版)版本,路径不能有中文。

Unity Hub介绍

Unity Hub是Unity Technologies推出的一款管理Unity引擎和项目的桌面应用程序。它是Unity引擎的一个重要组件,旨在提供更方便、更灵活的方式来安装、管理和切换不同版本的Unity引擎和项目。

编辑器介绍

image-20230723202651251

从Unity 2019.3版本开始,Unity在创建项目时默认启用了版本控制系统(Version Control System)。这意味着在创建新项目时,Unity会自动为项目启用版本控制,而不需要手动勾选版本管理选项。启用版本控制系统可以帮助开发团队更好地协作,跟踪和管理项目的变更,以及还原到以前的版本。

认识界面

image-20230723203557135

场景面板(Scene):场景面板是Unity中用于编辑游戏场景的主要窗口。在场景面板中,开发者可以将游戏对象(如角色、场景元素等)放置到场景中,并对其进行位置、旋转和缩放等操作。

游戏面板(Game):游戏面板用于预览游戏的运行效果。当开发者在场景视图中进行编辑时,游戏视图会实时更新,显示当前场景的实际运行效果。

检视面板(Inspector):检视面板显示了当前选中游戏对象的属性和组件。开发者可以在检视面板中修改游戏对象的属性,也可以添加、删除和调整游戏对象的组件。

项目面板(Project):项目面板显示了项目中的所有资源文件,包括场景文件、脚本、纹理、音频等。开发者可以在项目视图中管理资源文件,导入、创建和组织资源。

层次面板(Hierarchy):层次面板显示了场景中所有游戏对象的层次结构。开发者可以在层次面板中查看和管理游戏对象的层级关系,例如将对象组织成父子关系。

控制台面板(Console):控制台面板显示了Unity编辑器中的日志、警告和错误信息。开发者可以在控制台面板中查看项目运行时产生的信息,帮助调试和解决问题。

资源文件夹(Assets):资源文件夹显示了项目中的资源文件夹结构。开发者可以在资源文件夹中创建、导入和管理资源文件夹。

坐标系

在Unity中,使用的是左手坐标系。

在左手坐标系中,三维空间中的坐标轴排列如下:

  • X轴指向右方
  • Y轴指向上方
  • Z轴指向前方(屏幕方向)

基本操作

image-20230726154030487

  • 拖动场景 快捷键:鼠标中键、Q
  • 移动对象 快捷键:W
  • 旋转对象 快捷键:E
  • 缩放对象 快捷键:R、T
  • 缩放场景 快捷键:鼠标滚轮、Alt+鼠标右键
  • 旋转场景 快捷键:鼠标右键、Alt+鼠标左键
  • 移动视角 快捷键:鼠标右键+WASD
  • 聚焦对象 快捷键:层级面板双击对象、单击对象+F(场景中)
  • 隐藏对象 快捷键:H
  • 切换中心点 快捷键:Z
  • 切换坐标系 快捷键:X
  • 复制对象 快捷键:单击对象Ctrl+C+V、Ctrl+D
  • 删除对象 快捷键:Delete
  • 撤销操作 快捷键:Ctrl+Z
  • 保存场景 快捷键:Ctrl+S

父子物体关系

image-20230726155953733

一个游戏对象只能有一个父物体,一个游戏对象可以有无数个子物体。

  • 创建父子关系

    要创建父子关系,只需将一个游戏对象拖放到另一个游戏对象上,或者通过代码使用Transform.SetParent()方法来指定父对象。

  • 相对位置

    子物体的位置是相对于其父物体的局部坐标系而言的。例如,如果子物体的局部坐标是(1, 0, 0),那么它将在其父物体的右边一单位的位置。

  • 相对旋转和缩放

    类似于位置,子物体的旋转和缩放也是相对于其父物体的局部坐标系。这意味着对父对象进行旋转或缩放操作会影响到其所有子对象。

  • 层级关系

    父子关系可以形成一个层级结构,允许你创建复杂的对象组合。一个对象可以是另一个对象的父对象,同时也可以是其他对象的子对象,从而形成一个树状结构。

  • 局部坐标与世界坐标

    在Transform组件中,你可以访问局部坐标和世界坐标。局部坐标是相对于父对象的坐标,而世界坐标是相对于场景的全局坐标。

  • 运动继承

    当一个父对象移动时,其所有子对象也会跟随移动。这种继承关系可以极大地简化对象之间的关联运动。

面向组件

image-20230726155811007

在Unity中,"面向组件"是一种软件设计模式,它是Unity引擎的核心思想之一,也是Unity游戏开发的基础。面向组件的设计允许开发者通过将功能模块化为单独的组件来构建游戏对象,然后将这些组件附加到游戏对象上,从而赋予游戏对象所需的功能。

组件是Unity中最小的功能模块。它们是脚本类(MonoBehaviour)的一种扩展,可以添加到游戏对象上。

每个组件代表着游戏对象的一个特定功能,例如渲染、碰撞、移动、音频等。

不同的组件可以在同一个游戏对象上同时存在,从而让游戏对象具备多个功能。

材质Material

在Unity中,材质(Material)是用来渲染游戏对象的外观的重要组件。材质定义了游戏对象在渲染时的颜色、纹理、光照属性等。使用材质可以让游戏对象在场景中显示出丰富的视觉效果。

在Unity中,可以通过在Project视图中右键点击->Create->Material来创建新的材质。
可以给材质起一个有意义的名称,并在Inspector视图中设置其属性。

预设体Prefab

在Unity中,预设体(Prefab)是一种重要的资源类型,它允许开发者将游戏对象及其组件、属性和子对象一起保存为一个可重复使用的模板。预设体在Unity中的作用类似于“蓝图”或“模板”,能够大大提高游戏对象的创建和管理效率。

要创建预设体,首先需要在Hierarchy视图中选择一个游戏对象,然后将其拖动到Project视图中。这将在Project视图中创建一个预设体资源,该资源将保存了选定游戏对象的所有信息。

创建预设体后,你可以在场景中或其他场景中的Hierarchy视图中,直接将预设体拖动到场景中。这将在场景中创建一个与预设体相同的游戏对象实例。

游戏脚本

image-20230726161018980

在Unity中,游戏脚本是用于实现游戏逻辑和功能的关键部分。游戏脚本是由C#或Unity自定义的JavaScript(现已弃用)编写的脚本文件,它们可以附加到游戏对象上,以控制游戏对象的行为、交互和动画等。

  • 游戏逻辑与交互

    游戏脚本用于实现游戏中的逻辑和交互,例如角色移动、敌人行为、玩家输入、碰撞检测、游戏规则等等。

  • 与Unity组件交互

    游戏脚本可以与游戏对象的组件进行交互,例如修改Transform组件以实现移动、访问Rigidbody组件来控制物理属性等。

  • 事件处理

    游戏脚本可以处理Unity引擎中的事件,例如按键输入、触发器碰撞、场景加载等,以实现相应的游戏逻辑。

  • 资源管理

    游戏脚本还可以用于加载、实例化和管理游戏资源,如模型、材质、纹理、声音等。

  • 动画控制

    游戏脚本可以通过操作Animator组件来控制游戏对象的动画,从而实现角色动作和过渡效果。
    组件来控制物理属性等。

  • 事件处理

    游戏脚本可以处理Unity引擎中的事件,例如按键输入、触发器碰撞、场景加载等,以实现相应的游戏逻辑。

  • 资源管理

    游戏脚本还可以用于加载、实例化和管理游戏资源,如模型、材质、纹理、声音等。

  • 动画控制

    游戏脚本可以通过操作Animator组件来控制游戏对象的动画,从而实现角色动作和过渡效果。

猜你喜欢

转载自blog.csdn.net/m0_51942776/article/details/131942950