Unity游戏开发基础知识(新手必看)
内容会持续更新,有错误的地方欢迎指正,谢谢!
0.Unity最大的优点
unity提供的最大优点就是跨平台。
以前项目移植很麻烦,现在只要一份代码,然后注意平台差异就好了。
1.灯光类型
- 平行光:DirectionalLight 有一个方向,用于模拟阳光
- 点光源:Point Light 一个球状,用于模拟灯泡,、爆炸等,别开启阴影运算以节约性能
- 聚光灯:Spot Light 崩坏3琪亚娜的极乐净土CG视频中聚光灯用得特别多,游戏中慎用
- 区域光源:Area Light 区域光只能用在烘焙,因此不影响游戏性能
2.光照贴图LightMapping
单独使用的LightMapping效果很好,也就是提前静态烘焙,但由于只是把光影烘焙到贴图上,所以并不会对周围的动态物体产生真正的光照效果。这次来介绍一下光照探头LightProbe:
这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果,就是全局光照的知识。LightProbe的用法就是在LightMapping的基础上加上了一些探头,探头越多,效果就越明显。
3.全局光照GI
全局照明GI是一种系统,用于模拟光如何从表面反射到其他表面。例如:阳光击中红色沙发会导致红光反弹到其后面的墙上。
有两种使用方式:烘焙方式的GI(只能烘焙静态物体)和预计算的GI(可以做天气系统)。在手机平台上,效能和内存限制较高,烘焙的GI法就会比较适合,决定采用哪一种方法可以针对你的目标平台评估。
4.预制体Prefab的作用
相当于一个GameObject模板,方便多次使用。
有两种实例化的方法:
- 直接将预制体拖到场景中
- 在代码里动态实例化:1.使用Instantiate,一般实例化到某个父物体下面,方便管理;2.先将预制体放在Resources文件夹下,再使用Resources.Load。一般用第一种方法。说到这里,有一个概念:对象池 强烈推荐使用,节约性能。
预制体也有两种用途:
- 物体的继承性:全部实例物体都相同
- 物体的重载性:对某一个实例物体进行单独的修改,让其与其他物体产生区别
5.性能优化
https://blog.csdn.net/billcyj/article/details/79441193
6.渲染流程
https://blog.csdn.net/billcyj/article/details/79539536
7.前向渲染和延迟渲染
正常的前向渲染(Forward Shading)流程是把空间的点进行各种剪裁后进行处理,处理量远远大于我们最终看到的。所以延迟渲染出现了,它先将摄像机空间的点光栅化转化成屏幕坐标后再进行处理。这样就能减少处理的次数,从而提高效率。
8.场景管理—四叉树
https://blog.csdn.net/BillCYJ/article/details/79791056
9.游戏开发中常用的数据结构
https://blog.csdn.net/BillCYJ/article/details/79790951
10.游戏开发中常用的算法
https://blog.csdn.net/BillCYJ/article/details/79792110
11.游戏中常用的设计模式
https://blog.csdn.net/BillCYJ/article/details/79816418
12.FSM(有限状态机)、HFSM(分层有限状态机)、BT(行为树)
https://blog.csdn.net/BillCYJ/article/details/79797228
13.帧同步
https://blog.csdn.net/BillCYJ/article/details/79804116
14.Unity跨平台的机制原理
Unity和Mono的关系:Unity引擎本身是由C++写出的,只不过Mono被嵌入到了Unity当中,为Unity提供了一个完整的虚拟机运行环境。
Unity的跨平台,就是通过Mono将C#代码编译成了通用中间语言CIL(Common Intermediate Language),然后Mono运行时利用 动态编译JIT 或 静态编译AOT 将CLI编译成目标平台的原生代码实现的。
15.骨骼动画原理
先摆好骨骼,骨骼之间有继承关系,再蒙皮(也就是将皮肉绑到骨骼上,主要的工作就是分配权重),最后再做动画。
16.UGUI源码学习之Button和Image
https://blog.csdn.net/BillCYJ/article/details/79879916
https://blog.csdn.net/BillCYJ/article/details/79884504
17.用Unity开发游戏常用的四种存档方式
https://blog.csdn.net/BillCYJ/article/details/79888614
18.Unity里的动态批处理和静态批处理
https://blog.csdn.net/BillCYJ/article/details/79935983
19.OverDraw过度绘制
过度绘制(Overdraw)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的 UI 结构里面,如果不可见的 UI 也在做绘制的操作,会导致某些像素区域被绘制了多次,同时也会浪费大量的 CPU 以及 GPU 资源。
20.Resources加载资源
注意:
1.资源路径相对于Resources目录,且不加后缀名
2.即使是后缀不同的资源,也不要重名,否则加载的时候要指定类型。
3.路径使用正斜杠”/”
4.Resources中的所有资源,不管用没用到,都会被打到客户端中
举例,读写Resources/Txt路径下的test.txt文件: string fullPath = "Txt/test";
string str = Resources.Load<TextAsset>(fullPath).text
####未完待续~
Unity游戏开发基础知识(新手必看)相关推荐
- Html5 Canvas核心技术(图形,动画,游戏开发)--基础知识
基础知识 canvas 元素可以说是HTML5元素中最强大的一个,他真正的能力是通过canvas的context对象表现出来的.该环境对象可以从canvas元素身上获得. <body>&l ...
- 技术文档写作基础-写作新手必看
文章目录 1 搞清楚主谓宾 2 不滥用代词.过渡词和标点符号 2.1 不滥用代词和过渡词 2.2 不滥用标点符号 3 多用强势动词,少用形容词和副词 3.1 强势动词和主动语句 3.2 少用形容词和副 ...
- 游戏开发基础知识——“庆典活动”的设计
我们经常可以在游戏中见到各种各样的"仪式与活动",比如召唤强大的生物基本上都需要通过专属的"召唤仪式",安抚战争中阵亡将士的亡魂会有祭奠仪式,某一阵营的军队在出 ...
- react方法返回html_React全家桶之React基础(推荐新手必看)
学习目标 安装create-react-app脚手架 熟练React基础语法 掌握JSX语法 掌握setState 掌握React生命周期 掌握props传递参数 掌握React组件通信 资源 rea ...
- Unity游戏开发工程师 知识图谱
三.Unity学前 1.C#基础 1.1.数据类型 值类型 引用类型 指针类型 装箱与拆箱 1.2.变量 定义 初始化 1.3.常量 定义 引用 1.4.运算符 ...
- hualinux java 1.17:java开发规范(新手必看)
有不少java初学者都不知道java开发规范的,所以网上找了一个国内电商算是权威的java开发手册 国内最大的电商就是淘宝了,我们向老大学习. 根据<阿里巴巴Java开发手册>中" ...
- 【Unity游戏开发基础】如何在游戏菜单中实现下拉列表选择画面质量
[背景] 上一篇我们介绍了如何在菜单中创建调节音量大小的滚动条,现在我再来介绍一个游戏菜单中的常用设置,也就是下拉列表选择画面质量的功能如何实现. [步骤] 首先,在菜单UI Canvas上添加一个下 ...
- Unity游戏开发前置知识
本文适合有一定C#基础的初学者. 设计模式 含义:帮助我们降低对象之间的耦合度常用的方法称为设计模式.使用设计模式是为了可重用代码,让代码更容易被其他人所理解,保证代码可靠性,使代码编制真正工程化,这 ...
- 渗透测试之Windows基础(新手必看)
文章目录 文件目录相关 查看隐藏目录 设置隐藏目录 一些重要的文件/文件夹 服务 端口 注册表 msconfig cmd 常用Dos命令 批处理 文件目录相关 查看隐藏目录 打开我的电脑,点击查看,勾 ...
最新文章
- 7-5 编程题:选修课成绩统计问题-hebust (12 分)
- 分布式事务是啥?常用的解决方案有哪些?
- 使用uicollectionView时需要注意的问题
- 血栓清道夫机器人_血栓“清道夫”找到了!木耳排第三,排在第一很多人都并不知道...
- js+获取当前域名及跳转、下载操作
- Java SE 疑难点记录
- 怎么用python爬豆瓣_python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影...
- 数组成员是函数java_在Laravel 5.6中调用数组上的成员函数links()
- Windows Server 2012 R2服务器集群测试
- 图像放缩中最近邻插值和双线性插值的基本原理
- java宝马奔驰汽车正在生产代码_Java的三种工厂模式
- Nginx图片服务器
- rpc error: code = Unimplemented desc =
- Android 学习笔记(5)之RxJava解析1
- Passenger简介
- 上亿海量数据处理方法
- LCD液晶显示屏常见类型和接口
- 亲测可用,ERDAS IMAGINE 2015安装步骤(附安装包)
- 关于历史人物曹操的所有故事
- Azure Administrator Associate(AZ-103/AZ-104)或其他Azure认证备考指南