第一章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(着色)的实例。简单来说是物体的外观。

透明要把渲染模式renderingmedo改为transparent(透明),再调albedo(反射率)里的A

渐变要把渲染模式改为fade(渐变),再调albedo里的A

去底镂空要把渲染模式改为cutout(镂空),再调albedo里的A

RGBA图片可使用CUTOUT去底,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(面试重点)

:一个插件,包括occlusionculling LOD

包括一、渲染管线,二、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聚光灯:由一个点像一个椎体照射,相当于手电筒。

物体阴影在光源选项组件里。硬阴影性能比软阴影好。阴影很消耗性能,所以需要阴影剔除。

shadowdistance(阴影距离):如果等于40则等于距离摄像机40米以内渲染阴影,40米以外不渲染阴影。

选中个别物体,可以在组件中选择关闭阴影

环境光照

环境光照ambient source:所有物体都能感受到的光照。

作用于场景内所有物体的光照,通过EnvironmentLighting Ambient 控制。

AmbientSource 环境光源

--Skybox 通过天空盒颜色设置环境光照

--Gradient 梯度颜色

Sky 天空颜色、Equator 地平线颜色、Ground 地面颜色

--Ambient Color 纯色

AmbientIntensity 环境光强度

AmbientGI  环境光GI模式

--Realtime实时更新,环境光源会改变选择此项。

--Backed 烘焙,环境光源不会改变选择此项。

反射光照

反射光照resolution source:从天空盒中取色。

根据天空盒或立方体贴图计算的作用于所有物体的反射效果,通过EnvironmentLighting Reflection 控制。

ReflectionSource 反射源

--Skybox 天空盒

Resolution 分辨率Compression是否压缩

--Custom 自定义

Cubemap立方体贴图

ReflectionIntensity 反射强度

ReflectionBounces 使用ReflectionProbe 后允许不同游戏对象间来回反弹的次数。

间接光照

间接光照:物体表面在接受光照后反弹出来的光。(特别消耗性能)

通过Light 组件中BounceIntensity 反弹强度控制。

可以通过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 物体,所以导致运 动的物体与场景中的光线无法融合在一起,显得非常不真 实。而LightProbes 组件可以通过Probe(侦测)收集光影信息, 然后对运动物体邻近的几个Probe 进行插值运算,最后将 光照作用到物体上。

probe不宜太少也不宜太多,太少有光变化的地方侦测不到,太多消耗性能。在光有明暗变化的地方必须要有probe探针

声音

声音分为2D、3D两类

3D声音:有空间感,近大远小。

2D声音:适合背景音乐。

·          在场景中产生声音,主要依靠两个重要组件:

Audio Listener 音频监听器:接收场景中音频源Audio Source(音频源)发出的声音,通过计算机的扬声器播放声音。

Audio Source 音频源

音频监听器在摄像机组件中,场景中只能有一个音频监听器。如果有多个摄像机,那只能留一个,要把别的摄像机的音频监听器组件移除remove。

一般游戏里声音都放在一个sounds文件夹里面。

声音组件中要勾选playon awake (运行时播放)启用声音

3D sound settings  3D声音的设置

音量衰减linear线性曲线(常用)    X轴:单位 米。Y轴:音量

min distance :最小距离(距离之内无衰减) max distance:最大距离(超过距离就没有声音)

Unity3d 场景搭建 基础 学习相关推荐

  1. C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)

    在学习C基础总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 01-C基础第02天(用户权限.VI操作.Linux服务器搭建) 打开终端:ctrl+alt+t ...

  2. 01_Go语言基础学习_Golang语言特性、环境搭建、第一个Go程序、包

    1. Golang语言特性: 垃圾回收: 1.内存自动回收,再也不需要开发人员管理内存: 2.开发人员专注业务实现,降低了心智负担 : 3.只需要new分配内存,不需要释放 天然并发: 1.从语言层面 ...

  3. Linux基础学习(十七)--- wiki,jira 搭建、公司面试常见问题

    Linux基础学习(十七) wiki,jira 搭建.公司面试常见问题 mysql中 utf8 支持中文字符 du -sh * 查看当前目录所有文件大小 wiki 企业多人协作系统–>企业级文档 ...

  4. 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)

    从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自  : 从零开始搭建深度学习服务器: 基础环境配置( ...

  5. react项目搭建(基础学习笔记)

    react项目搭建(基础学习) 安装 局部安装 1.npm init -y或yarn init -y初始化项目 2.全局安装creact-react-app.使用npm install -D crea ...

  6. Unity3D游戏开发入门学习笔记

    学习内容概要: 软件面板功能.材质球.预制体.摄像机.灯光.鼠标键盘输入.组件.刚体.碰撞体.PC端游戏打包发布.... 第1课:课程介绍与Unity3D环境搭建 1.Unity3D,一个游戏开发引擎 ...

  7. 【贪玩巴斯】Unity3D初学圣经(一)——学习要求 Unity简单介绍 游戏引擎介绍 课程体系介绍 「1-1 到 1-4 」—— 2021年12月9日

    Unity3D初学圣经 一 --学习要求 & Unity简单介绍 & 游戏引擎介绍 & 课程体系介绍 本文对应视频P1 1-1 到P2 1-4 1.学习要求 2.Unity简单 ...

  8. 业界首个面向NLP场景深度迁移学习框架

    机器之心发布 机器之心编辑部 阿里云正式开源了深度迁移学习框架 EasyTransfer,本文详细介绍了 EasyTransfer 框架的核心功能 近日,阿里云正式开源了深度迁移学习框架 EasyTr ...

  9. 大数据入门之Hadoop基础学习

    前言 目前人工智能和大数据火热,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求.因此对大数据知识也有必要进行一些学习理解 基础概念 大数据的本质 一.数据的存储:分布式 ...

  10. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

    目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...

最新文章

  1. android 如何添加第3方lib库到kernel中
  2. 基于哈希算法的web账户口令存储方法
  3. 本地通过域名访问虚拟机的网站部署方法(Nginx)
  4. ejb 2.0 3.0_EJB 3.0注入和查找简介
  5. T-SQL命令性能比较– NOT IN与SQL NOT EXISTS与SQL LEFT JOIN与SQL EXCEPT
  6. 计算机打开共享网络连接打印机共享打印机,WIN7怎么连接共享打印机?如何设置和连接局域网共享打印机...
  7. 智齿客服H5聊天链接接入及WebView不支持input file文件上传解决
  8. 硬盘缓存作用是什么,缓存是不是越大越好?
  9. android对话框activity,Android使用Activity用作弹出式对话框
  10. app违规收集个人信息被通报了怎么办?教你如何整改
  11. python 密码库_(01)Python密码库Cryptography探究学习---简介和入门
  12. c# mailgun 发送邮件测试
  13. 怎么做 Satellite assemblies
  14. 前端技术 | dva,美貌与智慧并存
  15. 互联网早期是怎么发展起来的?
  16. pcolor和surf画出的图形转存为eps或pdf格式出现横竖斜白色虚线网格,完美去掉!!!
  17. 数字化转型实例:国家电网
  18. ios 闪退的原因及解决方案
  19. DeepDGA:基于生成对抗网络的DGA生成与检测
  20. 国密sm4 ECB、CEC模式探究与在iOS中的应用

热门文章

  1. 轻松学会Python列表解析式
  2. HDLC(High-Level Data Link Control)(对比以太网)
  3. 软件测试中手机性能测试怎么做,软件测试之手机知与手机性能测试完整版.doc...
  4. mysql数据库交互界面_MySQL数据库界面化工具 - Navicat的常用功能
  5. SSL单向认证和双向认证
  6. 3.Adaptive AUTOSAR 架构详解
  7. 深入浅出了解AUTOSAR Adaptive平台
  8. 影视剪辑,7个创意转场及7个剪辑技巧,剪辑技巧分享
  9. 未缓存的IPv6路由项链表
  10. 2019中原银行java实习面试