Unity学习-熟悉环境
Unity引擎基础
Unity环境搭建
C#基础
Unity API
物理引擎1
3D数学基础
UGUI
Unity环境
设置
- layout–2 by 3
- Project – 1 column
面板
Scene - 场景视图
Game - 游戏预览
Inspector 检视面板
Hierarchy - 结构视图
Project - 工程资源面板
操作
右键拖动-旋转
中拖动-移动
滚轮-前进后退
选中物体 按F – 居中
选中+Alt+左键—围绕旋转
选中Alt+右键—放大缩小
右键+QEWASD—下上前左后右
Ctrl + D 复制一个
Ctrl + 1 – Scene视图
Ctrl + 2 – Game视图
Ctrl + 3 Inspector视图
Ctrl + 4 Hierarchy视图
Ctrl + 5 Project视图
Ctrl + 6 Animation视图
Ctrl + 7 Profiler视图
顶点吸附-按住V键
Center/Pivot 改变轴心点位置
Local/Global 切换轴向
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pxkJ4eau-1635084898895)(image-20210407172136532.png)]
世界坐标
:整个场景的固定坐标,不随物体旋转二改变
本地坐标
:物体自身坐标,随物体旋转而改变
播放控件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A86X0zw9-1635084898898)(image-20210407172224505.png)]
Persp/Iso 正交观察/透视观察
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uEkrWTYu-1635084898899)(image-20210407173219193.png)]
场景-Scene
- 一组相关联的游戏对象的集合,通常游戏中每个关卡就是一个场景,用于展现当前关卡中的所有物体
游戏对象-GameObject
- 运行时出现在场景中的游戏物体
- 是一个
容器
,可以挂载组件 - 父、子物体–可以通过Hierarchy面板进行拖拽进行关联;子物体继承父物体的移动、旋转和缩放,但子物体不影响父物体
一般创建物体使,将一个空对象当父物体,所有行为赋予父物体,当需要换模型时,只需要换子物体即可,不需要担心行为需要重新制作
组件-Component
是游戏对象的功能模块
每一个组件都是一个类的实例
Transform 变换组件:决定物体的位置、旋转、缩放比—
位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2cbLf0A-1635084898900)(image-20210407175634356.png)]
Mesh Filter 网格过滤器:用于从资源中获取网格信息–
形状
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zq3kDX9T-1635084898901)(image-20210407175451660.png)]
Mesh Renderer 网格渲染器:从网格过滤器中获得几何形状,在根据变化组件定义的位置进行渲染—
颜色等
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GYajh2Ss-1635084898902)(image-20210407175520532.png)]
网格过滤器与网格渲染器联合使用,使模型显示到屏幕上
- Project-工程
- Scene-场景
- Scene
- GameObject-物体
- GameObject
- Component-功能组件(脚本等等…)
- Component
材质-Material
选择物体-MeshRenderer-materials
project-cteate-material
- 材质,实际就是Shader的实例
- Shader 着色器:专门用来渲染3D图形的技术,可以使纹理以某种方式展现。实际就是一段嵌入到渲染管线中的程序,可以控制GPU运算图像效果的算法
- Texture 纹理:附加到物体表面的贴图
渲染模式
- Opaque - 不透明,默认选项
- Transparent - 透明,用于半透明和全透明物体,如玻璃
- Cutout - 镂空,用于完全透明或完全不透明物体,如栅栏
- Fade - 渐变,用于需要淡入淡出的物体
材质Shader-Standard
- Albedo 基础贴图:决定物体表面纹理与颜色
- Metalic 金属:使用金属特性模拟外观
- Specular 镜面反射:使用镜面特性模拟外观
- Smoothness 光滑度:设置物体表面光滑程度
- Normal Map 法线贴图:描述物体表面的光滑程度
- Emission 自发光:控制物体表面自发光颜色和贴图
- None 不影响环境
- Realtime 实时动态改变
- Backed 烘焙生效
- Tiling 平铺:沿着不同的轴,纹理平铺个数
- Offset 偏移:滑动纹理
Shader - 材质 - 物体 - 设置材质
物理着色器
- 基于物理特性的Shader(Unity5.x)。Physically Based Shading PBS
- 遵从物理的能量守恒定律,可以创建出在不同光照环境下都接近真实的效果
摄像机
- 附加了摄像机Camera组件的游戏对象(GameObject)
- 是向玩家捕获和显示世界的设备
- 场景中摄像机的数量不受限制
默认摄像机
组件
- Transform:变化组件
- Camera摄像机:向玩家捕获和显示世界
- clear Flag:处理画面空白处如何显示(Sky box、Solid color、Depth only、Don’t clear)
- Culling Mask:摄像机可视图层[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KbcvQPb-1635084898902)(image-20210408213129539.png)]
- Projection:设置摄像机画面是2D还是3D
- Field of View:设置视距(只有3D画面才有)、2D设置Size属性
- Clipping Planes:可视距离(Near近、Far远)
- Viewport Rect:W、H:设置画面大小、X、Y:设置画面位置
- Depth:深度值,当有多个摄像机时,设置画面显示层级
- Flare Layer耀斑层:激活可显示光源耀斑—(新版无)
- GUI Layer:激活可渲染二维GUI元素-------(新版无)
- Audio Listener 音频监听器:接收场景输入的音频源Audio Source并通过计算机的扬声器播放声音
- 天空盒:摄像机添加skybox组件 || 使用Lighting窗口设置skybox
- 6-sided:6个图片围成的天空盒模式
- skybox/Procedual Shader:
- Sun:太阳模式 -None、Simple、HightQuality
- Atmosphere:大气层高度
- Ground:地面颜色
案例-游戏画面
- 将摄像机与玩家模型绑定and绑定其在地图摄像机的显示对象
- 新的摄像机创建一个小地图–建议渲染模式为2D–摄像机clearflag设置为depthonly可以去除多余空白
- 移除其他摄像机的音频监听
- 设置不同摄像机的渲染图层
渲染管线
- 图形数据在GPU上经过运算处理,最后输出到屏幕的过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ej8vP1cj-1635084898903)(image-20210409104146340.png)]
顶点处理
- 接收模型顶点数据
- 坐标系转换-将坐标转换为屏幕的2D坐标显示
图元装配
- 组装面:连接相邻的顶点,绘制为三角面
光栅化
- 计算三角面上的像素,并为后面着色阶段提供合理的插值参数
像素处理
- 对每个像素区域进行着色
- 写入到缓存中
缓存
- 一个存储像素数据的内存块,最重要的缓存是帧缓存与深度缓存
- 帧缓存:存储每个像素的色彩,即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输入到屏幕中
- 深度缓存(z-buffer):存储像素的深度信息,即物体到摄像机的距离。光栅化时便已计算好各像素的深度值,如果新的像素的深度值比现有值更近,则像素颜色被写到帧缓存,并替换深度缓存。
Occlusion Culling - 即时遮挡剔除
- 即时遮挡剔除 Instant Occlusion Culling
- 遮挡剔除:当物体被送进渲染水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能
- Unity自带的遮挡剔除无法进行实时剔除(即无法剔除通过代码添加进去的物体);可导入第三方插件
InstantOC-插件
- 步骤
- 创建层
- 为游戏物体指定层(将参与遮挡剔除)与标签(将自动附加IOClod脚本)
- 物体添加碰撞器Collider组件
- 摄像机附加脚本IOCcam
- 属性
- Layer mask:参与遮挡剔除的游戏对象层
- IOC Tag :将为指定标签的游戏对象自动添加IOClod脚本对象
- Sample:每帧摄像机发射的射线数目。数量多剔除效果好,但性能开销大。通常在150-500之间。
- Rays FOV:射线视野,应大于摄像机 视野Field of View
- View Distance:视图距离,射线长度,将影响摄像机Clipping Planes --Far数值
- Hide Delay:延迟隐藏,当物体被剔除时延迟的帧数,建议50-100之间
- PreCull Check:检查采集信息,建议勾选,可以提高剔除效率
- RealTime Shadows:实时阴影,如果场景需要实时阴影,建议启用,确保剔除物体显示正常的阴影
- 优缺点:剔除消耗性能,所以建议在物体较密集,有较多物体被遮挡的情况下使用遮挡剔除,否则,如果只有少量物体被遮挡时使用遮挡剔除,会消耗性能但提升不了效率
LOD - 多层次细节
- LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5qiIyfw1-1635084898903)(image-20210409204759866.png)]
- 步骤
- 创建层
- 创建空物体并将模型添加其中,并命名为LOD_0,LOD_1,LOD_2
- 为父物体指定层与标签
- 父物体或子物体添加碰撞器组件
- 摄像机附加脚本IOCcam
性能分析
windows-analysis-profiler
光照系统
Global Illumination
- 简称GI,全局光照
- 能够计算直接光、间接光、环境光以及反射光的光照系统
- 通过GI算法可以使渲染出来的光照效果更为真实丰富
直接光
- 从光源直接发出的光,通过Light组件实现
- Type类型:灯光对象的当前类型
- Directional Light 平行光:平行发射光线,可以照射场景中的所有物体,用来模拟太阳
- Point Light:点光源:在灯光位置上向四周发射光线,可以照射其范围内所有对象,用于模拟灯泡
- Spot Light 聚光灯:在灯光位置上向圆锥区域发射光线,只有在这个区域内的物体才会受到光线照射,用于模拟探照灯
- Area Light 区域光:由一个面向一个方向发射光线,只照射该区域内的物体,仅烘焙时有效,用在光线较为集中的区域
- Shadow Type:阴影类型 Hard硬阴影、Soft软阴影
- Strength 硬度:阴影的黑暗程度
- Resolution 分辨率:设置阴影的细节程度
- Bias 偏移:物体与阴影的偏移
- 通过Mesh Renderer组件启用/禁用阴影
- Cast/Receive Shadows 当前物体是否投射/接收阴影
- Off 不投射阴影,On 投射阴影, Two Sided 双面阴影 , Shadows Only 隐藏物体只投射阴影
- 阴影剔除:设置显示阴影的距离
- Edit-Project Settings-Quality-Shadows Distance
间接光
- 物体表面在接受光照后反射出来的光
- 通过Light组件中Bounce Intensity反弹强度控制
- 可以通过Scene面板Irradiance模式查看间接光照
- 只有标记Lightmaping Static的物体才能产生间接反射光照
- 间接光非常耗性能,所以要预先标记静态物体,进行预计算
环境光照
- 作用于场景内所有物体的光照,通过Environment Lighting中Ambient控制
- Ambient Source 环境光源
- Skybox 通过天空盒颜色设置环境光照
- Gradient 梯度颜色 Sky天空颜色、Equator地平线颜色、Ground地面颜色
- Ambient Color 纯色
- Ambient Intensity 环境光强度
- Ambient GI 环境光GI模式
- Realtime 实时更新,环境光源会改变 就选择此项
- Backed 烘焙,环境光源不会改变 就选择此项
反射光-Environment Reflections
- 根据天空盒或立方体贴图计算的作用于所有物体的反射效果,通过Lighting-Environment Reflections控制
- Reflection Source 反射源
- Skybox 天空盒 Resolution分辨率 Compression是否压缩
- Custom 自定义 Cubemap立方体贴图
- Reflection Intensity 反射强度
- Reflection Bounces 使用Reflection Probe后不允许不同游戏对象间濑户反弹的次数
实时GI
- 指在运行期间任意修改光源,所有的变化可以立即更新
- 操作步骤
- 游戏对象设置为Lightmaping Static
- 启用Lighting面板的Precomputed Realtime GI
- 点击Build按钮(如果勾选Auto编辑器会自动检测场景的改动修复光照效果)
- Realtime Resolution:实时计算分辨率
- CPU Usage:CPU利用率,值越大实时渲染效率越高
烘焙GI
- 烘焙:将光线效果预渲染成贴图再作用到物体上模拟光影,从而提高性能,适用于在性能较低的设备上运行的程序(手机端)
- 步骤
- 游戏对象设置为 Lightmaping Static
- 设置Light组件Baking属性
- 启用Lighting面板的Baked GI
- 点击Build按钮(如果勾选Auto编辑器会自动检测场景的改动修复光照效果)
- Light组件Baking属性:烘焙模式
- Realtime 仅实时光照时起作用
- Baked 仅烘焙时起作用
- Mixed 混合,实时光照不会对被烘焙的物体作用
- 可以通过Scene面板Baked模式查看光照贴图
- Baked GI
- Baked Resolution:烘焙光照贴图分辨率,建议比实时GI分辨率高10倍
- Baked Padding:光照贴图中各形状间距,取值2-200
- Compressed:是否压缩光照贴图,压缩则提高性能,缩小容量,但画质会降低
- Ambient Occlusion:环境遮挡表面的相对亮度,值越高遮挡处和完全曝光处区别越大,建议为1
- Final Gather:选中后提高烘焙质量,但是会消耗更多的时间
- Atlas Size:光照贴图尺寸
General GI
- 常规GI设置,同时适用于实时GI和烘焙GI
- Directional Mode 定向模式:
- Non Directional:无定向模式,使用1中光照贴图存储光照信息
- Directional:定向模式,使用2中光照贴图存储光照信息,效果更好,但空间占用更大
- Direction Specular 定向反射模式,使用4中光照贴图存储光照信息,效果最好,空间最大
- 除无定向模式外,必须运行在GLES2.0与SM2.0以上的设备。GLES指OpenGL ES针对移动端,从iPhone5s开始支持;SM指Shader Model针对PC端,目前大部分显卡支持
- Indirect Intensity 最终间接光照、反射光照的强度,1位默认强度,小于1降低,大于1增大
- Bounce Boost 增强间接光照
- Default Parameters 高级GI参数
- Default 默认
- Default-HighResolution 高分辨率
- Default-LowResolution 低分辨率
- Default-VeryLowResolution 非常低的分辨率
光源侦测
- 由于LightMapping智能作用于static物体,所以导致运动的物体与场景中的光线无法融合在一起,显得非常不真实。而Light Probes组件可以通过Probe收集光影信息,然后对运动物体邻近的几个Probe进行插值运算,最后将光照作用到物体身上。
- 步骤
- 创建游戏对象Light Probe Group
- 添加侦测小球 Add Probe
- 点击Build按钮
- 勾选需要侦测物体的MeshRenderer组件的Use Light Probes属性
声音
- Unity支持的音频文件格式
- Mp3、ogg、wav、aif、mod、it、s3m、xm
- 声音分为2D、3D
- 2D:适合背景音乐
- 3D:有空间感,金达院校
- 在场景中产生声音,主要依靠两个重要组件
- Audio Listener 音频监听器:接收场景中音频源Audio Source发出的声音,通过计算机的扬声器播放声音
- Audio Source 音频源
- Audio Clip 音频剪辑:需要播放的音频资源
- Mute 静音:如果启用,播放音频没有声音
- Play On Awake 唤醒播放:勾选后场景启动时自动播放
- Loop 循环:循环播放音频
- Volume 音量
- Pitch 音调:通过改变音调调节音频播放速度。1为正常播放
- Stereo Pan:2D声音设置左右声道
- Spatial Blend:2D与3D声音切换
- 3D声音设置
- Volume Rolloff 音量衰减方式
- Min Distance 开始衰减距离
- Max Distance 结束衰减距离
Unity学习-熟悉环境相关推荐
- unity 学习_宣布全新的学习平台Unity学习
unity 学习 Experience a whole new way to access our award-winning learning courses, projects and tutor ...
- Unity学习路线是什么样的?
Unity学习路线是什么样的?我们来看看Unity3D程序开发基础: 1)C#语法基础 2)OOP(面向对象) 3)网络通信 4)内存管理从基础讲解C#语言,熟悉字段.属性.接口.委托.事件,掌握C# ...
- visual studio学习python_python3从零学习-开发环境搭建之Visual Studio Code篇
开发环境搭建之Visual Studio Code篇 上一节讲了Python环境的安装和开发环境的安装,本节再重点讲下Visual Studio Code的配置.安装 请看我上一篇文章<pyth ...
- Unity学习2:如何实现个性化渲染平面(图文详细)
Unity学习2:如何实现个性化渲染平面(图文详细) AR Plane Manager(平面追踪对象管理器) 可视化平面 个性化渲染平面 AR Plane Manager(平面追踪对象管理器) 平面管 ...
- 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境
深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...
- Unity学习之Human fall flat创意工坊地图制作
Unity学习笔记之Human fall flat 主要参考<人类一败涂地>官方教程 Unity版本 详细教程获取 开始工程导入 素材包介绍 界面介绍 工具简介 常用组件简介 多人游戏组件 ...
- 常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等)
原文链接:http://blog.csdn.net/jinzhuojun/article/details/78508203 前段时间Nature上发表的升级版Alpha Go - AlphaGo Ze ...
- [Unity 学习] Unity 入门学习及第一个游戏
[Unity 学习] Unity 入门学习及第一个游戏 跟着教程做的一个小游戏,基本上说就算我这样的零基础,两个小时就能实现. 主要就是熟悉一下 C#和 Unity,做一个能跑的东西. 简单的 Dem ...
- 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码
[Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...
最新文章
- mysql数据库的打开失败_MySQL数据库启动失败解决
- linux分屏显示文件命令:more(less)
- 1195C. Basketball Exercise
- python web框架基础
- 预测:小程序入口预测汇总(8种可能)
- ExtraPhrase:一种针对抽象式(生成式)摘要的数据增强方法
- 为什么少有人在Windows电脑上安OS X?
- Android安全补丁程序下载,2017年一月win7安全补丁更新包官方下载-2017Win7安全更新补丁包64位下载-西西软件下载...
- 河南初中信息技术测试软件,中学信息技术考试练习系统——河南省版
- 《Spring Recipes》第三章笔记3:Specifying Aspect Preced...
- 发票识别 表格票据识别
- C++:重载、重写、重定义
- 智能推荐--协同过滤
- Smartbi报表工具的学习笔记,如何学好报表分析?
- 一个口 光纤 两条线 交换机 上 光纤 两条线 双纤 单纤 尾纤 分光器 双纤 双纤转单纤 接 分光器
- Package javax.script
- 如何做好一名软件实施顾问
- 飞鸽传书linux运行,Linux下如何安装IPtux飞鸽传书
- 我的2013年总结--北京 深圳
- 南华大学计算机科学学院,南华大学计算机科学与技术学院研究生导师简介-万亚平...
热门文章
- ExifTool如何格式化日期和时间信息以进行书写
- 05 CSS从原理到熟练 - 1
- 解决windows 2003 sp1下安装arcsde 9.0 for sql server 2000 sp4概要方案
- pytorch训练FER2013模型
- Webots学习笔记 1.创建自己的仿真机器人模型
- KubeVela 1.3 发布:开箱即用的可视化应用交付平台,引入插件生态、权限认证、版本化等企业级新特性
- php判断百度来路,判断是否通过百度搜索进入你的网站 - 小俊学习网
- 2016年前端技术观察
- linux vnc登陆,vnc登陆,4个步骤教你vnc登陆Linux
- Mac终端解压缩命令大全