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"(常规)中设置自动保存的时间间隔和相关选项。

保存的重要性

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

相关推荐
Sitarrrr42 分钟前
【Unity】ScriptableObject的应用和3D物体跟随鼠标移动:鼠标放置物体在场景中
3d·unity
极梦网络无忧44 分钟前
Unity中IK动画与布偶死亡动画切换的实现
unity·游戏引擎·lucene
逐·風9 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
_oP_i10 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl
代码盗圣14 小时前
GODOT 4 不用scons编译cpp扩展的方法
游戏引擎·godot
Leoysq19 小时前
【UGUI】实现点击注册按钮跳转游戏场景
游戏·unity·游戏引擎·ugui
PandaQue21 小时前
《潜行者2切尔诺贝利之心》游戏引擎介绍
游戏引擎
_oP_i1 天前
unity中 骨骼、纹理和材质关系
unity·游戏引擎·材质
Padid1 天前
Unity SRP学习笔记(二)
笔记·学习·unity·游戏引擎·图形渲染·着色器
Tp_jh1 天前
推荐一款非常好用的C/C++在线编译器
linux·c语言·c++·ide·单片机·unity·云原生