unity引擎使用基础

VegetableChicken
2023-03-01 / 0 评论 / 119 阅读 / 正在检测是否收录...
https://zy.hbrely.net 广告

第一阶段unity基础
引言
注意:
1.重点:1.适用性(什么时候用,怎么用) 2.作用(能够解决什么问题) 3.定义 4.操作/语法
2.每天练习必须会独立完成
3.形成笔记保存下来
4.课下抓紧练,不懂马上问

2D游戏:视角完全锁定,二维坐标
3D游戏:视角可以随意变化,三维坐标
在移动平台,Unity几乎成为3D游戏开发的标准工具
Virtual Reality
虚拟 现实

Augmented Reality
增强

游戏引擎:程序的框架,一款游戏最最核心的代码。
*使用游戏引擎,开发者可以重用已有的核心技术,将精力集中在游戏逻辑和设计上,从而简单快速的创建游戏。

包含以下系统:渲染引擎、物理引擎、碰撞检测系统、音效、脚本引擎、动画系统、人工智能、网络引擎以及场景管理。

U3D特点:
1.简单易用 2.开发效率高 3.价格便宜 4.新手居多 5.跨平台(23个平台间自由迁移,出色的部署,完全的覆盖)
C#(C sharp):微软推出的编程语言

Unity引擎基础
-Unity环境搭建
-C# 语言基础
-Unity API
-3D数学基础
-物理引擎1
-UGUI
Unity小技巧
如果编辑器意外崩溃了,但场景未保存,这时可以打开工程目录,找到/Temp/_Backupscenes/文件夹,可以看到有后缀名为.Backup的文件,将该文件的后缀名改为.Unity拖拽到项目视图,即可还原编辑器崩溃前的场景。
好不容易才调好的坐标,结果发现是在运行模式下,如果退出运行模式就还原了怎么办?可以在检视面板右键点击组件名,在弹出界面中选择copy Component,然后退出运行模式后同样右键点击组件名,在弹出界面中选择paste Component Values即可。
分别按键盘键q、w、e、r、t可以依次切换界面上的小工具,除此之外,按数字键2或3还可以切换场景为2d模式或3d模式
所有数值类型的字段,都支持在检视面板中直接输入简单的数值表达式
右键点击检视面板下方的预览窗口即可让预览窗口跳出来,然后自己选择合适的地方停靠,这样切换模型查看就不会影响到其它面板。想让预览窗口回到原位,只需右键点击窗口,在弹出菜单中选择close Tab即可。
在层次视图的搜索框中输入完整的脚本或组件名称,即可找到所有绑定了该脚本或组件的对象。或者在搜索框中输入t:加上某个类别如light,即可找到使用同类组件的对象。
可以借助编辑器自带的标记功能为脚本分类,在检视面板中点击脚本图标下方的小三角,即可为脚本设置颜色或选择图标。
第一章Unity环境搭建
所用软件:Unity 5.4.0f3 (64-bit)
assets文件夹最重要
Scene场景面板
常用快捷键
1.按下鼠标滚轮拖动场景(或者拖动小手),滑动滚轮缩放场景
2.选择十字标,选定物体,按下F:居中,ALT+鼠标左键:围绕旋转 ALT+鼠标右键:缩放=滑动滚轮
3.右键加ASDWQE 场景漫游
4.按下十字标,选定物体,拖动轴:往前走=向着Z轴正方向,向右走=X轴正方向,向上走=Y轴正方向:反之负方向。拖动面:沿面移动。
5.按下双曲箭头标,是按轴旋转。
6.按下方框和四个箭头的标,是放大缩小,拖动中间白色小方框是整体按比例放大缩小。
inspector:检视面板(检查监视)显示的属性可能不准,在右上角static上边的小三杠选择Debug可以查看隐藏属性,在里面找到要修改的属性的真正名称
transform 变换组件 reset 重置
Position :位置 X 0 Y 0 Z 0 unity世界原点
Rotation :角度 X 0 Y 0 Z 0 角度同世界一致
Scale: 比例(一般 X 1 Y 1 Z 1)
unity世界物体都是由小三角组成,物体越细腻小三角越多。
顶点吸附:按下V同时按下左键拖动,实现顶点吸附
视觉停留效应:0.02S以内视觉感受不到更新
2D视角:ISO 正交模式 3D视角:Persp 透视模式

基础概念
坐标
世界坐标:整个场景的固定坐标,不随物体旋转而改变
本地坐标:物体自身坐标,随旋转而改变

场景scene
一组相关联的游戏对象的集合,通常游戏中每个关卡就是一个场景,用于展现当前关卡中的所有物体。

游戏对象 gameobject
-运行时出现在场景中的游戏物体。-是一种容器,可以挂载组件。
组件 component(例:transform版块)
-是游戏对象的功能模块
网格过滤器:过滤形状 网格渲染器:显示形状
Ctrl+S 保存场景
Ctrl+D 复制物体
为物体添加颜色等要为物体的MeshRenderer下的material添加材质,默认材质无法修改。

Ctrl+1 切换到scene视图 Ctrl+2切换到Game视图 Ctrl+3切换到Inspector视图 Ctrl+4切换到Hierarchy视图

在播放模式下,用户对游戏场景做的所有修改都是临时的,所有的修改在退出游戏预览模式后都会被还原。

(*重要)project(项目)包含很多scene(场景),scene包含很多gameobject(游戏对象),gameobject包含很多component(组件)

打组,一般先创建一个空物体(empty),然后再创建子物体。位置角度比例都是相对父的。
mesh renderer 更改渲染 初始粉紫色,名为材质丢失
metallic 金属的 albedo 反射系数
material 材质:物体的质地,指色彩、纹理、光滑度、透明度、反射率、折射率、发光度等。实际就是shader(着色)的实例。简单来说是物体的外观。
透明要把渲染模式rendering medo改为transparent(透明),再调albedo(反射率)里的A
渐变要把渲染模式改为fade(渐变),再调albedo里的A
去底镂空要把渲染模式改为cut out(镂空),再调albedo里的A
RGBA图片可使用CUT OUT去底,RGB不可以
shader着色器:专门用来渲染3D图形的技术,可以使纹理以某种方式展现。
材质相当于shader的面板,shader是程序。
texture纹理:附加到物体表面的贴图。
(*重要)shader-->material-->MeshRenderer(网格渲染) meterial-->texture纹理
-->color

shader要借助material才能作用到物体
摄像机
天空盒skybox
围绕整个场景的包装器,用于模拟天空的材质。

windos-->lighting灯光-->environment lighting环境灯光(scene会受到skybox的影响)
Tag标签 layer层 作用:分类
摄像机可以选择看见哪个层或者不看见哪个层,层也可以自己添加。

游戏是3D还是2D需要设置摄像机的视角为透视perspective或正交orthogonality
摄像机的far是视野范围
viewport rect : W,H调整屏幕宽和高 X,Y调整屏幕在水平竖直方向的位置。
若两个摄像机视野重叠,则depth深度值,大的盖住小的

选中摄像机,按Ctrl+Shift+F,可快速让摄像机定位到当前位置,并且角度同视角一致。也可以定位别的物体。(要把输入法关闭)
让摄像机跟着模型走:创建一个空物体player,然后把模型model和摄像机作为player的子物体,并且务必把模型的transform重置,同player一致。
创建小地图:在天空放置一个摄像机向下看,然后设置该摄像机深度值depth大于模型摄像机,然后设置成2D(orthogonality)
做人物标记:在人物头顶创建一个平面,然后载入三角图片。由于主摄像机不能看见三角平面标记,则给该平面设置一个层,给摄像机设置成不看见这个层。
把摄像机属性skybox更改为depth only ,则只显示摄像机看得见的,其余部分会消失。
instantOC(面试重点)
:一个插件,包括occlusion culling 和LOD
一、渲染管线
渲染管线:图形数据在GPU上经过运算处理,最后输出到屏幕的过程。
绘制调用Draw Call:每次引擎(CPU)准备数据并通知GPU的过程。通俗讲:每帧调用显卡渲染物体的次数。(在starts里Batches后边显示的数字)
CPU准备数据 顶点处理:中间有坐标系的转换
游戏-->图形API-->CPU(决定视锥以内哪些物体需要渲染)GPU(显卡)-->顶点处理-->图元装配(连接相邻的点组成三角面)-->光栅化(计算三角面上的像素)-->像素处理(对每个像素区域进行着色)-->缓存(一个存储像素数据的内存块,最重要的是帧缓存(常在显卡中)与深度缓存z-buffer(物体距离摄像机的距离)。)

一个物体不渲染,CPU与GPU性能都会提高。物体越多、物体精度越高,CPU与GPU性能越低。
二、occlusion culling
即时遮挡剔除occlusion culling:在物体被渲染前,将摄像机视角内看不见的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能。(笔试考)
默认:摄像机视锥内物体都会被渲染,即使看不见也会被渲染。
插件samples:每帧摄像机发射的射线数目,数量多会导致CPU性能降低,通常在150-500之间。
FOV :视场<-->摄像机中filed of view View视野<-->摄像机中far
hide delay延迟隐藏:射线发射次数。建议50帧-100帧之间。 PreCull Check,建议勾选。
遮挡剔除同时,要为物体设置一个盒子碰撞器(绿色物理边界)。为物体加一个组件-->box collider。
注意:不设置碰撞器射线射不到。
遮挡剔除优点:减少渲染量。 (功能上没有损失) 缺点:CPU(射线)需要消耗额外性能。
场景里物体较多且分布较密集(被遮挡的物体多)时使用遮挡剔除。

三、LOD
LOD(Level of Detail多细节层次):指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
不会降低draw call
优点:降低非重要物体的面数与精度,从而获得高效率的渲染运算
缺点:CPU总需要判断距离,变换模型
适用性:1.场景中需要存在高精度模型 2.距离需要变化
步骤:1.创建层
2.创建空物体并将模型添加到其中,模型命名:Lod_0,Lod_1,Lod_2(精度由高到低)
3.为父物体指定层与标签
4.父物体或子物体添加碰撞器组件
5.摄像机附加脚本IOCcam
Lod1 distance:摄像机到物体距离小于当前距离时,使用Lod_0模型。
Lod2 distance:摄像机到物体距离大于Lod1且小于当前距离时,使用Lod_1模型,大于当前值使用Lod_2模型。
光照系统
GI(Global illumination),即全局光照。能够计算直接光、间接光、环境光(ambient)以及反射光(reflection)的光照系统。通过GI算法可以使渲染出来的光更加真是丰富。
直接光照
直接光照:directional平行光和位置无关和角度有关。point点光源相当于一个灯泡,range:范围。sport聚光灯:由一个点像一个椎体照射,相当于手电筒。
物体阴影在光源选项组件里。硬阴影性能比软阴影好。阴影很消耗性能,所以需要阴影剔除。
shadow distance(阴影距离):如果等于40则等于距离摄像机40米以内渲染阴影,40米以外不渲染阴影。
选中个别物体,可以在组件中选择关闭阴影
环境光照
环境光照ambient source:所有物体都能感受到的光照。
作用于场景内所有物体的光照,通过Environment Lighting 中Ambient 控制。
•Ambient Source 环境光源
--Skybox 通过天空盒颜色设置环境光照
--Gradient 梯度颜色
Sky 天空颜色、Equator 地平线颜色、Ground 地面颜色
--Ambient Color 纯色
•Ambient Intensity 环境光强度
•Ambient GI 环境光GI模式
--Realtime实时更新,环境光源会改变选择此项。
--Backed 烘焙,环境光源不会改变选择此项。
反射光照
反射光照resolution source:从天空盒中取色。
根据天空盒或立方体贴图计算的作用于所有物体的反射效果,通过Environment Lighting 中Reflection 控制。
•Reflection Source 反射源
--Skybox 天空盒
Resolution 分辨率Compression 是否压缩
--Custom 自定义
Cubemap立方体贴图
•Reflection Intensity 反射强度
•Reflection Bounces 使用Reflection Probe 后允许不同游戏对象间来回反弹的次数。
间接光照
间接光照:物体表面在接受光照后反弹出来的光。(特别消耗性能)
通过Light 组件中Bounce Intensity 反弹强度控制。
可以通过Scene 面板Irradiance 模式查看间接光照。

注意:只有标记Lightmaping Static的物体才能产生间接光。

实时GI
一、Realtime GI实时GI:在运行期间任意修改光源,效果实时更新。(需要预计算)
实时GI在手游里慎用,太消耗性能。
1.把场景里不动的物体标记为Static(静态的)
2.勾选precomputed(预计算) Realtime GI
3.调整好物体点击Build(取消勾选Auto)
烘焙GI
二、烘焙GI(Baked GI)将光照效果做成图片贴到物体上。
当场景包含大量物体时,实时光照和阴影对游戏性能有很大影响。使用烘焙技术,可以将光线效果预渲染成贴图再作用到物体上模拟光影,从而提高性能。 适用于在性能较低的设备上运行程序。
需要把不动的物体设置为静态,只烘焙不动的物体。
步骤:

  1. 游戏对象设置为LightmapingStatic。
  2. 设置Light组件Baking属性。
  3. 启用Lighting 面板的Baked GI。
  4. 点击Build按钮。(在Lightling-->Scene中)(如果勾选Auto 编辑器会自动检测场景的改动修复光照效果)
    Light 组件Baking 属性:烘焙模式

--Realtime仅实时光照时起作用。
--Baked仅烘焙时起作用。
--Mixed 混合,烘焙与实时光照都起作用。
可以通过Scene 面板Baked 模式查看光照贴图。
光源侦测
三、光源侦测
由于LightMapping只能作用于static 物体,所以导致运 动的物体与场景中的光线无法融合在一起,显得非常不真 实。而Light Probes 组件可以通过Probe (侦测)收集光影信息, 然后对运动物体邻近的几个Probe 进行插值运算,最后将 光照作用到物体上。
probe不宜太少也不宜太多,太少有光变化的地方侦测不到,太多消耗性能。在光有明暗变化的地方必须要有probe。

声音
声音分为2D、3D两类
3D声音:有空间感,近大远小。
2D声音:适合背景音乐。
• 在场景中产生声音,主要依靠两个重要组件:
Audio Listener 音频监听器:接收场景中音频源Audio Source(音频源)发出的声音,通过计算机的扬声器播放声音。
Audio Source 音频源
音频监听器在摄像机组件中,场景中只能有一个音频监听器。如果有多个摄像机,那只能留一个,要把别的摄像机的音频监听器组件移除remove。

一般游戏里声音都放在一个sounds文件夹里面。
声音组件中要勾选play on awake (运行时播放)启用声音
3D sound settings 3D声音的设置
音量衰减 linear线性曲线(常用) X轴:单位米。Y轴:音量
min distance :最小距离(距离之内无衰减) max distance:最大距离(超过距离就没有声音了)

评论 (0)

取消