unity安装

  1. unity hub下载,注册,授权
  2. 对应untiy编辑器归档网站下载地址:Unity Download Archive
  3. 下载vs地址:VS2022 Community

unity窗口界面


![[unity6-study-notes-1-windows.png]]

  1. high definition 3d hdrp
  2. layout->tail布局->project窗口设置one column layout
  • Project窗口 - 工程窗口 - 展示工程中有哪些文件
  • Scene窗口 - 场景窗口 - 当前打开的场景的样子
  • Game窗口 - 游戏窗口 - 当前场景-游戏运行起来的样子
  • Hierarchy窗口 - 层级窗口 - 展示当前场景中有哪些物体的列表
  • Inspector窗口 - 属性窗口 - 展示游戏物体的详细信息-(组件列表)
  • Console窗口 - 控制台窗口 - 错误、日志输出

Project(工程窗口)


![[unity6-study-notes-1-project.png]]

  1. Assets 工程资源(场景、模型、代码、各种文件)
  2. Packages 扩展的工具包和插件

学习点

  1. 文件夹创建
  2. 窗口放大缩小(two column layout布局下)
  3. 文件资源搜索

    ![[unity6-study-notes-1-project-search.png]]
  4. .meta文件
    • 保存项目中每个文件的元数据(脚本、材质、模型、纹理)
    • 每个文件会生成一个唯一的guid
  5. 单列和双列视图

Scene(场景窗口)


![[unity6-study-notes-1-scene-0.png]]

编辑游戏世界的可视化编辑窗口,游戏项目是由多个场景组成,每个场景包含一定的游戏内容。
可在Scene里摆放、移动、旋转、缩放场景物体(GameObject)。
可以自由切换观察视角,不是玩家最终看到的画面。
和Hierarchy窗口联动:在Scene点选物体,Hierarchy会同步选中;反之亦然。

学习:

  1. 场景的创建
  2. 场景的切换
  3. 场景的重命名和删除
  4. 场景的修改和保存

场景视野操作

辅助工具
1.  坐标轴-Orientation

![[unity6-study-notes-1-scene-1.png]]
2.  辅助网格线

![[unity6-study-notes-1-scene-2.png]]
3.  天空盒子-SkyBox

![[unity6-study-notes-1-scene-3.png]]

视野分类
1.  平行视野Iso(正交视野)
- 等比例大小
2.  透视视野Persp
- 3D实际视野,近大远小

视野操作

  1. 滑轮滚动:拉近拉远
  2. 视野的旋转
    1. 鼠标右键按住不松同时拖动
    2. 按住alt键+鼠标左键同时拖动(围绕焦点来进行选择(例如Hierarchy中选中某个物体后,在Scene场景里会围绕这个物体旋转))
  3. 平移视野:按住鼠标中间(滑轮)来拖动平移
  4. 视野漫游
    1. 按住鼠标右键+wasd(前后左右)qe(上下)

Hierarchy(层级窗口)


![[unity6-study-notes-1-hierarchy-1.png]]

发音:海-rua-ki
列出当前Scene(场景)里面全部的GameObject(游戏对象),用来组织场景结构,管理父子对象(Parent/Child)

新建Unity项目默认自带2个对象:Main Camera 主相机、Directional Light 平行光

Hierarchy里的GameObject(游戏物体)操作

列表:
1.  功能性的物体
2.  模型物体

学习:

  1. 游戏物体的创建(右键)、聚焦
    • 点击物体在按F键聚焦
    • 双击物体聚焦
  2. 游戏物体的删除
  3. 游戏物体的重命名
  4. 游戏物体的修改
    • 组件的增加、删除、修改和重置
  5. 游戏物体的移动
    • 聚焦物体后,在Scene窗口里拖动x,y,z轴来移动物体
  6. 游戏物体的复制
    • Ctrl+D
  7. 游戏物体的父子关系
  8. 游戏物体的多选
    • 场景中选择
    • 层级面板中选择
      • 按住Ctrl键,在鼠标左键依次单选多个物体
      • 按住Shift键,选择开头和结尾两个物体,自动覆盖中间所有选中
  9. 游戏物体的禁用和激活

Inspector(属性窗口)

展示游戏物体的详细信息(组件列表)
发音:因‑斯佩克特er

![[unity6-study-notes-1-inspector-1.png]]

组件Component

发音:肯破们特

  1. 组件的删除、添加、修改、禁用和启用
  2. Transform组件
    • ![[unity6-study-notes-1-component-transform.png]]
    • Position(位置),Rotation(旋转),Scale(比例缩放)的修改和重置
    • QWER工具
    • 修改的三种方式:
      • 场景中拖动
      • 组件中拖动
      • 直接修改
  3. QWER工具![[unity6-study-notes-1-component-qwer.png]]
    • Q 视图工具(View Tool)
      • 鼠标左键平移视图=按住鼠标中间
    • W 移动工具(Move Tool)
      • 单个坐标轴移动
      • 围绕某个平面移动
    • E 旋转工具(Rotate Tool)
    • R 缩放工具(Scale Tool)
  4. Ctrl(步移)+W/R/T
    • 步移=步进捕捉(Snap):按住Ctrl拖动物体,不再顺滑连续移动,而是一格一格按固定增量跳动,精准对齐,不会拖歪。
    • 先按W/R/T切换工具,按住Ctrl再拖动
      • W Move移动工具
        • 普通:自由拖动物体,连续滑动。
        • 按住Ctrl拖动 → 步进移动(Snap),每次移动固定距离,用来对齐网格、对齐其他物体。
      • R Scale缩放工具
        • 普通:顺滑放大缩小
        • 按住Ctrl拖动 → 步进缩放,按固定比例增量缩放。
      • T RectTransform矩形变换工具(UI/2D精灵专用)
        • 普通:自由拉伸、移动 UI
        • 按住Ctrl拖动 → UI步进捕捉,UI元素按固定像素增量移动/缩放。
      • E 旋转工具
        • 普通:旋转操作
        • 按住Ctrl拖动,步进旋转,每次固定角度旋转(默认15°一格)
    • ![[unity6-study-notes-1-component-buyi.png]]
      • 可以在Snapping里设置步进最小值
  5. Unity(Transform组件)中的单位
    • Position:米
    • Rotation:度
    • Scale:倍
  6. 父子关系下的游戏物体变换
  7. V顶点对齐工具(v键)

坐标轴&坐标系

Pivot/Center(变换参考点切换)

发音:皮沃特

  • Pivot枢轴点:模型自带的原点,是物体自身坐标计算基准点。旋转、缩放以此点作为中心。
  • Center中心点:Unity自动算出物体包围盒几何中心,不是模型原始原点。

作用:W/E/R变换时,决定以哪个点来旋转/缩放物体。

Local/Global(本地/世界坐标轴,工具栏切换)

本地坐标系 Local

以物体自身作为原点,坐标轴跟随物体一起旋转、倾斜。 坐标轴方向跟着物体走,适合物体自身朝向调整。

世界坐标系 Global

世界原点固定不变,坐标轴方向永远固定(不随物体转动)。整个场景共用一套固定方向。

一个GameObject拥有两套坐标:

  • 世界坐标World Position:物体在整个场景世界里的位置。物体实际空间位置不变,世界坐标就不变。
  • 本地坐标Local Position:相对于父物体的坐标。只有存在父物体时才有意义;没有父物体,本地坐标 = 世界坐标。

Unity坐标轴方向(右手坐标系)

  • X轴:左右 → X + 向右,X - 向左
  • Y轴:上下 → Y + 向上,Y - 向下
  • Z轴:前后 → Z + 向前,Z - 向后

注意:Unity 里Z轴是前后,不是Y。

名词 含义
Pivot 模型原始枢轴点,模型制作者定义的原点
Center 包围盒几何中心,Unity 自动计算
Local(本地) 坐标轴跟着物体旋转,相对父物体
Global(世界) 坐标轴固定不变,场景全局
X 左右
Y 上下
Z 前后

材质(Material)

发音:么-提瑞欧

Material-材质(资源文件后缀.mat)

网格(Mesh)决定物体长什么形状;
材质(Material)决定物体表面长什么样(颜色、贴图、反光、透明度)

  • Shader(着色器):GPU运行的渲染算法/公式,规定怎么算像素颜色
  • Material(材质):实例,绑定一个Shader,填入参数(固有色Albedo、贴图、金属度、粗糙度等)

一句话:Shader是模板,Material是填好参数的实例。多个材质可以共用同一个Shader。

使用方式

  1. Project窗口右键→Create→Material创建材质
  2. 在材质Inspector面板,选择Shader,调整颜色、贴图
  3. 把材质拖到物体上,或者赋值给物体的MeshRenderer组件的Materials列表

同一个材质资源给多个物体共用:修改材质,所有物体一起变。 如果想单独改其中一个物体外观,需要创建材质实例(复制一份新材质)。

相关概念:

  • Texture:贴图(图片,贴在材质表面)
  • Mesh:网格(模型形状)
  • MeshRenderer(麦什-润德儿):网格渲染组件,挂载材质

模型的分类和格式

内置的基本几何体模型

  1. Cube立方体
  2. Sphere球体
  3. Capsule胶囊体
  4. Cylinder圆柱体
  5. Plane平面(单面、节约渲染性能)
  6. Quad面片

外部模型

常用的建模软件:

  • maya 3dmax blender(相对常用)
  • cinema4d zbrush

常见的模型格式:

  • .fbx格式
  • .obj静态模型
  • .ma(maya)
  • .max .3ds 3dmax导出的格式
  • .blend(Blender导出的格式)

UnityAssetsStore上的资源
.unitypackage格式(压缩包,类似zip格式)

  • 导出
  • 导入

    ![[unity6-study-notes-1-package1.png]]![[unity6-study-notes-1-package2.png]]

关于模型渲染

Mesh(网格):存储模型几何数据的资源,由顶点(vertices)、三角面(triangles)、法线、UV等构成,决定物体的外形轮廓。
配套组件(一对搭档)

  1. MeshFilter作用:把Mesh资源挂载到游戏物体上,读取网格形状数据。
  2. MeshRenderer作用:拿到MeshFilter的网格,搭配Material材质,交给显卡渲染,让模型看得见。

MeshFilter 负责“拿形状”,MeshRenderer负责“画出来”。两者缺一不可。

Texture:贴图/纹理,就是一张图片资源,贴在模型Mesh表面。材质Material里面的Albedo(固有色贴图)、法线贴图都属于Texture。

常见类型

  1. jpg
  2. png
  3. psd
  4. tga
  • Albedo Texture:固有色贴图,物体基础颜色图案
  • Normal Texture:法线贴图,模拟凹凸细节,不改变模型网格形状
  • Metallic Texture:金属度贴图,控制表面金属反光强弱
  • Roughness Texture:粗糙度贴图,控制表面光滑 / 磨砂

简单理解:Mesh是模型骨架,Texture是印在上面的图案画纸,Material是把贴图打包设置好的配方。

一个模型的渲染流程部分:

  1. 基本组成:Mesh网格、Texture贴图
  2. Unity里面的东西:Shader渲染器、Material材质
  3. 组件:MeshFilter、MeshRenderer

Unity中资源类型

3D模型文件

  • .fbx - 推荐的标准3D交换格式
  • .obj - 简单静态模型格式
  • .blend - Blender原生格式(需安装Blender)

贴图文件

  • .png - 支持透明通道的常用格式
  • .jpg - 高压缩比但无透明通道
  • .tga - 无损格式,支持透明通道
  • .psd - Photoshop文件,保留图层信息
  • .hdr - 高动态范围图像(环境光照)

音频文件

  • .wav - 无损音频,适合短音效
  • .mp3 - 有损压缩,适合背景音乐
  • .ogg - 开源压缩格式,游戏常用

视频文件

  • .mp4 - 最常用的视频格式
  • .webm - 开源视频格式,小体积

项目资源文件

  • .prefab - Unity预制件
  • .unity - Unity场景文件
  • .mat - 材质文件
  • .anim - 动画片段
  • .controller - 动画控制器

脚本文件

  • .cs - C#脚本文件
  • .dll - 编译后的.NET库

2D游戏资源

  • .sprite - Unity精灵
  • .spriteatlas - 精灵图集

着色器文件

  • .shader - 自定义着色器
  • .shadergraph - 可视化着色器图

文本数据

  • .json - 结构化数据
  • .xml - 扩展标记语言
  • .csv - 表格数据

物理资源

  • .physicMaterial - 3D物理材质
  • .physicsMaterial2D - 2D物理材质

Prefab

Prefab:预制体,Project面板里保存的游戏物体模板(资源)。 可以把Hierarchy里做好的GameObject(带组件、子物体、参数)拖进Project窗口,生成Prefab。

核心特点

  1. 复用:做好一个物体(比如敌人、子弹、家具),直接反复拖到场景,不用重复搭建。
  2. 关联:场景里放出来的叫Prefab 实例。修改原始Prefab模板,所有场景里的实例同步更新。
  3. 覆盖:实例上单独修改的参数,不会被模板覆盖;也可以把实例改动应用回Prefab。

常用3个按钮(Inspector 面板)

  • Open:打开预制体单独编辑
  • Apply:把实例上的修改,同步更新到原始Prefab
  • Revert:丢弃实例上的改动,恢复和原始Prefab一致

一句话理解:Prefab就是保存好的“物体模板”,方便批量复用和统一管理。

区分

  • Prefab(Project):模板资源
  • Prefab Instance(Hierarchy):场景里生成出来的实例

Rigidbody


![[unity6-study-notes-1-rigidbody.png]]
Rigidbody是Unity物理系统核心组件,给GameObject加上Rigidbody,物体就会受物理引擎控制:重力、碰撞、阻力、速度都由物理引擎计算。

不加 Rigidbody:物体只是静态模型,不会自己下落,碰撞器只是检测,不会产生物理碰撞。

核心属性

  1. Mass质量:物体质量,单位 kg,不要设过大过小;质量不直接决定下落速度(重力加速度固定),影响碰撞冲击力。
  2. Linear Damping线性阻力:数值越大,物体越容易减速。
  3. Angular Damping角阻力:旋转时的阻力,阻止物体不停翻滚。
  4. Use Gravity使用重力:勾选,物体受重力自动下落;取消则不受重力。
  5. Is Kinematic运动学
    • ✅勾选:刚体不受物理力影响,不会被重力、碰撞推动;但可以通过代码/Transform移动,能碰撞其他物体。常用于移动平台、门。
    • ❌不勾选:普通动态刚体,受力、重力、碰撞。
  6. Constraints约束:冻结位置/旋转某一轴。比如冻结Y旋转,物体就不能绕Y轴转动。

重要区分

  • 静态物体(无Rigidbody):地面、墙体,不动的障碍物。
  • 动态物体(带Rigidbody,非Kinematic):箱子、小球,会掉落、被撞飞。
  • 运动学刚体(Rigidbody+IsKinematic):自己代码驱动移动,能撞别人,但不会被撞动。

Collider

Collider是物理碰撞形状,本身不带物理运动能力,用来定义物体的碰撞边界。 物体想要产生碰撞、触发检测,必须挂Collider。

简单理解:Mesh是模型外观,Collider是看不见的 “物理外壳”。

常用基础碰撞器(原生,性能好)

  • Box Collider:盒碰撞器,方块、箱子
  • Sphere Collider:球形碰撞器,球体、小球
  • Capsule Collider:胶囊碰撞器,人物角色最常用
  • Cylinder Collider:圆柱碰撞器
  • Plane Collider:无限平面,地面

Mesh Collider网格碰撞器

用模型本身的网格做碰撞形状。⚠️缺点:性能差;默认不能作为动态刚体碰撞,需要勾选Convex(凸包)才能配合Rigidbody。

小物体优先用基础碰撞器,少用MeshCollider。

两个关键勾选

  1. Is Trigger(触发器)
  • 不勾选:实体碰撞,会挡住物体、发生物理撞击(墙、箱子)
  • ✅勾选:触发器,不产生物理阻挡,只检测物体进入离开。比如检测进入区域、踩陷阱。
  • 触发器事件函数:OnTriggerEnter/OnTriggerStay/OnTriggerExit
  1. Material 物理材质
    设置摩擦力、弹力,比如冰面低摩擦、橡胶高弹力。

搭配规则(重点)

  1. 静态障碍物(墙、地面):只需要Collider,不用Rigidbody
  2. 可掉落、可撞击物体:Collider+Rigidbody
  3. 触发器区域:Collider勾选IsTrigger;如果要移动触发器,需要加Rigidbody并勾选Is Kinematic

Collider=看不见的碰撞外壳,决定物体能不能碰到一起;分实体碰撞和触发器两种模式。

Unity4种光源

Directional Light(方向光)

  • 特点:光源在无限远处,光线全部平行;无距离衰减,照亮整个场景,光源位置不影响效果,只看旋转方向。
  • 用途:模拟太阳光、月光,户外场景主光源。
  • 性能:四种里面性能开销最低。
  • 关键:一个场景通常只放1个主方向光。

Point Light(点光源)

  • 特点:从空间一个点向四面八方均匀发光;有Range范围,离光源越远亮度越低,球形范围。
  • 用途:灯泡、火把、爆炸闪光、室内吊灯。
  • 注意:开启阴影性能消耗较高,不要大量使用。

Spot Light(聚光灯)

  • 特点:从一点发出锥形光束;有Range(照射距离)、Spot Angle(锥角大小)。
  • 用途:手电筒、车灯、舞台射灯、探照灯。
  • 特点:可加Cookie贴图,模拟树叶缝隙、窗户光影。

Area Light(面光源/区域光)

  • 特点:矩形单面发光,光线柔和;不能实时运行,只能烘焙到光照贴图。
  • 用途:模拟长条灯带、室内灯盘,阴影柔和自然。

⚠️重要:运行游戏时面光源不会实时起作用,只在烘焙光照时计算。

快速对比表

表格

光源 发光形态 有无衰减 实时可用 典型用途
Directional 平行光 ❌无 ✅是 太阳、月亮
Point 球形向四周 ✅随距离衰减 ✅是 灯泡、火把
Spot 锥形光束 ✅随距离衰减 ✅是 手电、车灯
Area 矩形单面 ✅随距离衰减 ❌仅烘焙 灯带、室内面光

方向光=太阳光;点光源=灯泡;聚光灯=手电筒;面光源=烘焙专用柔和面光。

其它

  1. 调整相机
    • Align With View
    • Align View to Selected
  2. 调整灯光
    • Directional Light(朝向和属性调整)
  3. 天空盒子调整
    • 天空盒子是一个使用的skybox着色器的材质
    • 更换天空盒子
      • 拖到场景中
      • window-renderering-lighting-environment设置
  4. 添加一个画框
    • Quad

Audio(声音系统)


![[unity6-study-notes-1-audio.png]]

  1. AudioSource 音频源 挂载在GameObject上,负责播放音频。

    • Clip:音频片段(AudioClip),要播放的声音文件
    • Play On Awake:物体创建时自动播放
    • Loop:循环播放
    • Volume:音量(0~1)
    • Pitch:音调,大于1变快变尖,小于1变慢低沉
    • Spatial Blend:空间混合(2D/3D声音)
    • 2D:音量和距离无关,适合UI音效、背景音乐
    • 3D:离AudioSource越近声音越大,适合场景物体、脚步声、环境音效
  2. AudioClip 音频片段导入到项目里的音频资源(mp3、wav等),是声音素材本身,不能直接播放,需要AudioSource调用。

  3. AudioListener 音频监听器相当于“耳朵”,场景里只能有一个,默认挂载在MainCamera上。用来接收AudioSource发出的声音。

  4. Audio Reverb Zone(混响区域) 给场景球形范围内添加回声/混响音效。创建方式:Hierarchy右键→Audio→Audio Reverb Zone,生成空物体挂载该组件。

    参数 说明
    Min Distance 内圈半径:进入这个范围,混响效果拉满Unity
    Max Distance 外圈半径:超出该距离,完全没有混响;内外圈之间,混响平滑渐变过渡Unity
    Reverb Preset 预设:Cave山洞、Cathedral大教堂、Underwater水下、Room房间等,也可以User自定义滑块调参数Unity