Unity(2022.3.38LTS) - 基础概念

目录

[一. 场景](#一. 场景)

[二. 游戏对象](#二. 游戏对象)

[三. 组件](#三. 组件)

[四. 标签](#四. 标签)

[五. 静态游戏对象](#五. 静态游戏对象)

[六. 保存](#六. 保存)


一. 场景

Unity 场景是游戏或应用开发中的一个重要概念。

Unity 场景的组成元素

它通常包含了各种游戏对象,比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。

作用

Unity 场景为开发者提供了一个可视化的空间,用于构建和组织游戏的环境、关卡和交互逻辑。例如,在一个冒险游戏中,一个场景可能是一个神秘的森林,其中有树木、石头、敌人、陷阱以及玩家角色的起始点。
创建和管理场景

开发者可以通过 Unity 的编辑器轻松创建新的场景,添加、删除和修改其中的对象。还能设置场景的起始状态、加载顺序等。比如,在一个多关卡的游戏中,可以按照关卡的顺序来管理和切换不同的场景。
场景的优化

由于场景中可能包含大量的元素,为了保证游戏的性能,需要进行优化。这包括减少多边形数量、合理使用纹理、控制灯光数量和复杂度等。例如,对于远处的物体,可以使用低精度的模型来节省资源。

二. 游戏对象

在 Unity 中,游戏对象(GameObject)是构成游戏场景的基本单元。

定义与作用

游戏对象可以被看作是各种组件的容器。它本身并不具备具体的功能,但通过添加不同的组件,如脚本、碰撞器、渲染器等,来赋予其特定的行为和外观。

常见类型

比如角色、道具、环境物体等都可以是游戏对象。例如,玩家控制的角色是一个游戏对象,它可能包含了动画组件、移动脚本、碰撞检测组件等。

创建与操作

可以在 Unity 编辑器中通过菜单或快捷键创建游戏对象,并对其进行移动、旋转、缩放等操作。

组件的添加与组合

通过为游戏对象添加不同的组件来实现丰富的功能。比如,为一个立方体游戏对象添加刚体组件,使其能受到物理效果的影响;添加音频源组件,使其能播放声音。

层次结构

游戏对象可以组织成层次结构,方便管理和控制。比如,一个车辆的游戏对象可以包含轮子、车身等子游戏对象。

实例化与复用

可以通过代码或编辑器操作实例化游戏对象,实现相同类型对象的多次使用,提高开发效率。

游戏对象的销毁

当不再需要某个游戏对象时,可以通过代码将其销毁,释放相关资源。

三. 组件

在 Unity 中,组件(Component)是赋予游戏对象功能和特性的关键元素。

常见的组件类型

  1. Transform 组件:用于控制游戏对象的位置、旋转和缩放。
    • 例如,调整一个立方体的位置,使其处于场景的特定坐标。
  2. Renderer 组件:决定游戏对象的外观显示,如网格渲染器(Mesh Renderer)、精灵渲染器(Sprite Renderer)等。
    • 比如,为一个平面添加网格渲染器并指定材质,使其呈现出特定的颜色和纹理。
  3. Collider 组件:用于碰撞检测,如盒型碰撞器(Box Collider)、球形碰撞器(Sphere Collider)等。
    • 当两个带有碰撞器的游戏对象相互接触时,会触发相应的碰撞事件。
  4. Rigidbody 组件:使游戏对象受到物理模拟的影响,如重力、力的作用等。
    • 给一个球体添加刚体组件,它会在重力作用下下落并与其他物体碰撞。
  5. Script 组件:通过编写脚本实现自定义的逻辑和行为。
    • 例如,编写一个控制角色移动的脚本组件。

组件的作用

组件让游戏对象能够实现各种功能,并且可以灵活地组合和搭配,以创建出复杂多样的游戏效果。

组件的添加和移除

在 Unity 编辑器中,可以通过右键菜单或 Inspector 面板为游戏对象添加或移除组件。

组件之间的通信

通过脚本可以在不同的组件之间传递数据和消息,实现协同工作。

自定义组件

开发者还可以根据项目需求创建自己的自定义组件,以满足特定的功能要求。

四. 标签

在 Unity 中,标签(Tag)是用于标识和分类游戏对象的一种方式。

作用

  1. 方便选择和分组:通过标签,可以快速选择具有相同标签的一组游戏对象进行操作。例如,在脚本中可以通过标签找到特定的游戏对象。
  2. 区分不同类型:用于区分不同类型的对象,以便在逻辑处理中进行不同的操作。
  3. 提高代码可读性:使代码更清晰易懂,明确对象的类别。

设置标签

在 Unity 编辑器中,可以在 Inspector 面板中为游戏对象设置标签。

使用标签的示例

假设在一个射击游戏中,有"玩家"、"敌人"和"障碍物"等标签。在编写射击逻辑的脚本时,可以通过判断游戏对象的标签来确定是否是敌人,从而执行相应的射击操作。

另外,如果要实现特定对象的碰撞处理,也可以根据标签来决定碰撞后的行为。比如,当"玩家"与"障碍物"碰撞时,玩家无法通过;而当"玩家"与"道具"碰撞时,获取相应的奖励。

五. 静态游戏对象

在 Unity 中,静态游戏对象(Static GameObject)具有一些特殊的属性和用途。

定义和特点

静态游戏对象是指在游戏运行过程中不会移动、旋转或改变其形态的对象。它们被标记为"静态"后,Unity 会对其进行一些特殊的优化处理。

优化方面

  1. 光照烘焙:静态对象在光照计算中可以进行烘焙,提高光照效果的性能。
  2. 物理计算优化:减少物理引擎对其的计算量,提高物理模拟的效率。

应用场景

  1. 环境建筑:如房屋、山脉等不会移动的大型物体。
  2. 固定的道具:像桌子、椅子等不会被移动的物品。

设置为静态的影响

一旦将游戏对象设置为静态,之后对其进行的一些动态修改可能会受到限制。

例如,在一个大型的开放世界游戏中,城市中的建筑物通常会被设置为静态对象,以便在光照和物理计算时进行优化,从而提高游戏的性能,使玩家能够更流畅地体验游戏。

六. 保存

在 Unity 中,保存项目和场景是非常重要的操作。

保存场景

可以通过以下几种方式保存当前正在编辑的场景:

  1. 菜单栏:点击"File"(文件)->"Save Scene"(保存场景)或者"Save Scene As..."(另存为场景)。
  2. 快捷键:通常使用 Ctrl + S(Windows)或 Command + S(Mac)来快速保存场景。

保存项目

  1. 同样在"File"(文件)菜单中,选择"Save Project"(保存项目)来保存整个项目的设置、资源等。

自动保存

Unity 也提供了自动保存的功能,可以在"Edit"(编辑)->"Preferences"(首选项)->"General"(常规)中设置自动保存的时间间隔和相关选项。

保存的重要性

及时保存可以避免因意外情况(如电脑故障、软件崩溃等)导致的工作丢失。

相关推荐
躺下睡觉~6 小时前
Unity-Transform类-父子关系
java·unity·游戏引擎
躺下睡觉~7 小时前
Unity-Transform类-缩放和看向
unity·游戏引擎
君莫愁。9 小时前
【Unity】检测鼠标点击位置是否有2D对象
unity·c#·游戏引擎
咩咩觉主10 小时前
Unity实战案例全解析:PVZ 植物卡片状态分析
unity·c#·游戏引擎
蓝裕安13 小时前
伪工厂模式制造敌人
开发语言·unity·游戏引擎
谢泽浩17 小时前
Unity 给模型贴上照片
unity·游戏引擎
z2014z17 小时前
Unity Resource System 优化笔记
unity·游戏引擎
王维志17 小时前
Unity 高亮插件HighlightPlus介绍
unity·游戏引擎
zaizai100718 小时前
我的demo保卫萝卜中的技术要点
unity
菌菌巧乐兹19 小时前
Unity 百度AI实现无绿幕拍照抠像功能(详解版)
人工智能·百度·unity