UF——程序基础小框架系列
UF——程序基础小框架系列
2023-12-23记:
本系列笔记跟课课程已重置,因此本系列笔记也使用重置版课程重新制作
所有使用旧课程的原笔记已标记为过时,归档到本系列的UF_OLD文档下,不建议使用旧笔记
相比旧课程,新课程结合了更多的课程的知识,前置知识要求更高,不再是只学习Unity前三部曲就能直接学习的了
学习目标
不同游戏、不同公司使用的游戏框架可能都是不一样的,市面上有很多第三方框架(别人设计好的游戏框架)
比如GameFramework、PureMVC 以及 Unity中较新的Dots系统
除此之外,还有一些软件架构思想,比如MVC、ECS等等
我们可以选择别人制作好的第三方框架 (商业项目开发中,前端框架一般很少使用别人的)
可以基于常用的软件架构思想来设计自己的框架 (常见)
也可以完全基于设计模式来设计自己的框架 (常见)
对于想要进入游戏行业的学习者来说, 我们需要对游戏框架有一个基础的认识,要感知到游戏框架的好处,了解设计游戏框架的基本思路
虽然Unity引擎已经帮助我们封装了很多游戏当中的常用功能
但是我们还是可以在它的基础上再次进行设计和封装,将游戏开发 ...
U2L4-0——Vector3向量必备知识
U2L4-0——Vector3向量必备知识
向量相关知识
标量:只有数值大小而没有方向
向量:有数值大小且有方向的矢量,向量有一维,二维,三维等
在数学中,向量(也称为欧几里得向量、几何向量),指具有大小(magnitude)和方向的量。
它可以形象化地表示为带箭头的线段。
箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的量叫做数量(物理学中称标量),数量(或标量)只有大小,没有方向。
向量(数学用语)_百度百科 (baidu.com)
向量在空间中的表示
注意:向量在空间中有无数条可以随意移动
Vector3向量的含义
Vector3类型的变量 可以表示一个点 也可以表示一个向量 具体表示什么 是根据我们的具体需求和逻辑决定
如何在Unity里面得到向量 终点减起点 就可以得到向量 C也可以代表向量 代表的是OC向量 O是坐标系原点
Vector3有两种几何含义:
位置 —— 代表一个点
方向 —— 代表一个方向向量
12345//1、位置 —— 代表一个点print(this.transform.position);//2、方向 —— 代表一个方向 ...
U1L0-3——Unity工作原理
U1L0-3——Unity工作原理
反射机制和游戏场景
Unity中的反射机制
Unity引擎本质是一个软件,使用它时它是处于运行中的软件
我们是在一个运行中的软件里制作游戏的,Unity开发的本质就是在Unity引擎的基础上,利用反射和引擎提供的各种功能,进行的拓展开发
反射的概念
程序正在运行时,可以查看其它程序集或者自身的元数据
一个运行的程序查看本身或者其它程序的元数据的行为就叫做反射
在程序运行时,通过反射可以得到其它程序集或者自己程序集中
代码的各种信息,比如类,函数,变量,对象等等
我们可以实例化它们,执行它们,操作它们
场景中对象的本质是什么
GameObject类对象是Unity引擎提供给我们的,作为场景中所有对象的根本
在游戏场景中出现一个对象,不管是图片、模型、音效、摄像机等等都是依附于GameObject对象的
拟人化记忆:GameObject就是没有剧本的演员
Transform是什么
GameObject对象作为一个出现在舞台(3D场景)中的演员,必须有一个表示自己所在位置的信息
Transform就是一个必不可少的剧本,它的本质就是发了一本表示位置的剧本给 ...
CS4——CSharp进阶系列
CS4——CSharp进阶系列
本部分主要学习 C# 的数据集合,泛型,委托事件,多线程,反射和特性等 C# 进阶功能
(注意,虽然是进阶,但这里的功能在Unity内很多是很常用的知识,因此依然是必修的)
本系列学习内容
简单数据结构类
ArrayList
Stack
Queue
Hashtable
泛型
泛型
泛型约束
常用泛型数据结构类
List<>
Dictionary<>
顺序存储和链式存储
LinkedList<>
泛型栈和队列
委托和事件
委托
事件
匿名函数
Lambda表达式
List排序
协变逆变
多线程
预处理器指令
反射和特性
反射
特性
迭代器
特殊语法
值类型和引用类型补充
排序进阶
插入排序
希尔排序
归并排序
快速排序
堆排序
CS3——CSharp核心系列
CS3——CSharp核心系列
C#四部曲第二部分——系列代号CS3
本部分主要学习 C# 面向对象三大核心特性,包括类及其成员,继承,多态等
本系列学习内容
面向对象的概念
面向对象—封装
类和对象
成员变量和访问修饰符
成员方法
构造函数、析构函数和垃圾回收
成员属性
索引器
静态成员
静态类和静态构造函数
拓展方法
运算符重载
内部类和分部类
面向对象—继承
继承的基本规则
里氏替换原则
继承中的构造函数
万物之父和装箱拆箱
密封类
面向对象—多态
多态vob
抽象类和抽象方法
接口
密封方法
面向对象关联知识点
命名空间
object中的方法
String
StringBuilder
结构体和类的区别
抽象类和接口的区别
额外知识点
多脚本文件
UML类图
面向对象七大原则
CS2——CSharp基础系列
CS2——CSharp基础系列
C#四部曲第二部分——系列代号CS2
本部分主要学习复杂数据数据类型,值类型和引用类型,函数,结构体,简单排序等
本系列学习内容
复杂数据类型概述
枚举
数组
一维数组
二维数组
交错数组
值类型和引用类型
值类型和引用类型在使用和存储上的区别
特殊的引用类型string
函数
函数基础
ref和out
变长参数和参数默认值
函数重载
递归函数
复杂数据类型—结构体
排序初探
冒泡排序
选择排序
U1L0-2——Unity界面基础
U1L0-2——Unity界面基础
Unity界面基础
关于Unity的界面详细说明,可看这里 ——> Unity 的界面 - Unity 手册
Scene和Hierarchy窗口
Scene(场景)和Hierarchy(层级)
场景窗口和层级窗口是息息相关的
层级窗口中看到的内容就是场景窗口中的显示对象
Hierarchy层级窗口
我们可以在Hierarchy窗口中创建或拖入各种游戏对象
比如:模型、光源、图片UI等等内容
层级窗口中显示的,就是一个场景中的所有对象
在此窗口右键,可创建一些简单的3D物体,
并对对象进行一些简单操作(复制,粘贴,克隆等)
在物体前,可以选择是否显示和是否可选。
Scene场景窗口
窗口上方工具条内容
渲染模式
Shaded:着色器模式
Wireframe:网格模式
2D、3D视图切换
光源、音效、特效显示开启
打开或关闭 Scene 视图音频效果
特效按钮和菜单
场景可见性开关
摄像机设置菜单
Gizmos:辅助功能,控制场景上提示图标等
坐标轴
关于Unity中的3D世界坐标 ...
U1L0-1——Unity环境搭建
U1L0-1——Unity环境搭建
Unity引擎
何为游戏引擎
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。
这些系统为游戏设计者提供各种编写游戏所需的各种工具,
其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。
通俗来讲:游戏引擎就是专门做游戏的软件。它提供了很多现成的功能供我们使用让开发游戏事半功倍
游戏引擎对于我们的意义
降低做游戏的门槛……不用学太多的专业知识
提升游戏开发的效率……不用从零开始
如何学习Unity
Unity相当于就是一个游戏开发工具包,我们只要学会使用工具包中的各个工具即可
而使用这些工具的媒介就是我们已经学习完毕的C#程序语言
总结
什么是游戏引擎 —— 开发游戏的软件
游戏引擎对于我们的意义 —— 门槛低,效率高
如何学习游戏引擎 —— 软件操作、公共API、核心系统
Unity就是一个做游戏的工具软件,它可以让开发游戏事半功倍。
我们将通过我们学习的C#程序语言,作为和这个工具沟通的媒介,制作出最终的游戏产品。
软件下载与安装
首先,你需要下载一个Unity Hub——Unity Hu ...
U1L0——Unity环境,界面及工作原理
U1L0——Unity环境,界面及工作原理
本笔记内容主要涉及Unity入门的前三部分,环境搭建,界面基础,工作原理等内容
由于某些历史原因,在最初版的笔记里缺少了对这些知识的记录,因此缺少了这些部分的笔记
通过整理提取他人的笔记,本部分内容得到补全,特别感谢盘子ssa整理的笔记,
为了避免对已有笔记编号的过多修改,该部分内容特开编号U1L0,将所有相关内容记录该文件下
Unity环境搭建
Unity引擎是什么
软件下载和安装
新建工程和工程文件夹
Unity界面基础
Scene和Hierarchy窗口
Game和Project窗口
Inspector和Console窗口
工具栏与父子关系
Unity工作原理
反射机制和游戏场景
预设体和资源包的导入导出
U4——Unity进阶系列
U4——Unity进阶系列
Unity进阶系列的课程繁多且关系并不密切,且由多个课程组合而成,因此该系列最终的笔记形式可能和这个目录所写的差别较大!
Unity四部曲第四部分——系列代号U4
由于进阶分开成课,每个单独的课程会按照U4S1、U4S2这样的形式来作为代号(S编号取决于笔者的学习顺序)
本系列主要涉及
核心系统相关
功能相关
插件相关
优化相关
(预计该系列的内容如下面的目录所示,可能最后会有所调整,最后该系列更新完毕会重新整理,因此该目录为临时的目录)
核心系统
输入系统相关
资源寻址系统 Addressables
物理系统之铰链和布料
粒子系统
光照系统
DOTS(暂时放弃)
Time Line
地形系统
插件相关
Text Mesh Pro
Do Tween
功能相关
视频播放
Scriptable Object
Animation Curve
WWW 和 UnityWebRequest(该部分属于Unity网络开发)
优化相关
何为优化
性能检测窗口
静态批处理
动态批处理
网格合并