内容会持续更新,有错误的地方欢迎指正,谢谢!

0.Unity最大的优点

unity提供的最大优点就是跨平台。
以前项目移植很麻烦,现在只要一份代码,然后注意平台差异就好了。

1.灯光类型

  1. 平行光:DirectionalLight 有一个方向,用于模拟阳光
  2. 点光源:Point Light 一个球状,用于模拟灯泡,、爆炸等,别开启阴影运算以节约性能
  3. 聚光灯:Spot Light 崩坏3琪亚娜的极乐净土CG视频中聚光灯用得特别多,游戏中慎用
  4. 区域光源:Area Light 区域光只能用在烘焙,因此不影响游戏性能

2.光照贴图LightMapping

单独使用的LightMapping效果很好,也就是提前静态烘焙,但由于只是把光影烘焙到贴图上,所以并不会对周围的动态物体产生真正的光照效果。这次来介绍一下光照探头LightProbe:

这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果,就是全局光照的知识。LightProbe的用法就是在LightMapping的基础上加上了一些探头,探头越多,效果就越明显。

3.全局光照GI

全局照明GI是一种系统,用于模拟光如何从表面反射到其他表面。例如:阳光击中红色沙发会导致红光反弹到其后面的墙上。

有两种使用方式:烘焙方式的GI(只能烘焙静态物体)和预计算的GI(可以做天气系统)。在手机平台上,效能和内存限制较高,烘焙的GI法就会比较适合,决定采用哪一种方法可以针对你的目标平台评估。

4.预制体Prefab的作用

相当于一个GameObject模板,方便多次使用。

有两种实例化的方法:

  1. 直接将预制体拖到场景中
  2. 在代码里动态实例化:1.使用Instantiate,一般实例化到某个父物体下面,方便管理;2.先将预制体放在Resources文件夹下,再使用Resources.Load。一般用第一种方法。说到这里,有一个概念:对象池 强烈推荐使用,节约性能。

预制体也有两种用途:

  1. 物体的继承性:全部实例物体都相同
  2. 物体的重载性:对某一个实例物体进行单独的修改,让其与其他物体产生区别

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游戏开发基础知识(新手必看)相关推荐

  1. Html5 Canvas核心技术(图形,动画,游戏开发)--基础知识

    基础知识 canvas 元素可以说是HTML5元素中最强大的一个,他真正的能力是通过canvas的context对象表现出来的.该环境对象可以从canvas元素身上获得. <body>&l ...

  2. 技术文档写作基础-写作新手必看

    文章目录 1 搞清楚主谓宾 2 不滥用代词.过渡词和标点符号 2.1 不滥用代词和过渡词 2.2 不滥用标点符号 3 多用强势动词,少用形容词和副词 3.1 强势动词和主动语句 3.2 少用形容词和副 ...

  3. 游戏开发基础知识——“庆典活动”的设计

    我们经常可以在游戏中见到各种各样的"仪式与活动",比如召唤强大的生物基本上都需要通过专属的"召唤仪式",安抚战争中阵亡将士的亡魂会有祭奠仪式,某一阵营的军队在出 ...

  4. react方法返回html_React全家桶之React基础(推荐新手必看)

    学习目标 安装create-react-app脚手架 熟练React基础语法 掌握JSX语法 掌握setState 掌握React生命周期 掌握props传递参数 掌握React组件通信 资源 rea ...

  5. Unity游戏开发工程师 知识图谱

    三.Unity学前 1.C#基础 1.1.数据类型 值类型     引用类型     指针类型     装箱与拆箱 1.2.变量 定义     初始化 1.3.常量 定义     引用 1.4.运算符 ...

  6. hualinux java 1.17:java开发规范(新手必看)

    有不少java初学者都不知道java开发规范的,所以网上找了一个国内电商算是权威的java开发手册 国内最大的电商就是淘宝了,我们向老大学习. 根据<阿里巴巴Java开发手册>中" ...

  7. 【Unity游戏开发基础】如何在游戏菜单中实现下拉列表选择画面质量

    [背景] 上一篇我们介绍了如何在菜单中创建调节音量大小的滚动条,现在我再来介绍一个游戏菜单中的常用设置,也就是下拉列表选择画面质量的功能如何实现. [步骤] 首先,在菜单UI Canvas上添加一个下 ...

  8. Unity游戏开发前置知识

    本文适合有一定C#基础的初学者. 设计模式 含义:帮助我们降低对象之间的耦合度常用的方法称为设计模式.使用设计模式是为了可重用代码,让代码更容易被其他人所理解,保证代码可靠性,使代码编制真正工程化,这 ...

  9. 渗透测试之Windows基础(新手必看)

    文章目录 文件目录相关 查看隐藏目录 设置隐藏目录 一些重要的文件/文件夹 服务 端口 注册表 msconfig cmd 常用Dos命令 批处理 文件目录相关 查看隐藏目录 打开我的电脑,点击查看,勾 ...

最新文章

  1. 7-5 编程题:选修课成绩统计问题-hebust (12 分)
  2. 分布式事务是啥?常用的解决方案有哪些?
  3. 使用uicollectionView时需要注意的问题
  4. 血栓清道夫机器人_血栓“清道夫”找到了!木耳排第三,排在第一很多人都并不知道...
  5. js+获取当前域名及跳转、下载操作
  6. Java SE 疑难点记录
  7. 怎么用python爬豆瓣_python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影...
  8. 数组成员是函数java_在Laravel 5.6中调用数组上的成员函数links()
  9. Windows Server 2012 R2服务器集群测试
  10. 图像放缩中最近邻插值和双线性插值的基本原理
  11. java宝马奔驰汽车正在生产代码_Java的三种工厂模式
  12. Nginx图片服务器
  13. rpc error: code = Unimplemented desc =
  14. Android 学习笔记(5)之RxJava解析1
  15. Passenger简介
  16. 上亿海量数据处理方法
  17. LCD液晶显示屏常见类型和接口
  18. 亲测可用,ERDAS IMAGINE 2015安装步骤(附安装包)
  19. 关于历史人物曹操的所有故事
  20. Azure Administrator Associate(AZ-103/AZ-104)或其他Azure认证备考指南

热门文章

  1. 关于约束 和事务、DDL与 DML语句
  2. webform MySQL_asp.net webform使用MySQL数据库
  3. php 跳转 网址_PHP实现页面跳转的多种方法
  4. 暑假第一天之每天一些题系列
  5. 洛可可李建华:在做好产品的道路上,人人都是设计师!
  6. 无限注意妙赞公益纸巾是不是庞氏骗局还是真正的公益物联网经济
  7. 人与人之间最难得的,就一个字!(精辟)
  8. 快递查询API调用,获得物流单号的跟踪信息
  9. java天数计算函数(当前月天数、某月总天数、某月剩余天数)4种方法实现
  10. Linux网络性能测试工具——Iperf