U4S4L17——自定义更新目录和下载AB包
U4S4L17——自定义更新目录和下载AB包
本章代码关键字
1234Addressables.UpdateCatalogs() //更新目录,如果不传入由CheckForCatalogUpdates()获取的需要更新的目录字符串,则自动检查目录是否有更新Addressables.CheckForCatalogUpdates() //检查哪些目录需要更新,并将需要更新的目录字符串加载出来Addressables.GetDownloadSizeAsync() //传入要加载的资源的标签或者资源名,加载其对应的包的大小(字节数)Addressables.DownloadDependenciesAsync() //传入要加载的资源的标签或者资源名,提前加载其对应的包
目录的作用
目录文件的本质是Json文件和一个Hash文件(只存在于远端打包中)
其中记录的主要内容有:
Json文件中记录的是:
加载AB包、图集、资源、场景、实例化对象所用的脚本(会通过反射去加载他们来使用)
AB包中所有资源类型对应的类(会 ...
U4S4L16——关于Async Operation Handle
U4S4L16——关于Async Operation Handle
本章代码关键字
12345asyncOperationHandle<>.GetDownloadStatus() //获取当前下载状态的结构体DownloadStatus //加载状态结构体,获取到加载进度,加载字节数,总字节数AsyncOperationHandle //无类型的异步操作处理类,AsyncOperationHandle<>可隐式转换为它,也可以转换回去asyncOperationHandle.Convert<>() //将无类型的异步操作处理类转换为有类型的asyncOperationHandle<>.WaitForCompletion() //强制同步加载资源
获取加载进度
我们通过调用AsyncOperationHandle<>.GetDownloadStatus()来获取当前打印状态,返回的是Do ...
U4S4L15——异步加载的几种使用方式
U4S4L15——异步加载的几种使用方式
回顾目前动态异步加载的使用方式
12345678910var handle = Addressables.LoadAssetAsync<GameObject>("Cube");//通过事件监听的方式 结束时使用资源handle.Completed += (obj) =>{ if (handle.Status == AsyncOperationStatus.Succeeded) { print("事件创建对象"); Instantiate(obj.Result); }};
3种使用异步加载资源的方式
事件监听(目前学习过的)
协同程序(协程相关知识详见:协同程序)
异步函数(async 和 await,详见:异步方法)
通过协程使用异步加载
12345678910111213141516171819202122AsyncOperationHandle<GameObject> handl ...
P2L12——【git版本管理】Git创建与删除分支,合并分支
P2L12——【git版本管理】Git创建与删除分支,合并分支
git分支功能
Git当中提供的分支功能,相当于就是为开发过程添加一条新的开发路径。如图所示
举个例子来说明这张图,当我们在项目开发后期时,项目可能会被多个发行商代理,
不同发行商可能会提一些商业活动需求,比如在游戏中加入一些充值活动,一些不同的充值功能。
那么此时我们完全可以在最终版本处进行分支,不同的分支开发不同的功能需求,相互不影响。甚至在后期也可以将多个分支进行合并。
如何创建新的分支
分支切换
我们首先在该分支中加入一个开发节点,在工程文件夹中加入一个文件,并点击记录分支按钮(Commit到分支)
这时再切换分支,你可以看到不同分支中的开发节点是不同的了(因为Android分支是基于之前的Main分支的,所以前面部分是相同的节点)
发布分支
如果你想要将新的分支上传的Github云端,以便分享给它人,只需要切换到对应节点,然后点击推送即可
预览拉取请求,我们先按下不表,忽略这个按钮
此时来到Github主页中,查看对应的项目,就可以在Github上看到对 ...
P2L11——【git版本管理】汉化 Github Desktop
P2L11——【git版本管理】汉化 Github Desktop
汉化 Github Desktop
为了方便英文不好的同学在使用Git Desktop时更加方便,可以尝试将其汉化
该项目在Github开源:robotze/GithubDesktopZhTool: Github Desktop 汉化工具 支持 Windows Mac Linux
下载Release的最新版即可
解压后得到
双击运行后,点击汉化
点击确定
会自动打开Git DeskTop
汉化成功!
注意:如果你的版本较新,无法正常汉化,需要到其Github上下载最新的汉化包
取消汉化
如果想要取消汉化,打开汉化工具,点击还原即可
P2L10——【git版本管理】Git创建新的代码仓库,以及将已有项目存储为库
P2L10——【git版本管理】Git创建新的代码仓库,以及将已有项目存储为库
Github Desktop 创建新的代码仓库
1.认识界面
2.创建新的存储仓库
点击从本地磁盘上创建新存储库
在弹出窗口中填写关键信息
我的填写如下,路径可以自己找一个磁盘新建一个文件夹用于测试
点击Create repository 创建仓库后,创建成功,界面变为如下图所示
我们可以点击窗口中的在资源管理器中查看存储库文件按钮
便可以打开仓库所在位置
此时,我们便可以在这个文件夹中创建Unity工程,或添加想要被版本控制的文件了
3.为新建仓库添加文件,上传版本节点
我们在次路径中创建一个测试用的文本文件,里面随便编辑一些内容
回到Git窗口中
点击Commit to main 提交到主分支后,窗口刷新,表示当前版本没有修改
切换到History版本历史页签
4. 同步到远端GitHub仓库中
注意:做了以上操作,这些版本信息只是记录在了本地,并没有同步到远端Github仓库
同步到Github仓库
点击后弹出窗口
点 ...
US2S1L11——坐标空间的变换规则
US2S1L11——坐标空间的变换规则
坐标空间的组成
想要定义一个坐标空间,我们必须要具备以下两点:
坐标原点位置
3个坐标轴的方向(三维坐标系中)
有了这两点信息,我们就能够决定一个坐标空间了
坐标空间之间的关系
在Unity中,世界坐标空间相当于我们的基础坐标空间,Unity中其他的大部分坐标空间,都是世界坐标空间的子坐标空间。
这些子坐标空间的原点和轴向的相关表示数据,都是基于世界坐标空间的。
因此,在Unity中坐标空间之间会形成一种层级结构,大部分坐标空间都是另一个坐标空间的子空间。
所以,Unity中的坐标空间的变换实际上就是父空间和子空间之间对点或向量进行变换。
坐标空间的变换矩阵
从子坐标空间到父坐标空间的变换矩阵:
Ms−f=(∣∣∣∣XsYsZsOs∣∣∣∣0001)M_{s-f} = \begin{pmatrix}
| & | & | & | \\
X_s & Y_s & Z_s & O_s \\
| & | & | & | \\
0 & ...
US2S1L10——坐标空间的变换
US2S1L10——坐标空间的变换
重要知识回顾
渲染管线(流水线)的基本概念是将数据分阶段的变为屏幕图像的过程
在渲染管线中的顶点阶段和光栅化阶段会对数据进行处理
其中最重要的一部分数据处理工作就是坐标转换、顶点变换等等
线性代数中的矩阵相关知识,主要就是帮助我们来完成变换的
我们可以通过平移 、 旋转 、 缩放矩阵来完成对点或向量的变换
坐标空间
坐标空间是一个用于描述和定位物体位置的数学概念。
它一般由一个基础参照物(原点)和轴线(相互垂直的轴线)组成。
常见的坐标空间包括二维平面坐标空间和三维空间
在三维空间中,通常决定一个原点 (0,0,0)(0,0,0)(0,0,0) 并使用三个坐标轴(通常是x轴、y轴和z轴)来描述点的位置。
例如,在三维坐标空间中,一个点可以通过其x、y和z坐标来确定其在空间中的位置。
关于Unity中坐标系的知识点,我们在Unity基础中的坐标系中已经学习过了
为什么有很多不同的坐标空间
我们在Unity基础中讲解的坐标系相关知识中提到了:
世界坐标系
物体坐标系
屏幕坐标系
等等
这些就是各种不同的坐标空间,之所以存在这么多不同的坐标空间 ...
US2S1L9——复合运算
US2S1L9——复合运算
回顾各个变换矩阵
平移矩阵
[100tx010ty001tz0001]\begin{bmatrix}
1 & 0 & 0 & tx \\
0 & 1 & 0 & ty \\
0 & 0 & 1 & tz \\
0 & 0 & 0 & 1
\end{bmatrix}
100001000010txtytz1
旋转矩阵
绕 x 轴旋转 β 度,旋转矩阵为:
[10000cosβ−sinβ00sinβcosβ00001]\begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & cos\beta & -sin\beta & 0 \\
0 & sin\beta & cos\beta & 0 \\
0 & 0 & 0 & 1 \\
\end{bmatrix}
10000cosβsinβ00−sinβcosβ0 ...
US2S1L8——缩放矩阵
US2S1L8——缩放矩阵
4×44 \times 44×4 矩阵的基本构成规则为:
[M11M12M13txM21M22M23tyM31M32M23tz0001]\begin{bmatrix}
M_{11} & M_{12} & M_{13} & tx \\
M_{21} & M_{22} & M_{23} & ty \\
M_{31} & M_{32} & M_{23} & tz \\
0 & 0 & 0 & 1
\end{bmatrix}
M11M21M310M12M22M320M13M23M230txtytz1
矩阵的 M3×3M^{3 \times 3}M3×3 部分用于表示旋转和缩放变换
矩阵的 t3×1t^{3 \times 1}t3×1 部分用于表示平移
矩阵的 01×30^{1\times3}01×3 部分始终为零矩阵
矩阵的 右下角元素 始终为 1
缩放矩阵
缩放矩阵主要就是对向量或点进行缩放操作,它可以用于改变 ...