U4S4L14——根据资源定位信息加载资源
U4S4L14——根据资源定位信息加载资源
本章代码关键字
12IResourceLocation //资源定位信息接口,可通过它获取资源的主键,内部ID,以及资源类型等等消息Addressables.LoadResourceLocationsAsync() //通过资源名或者标签名或者资源名标签名组合加载符合条件的资源定位信息
回顾学过的加载可寻址资源的方式
通过标识类进行加载(指定资源加载)
通过资源名或标签名加载单个资源(动态加载)
1Addressables.LoadAssetAsync<GameObject>("Cube")
通过资源名或标签名或两者组合加载多个资源(动态加载)
12345Addressables.LoadAssetsAsync<GameObject>( new List<string>() { "Cube", "SD" }, (obj) =& ...
U4S4L13——资源更新
U4S4L13——资源更新
资源更新
当项目正式发布后,对于远程加载的资源,
我们可以通过改变资源服务器上的AB包内容来达到更新游戏的目的
Addressables会自动帮助我们判断哪些资源更新了,并加载最新的内容
远程资源包时整包更新还是局部更新,取决于Content Update Restriction内容更新限制参数
可以根据自己项目的实际情况选择具体使用哪种方式即可
一定记住 更新当前版本的小内容 都是通过更新以前版本来生成AB包 而不是重新打包构建
如果要设计重新打包构建了 那就必须重新发布一次应用程序(PC:exe,Android:apk等等)
内容更新限制参数回顾
在组设置中有一个内容更新限制的设置:Content Update Restriction
Can Change Post Release:
可以改变发行后内容,该模式不移动任何资源,如果包中的任何资源发生了更改,则重新构建整个包
Cannot Change Post Release:
无法改变发布后内容,如果包中任何资源已经改变,
则[检查内容更新限制]工具会将其移动到为更新创建的新组中。
在进行 ...
U4S4L12——资源打包(发布)加载
U4S4L12——资源打包(发布)加载
资源打包(发布)加载
一个项目中的资源到底是本地还是远端,根据实际情况而定
对于需要热更新的网络游戏
默认基础资源作为本地资源,大部分资源作为远端资源
对于不需要热更新的单机游戏
所有的资源都是本地资源
具体采用的打包策略根据实际情况来定
编辑器中资源加载的几种方式
Use Asset Database(fastest):
使用资源数据库(最快的)
不用打AB包,直接本地加载资源,主要用于开发功能时
Simulate Groups(advanced):
模拟组(后期)
不用打AB包,通过ResourceManager从资产数据库加载资产,就像通过AB包加载一样
通过引入时间延迟,模拟远程AB包的下载速度和本地AB包加载速度,在开发阶段可以使用这个模式来进行资源加载
Use Existing Build(requires built groups):
正儿八经的加载AB包资源,必须打AB包后使用,会从AB包中加载资源
本地资源发布
本地发布,所有组的加载和发布都选择本地路径即可,设置详见:U4S4L7——Profile 概述窗 ...
U4S4L11——资源打包(发布)加载理论
U4S4L11——资源打包(发布)加载理论
资源打包是指什么?
资源打包是指,将可寻址资源打包到AssetBundle资源绑定包中
以前我们学习AssetBundle时需要我们自己写代码或者通过工具进行打包
现在Addressables将这个过程自动化了,可寻址资源中资源一般以组为单位进行打包,
最终的AB包数量,都是基于资源组决定的
打包好的AB包,我们可以自定义如何使用它们
发布游戏时所有AB包作为原始资源一起打包出去(这样做的目的仅仅是单机游戏为了减小游戏包体)
将AB包放到远端服务器,发布游戏时只打包必备资源(这样做的目的是不仅可以减小包体,还可以进行热更新)
资源打包的模式
之前在讲解Packed Assets配置相关时,有一个打包模式的字段Bundle Mode,我们有三种打包的方式
Pack Together:创建包含组中所有资产的单个包
Pack Separately:为组中的每个类型的资源创建一个包。如精灵图片中的精灵图片被包装在一起
Pack Together by Label:为共享相同标签组合的资产创建一个包
一般情况下,我们都使用第一种模式,按组来进 ...
P2L5——预研立项流程中的立项评估
P2L5——预研立项流程中的立项评估
立项评估的主要因素有哪些
根据我们在预研立项整个流程中得到相关数据,我们便可以进行立项评估。我们主要考虑的因素有:
市场需求和竞争分析 (市场调研阶段)
营销推广计划(市场调研阶段)
法律和版权问题(市场调研 和 需求分析阶段)
预算和资金筹备(需求分析阶段)
开发周期(需求分析阶段)
游戏的可玩性(Demo产出阶段)
技术上(程序、美术)的可行性(Demo产出阶段)
风险评估(立项评估阶段)
等等
预研立项流程的重要性
重视 预研立项 阶段!
重视 预研立项 阶段!
重视 预研立项 阶段!
基于之前的理论知识讲解,相信能够感受到预研立项阶段的重要性
因为这个阶段相当于就是在为团队从宏观上发现问题并解决问题,大大的降低项目风险!
如果有同学认为预研立项阶段有点浪费时间,不如走一步看一步,那么这个想法非常危险!
特别是对于经验不够丰富的团队和个人,如果忽略了预研立项,那么很可能导致后期的项目失败!
如果不做预研立项或者预研立项工作不充分,则可能为项目和团队带来的问题:
市场风险:没有进行市场调研,造成产品无法满足玩家需求,在同类产品面前竞争力不 ...
P2L4——核心玩法Demo产出
P2L4——核心玩法Demo产出
核心玩法Demo产出的主要工作
在预研立项阶段中,核心玩法Demo产出是对于**程序工种最最重要的一个环节。
我们不仅可以产出Demo帮助团队验证项目的可玩性**,还可以帮助团队验证项目在最低配置目标设备上的可行性!
如果不重视内存和性能的瓶颈测试,那么会为团队埋下一颗定时炸弹!
当策划需求超出内存和性能上限时,便是定时炸弹爆炸之时!
若预研立项时不考虑全面,做足准备。待到爆炸之时又无法妥善解决性能瓶颈问题,那么对于项目和团队都会是毁灭性的!
核心玩法Demo的产出需要团队多个工种配合完成,其中主要参与其中的核心工种为:
策划
程序
美术
而不同工种的主要工作也各有不同
策划主要工作
策划根据前期流程中确定游戏类型、市场调研、基本概念产出、需求分析等阶段得到的结果,
基本对游戏核心玩法已经有明确需求,基于这些需求,策划需要:
书写需求策划案(程序、美术)
制作相关功能数据表
配合相似项目演示提出核心玩法需求
验收程序、美术产出,沟通制作修改细节
确定产品运行的目标设备的最低配置要求
等等
主要目的:确定核心玩法的实现规则,确定目标设备最 ...
US2S1L2——矩阵乘法
US2S1L2——矩阵乘法
矩阵和标量的乘法
直接让矩阵(M)中的每一个标量和标量(k)相乘即可
矩阵和矩阵的乘法
判断条件: 左列右行要相等才能相乘
结果矩阵结构: 左行右列
标量相乘的规则: 左行乘右列再相加
矩阵乘法不满足交换律,满足结合律
矩阵和标量的乘法
矩阵(MMM)和标量(kkk)的乘法很简单 直接让矩阵(MMM)中的每一个标量和标量(kkk)相乘即可
kM=Mk=k=k[m11m12m13m21m22m23m31m32m33]=[km11km12km13km21km22km23km31km32km33]kM=Mk=k=
k\begin{bmatrix}
m_{11} & m_{12} & m_{13} \\
m_{21} & m_{22} & m_{23} \\
m_{31} & m_{32} & m_{33} \\
\end{bmatrix}=
\begin{bmatrix}
km_{11} & km_{12} & km_{13} \\
km_{21} & ...
US2S1L1——矩阵的基本概念
US2S1L1——矩阵的基本概念
矩阵
矩阵(Matrix)是线性代数中的一个核心概念和重要工具
通过矩阵,我们可以方便的进行向量的相关计算
也可以更好的理解和解决线性代数中的各种问题
简而言之:矩阵是一种用来表示和处理数据的数学工具,它可以帮助我们有效的管理和计算大量的数据
矩阵的数学表示
矩阵(Matrix)可以通过 方括号内的数值表格来表示,比如:
[461][132][132567][234345783]\begin{bmatrix}
4 & 6 & 1
\end{bmatrix}
\quad
\begin{bmatrix}
1 \\
3 \\
2 \\
\end{bmatrix}
\quad
\begin{bmatrix}
1 & 3 & 2 \\
5 & 6 & 7 \\
\end{bmatrix}
\quad
\begin{bmatrix}
2 & 3 & 4 \\
3 & 4 & 5 \\
7 & 8 & 3 \\
\end{bmatrix}
[4 ...
US2S1——线性代数及坐标空间变换
US2S1——线性代数及坐标空间变换
线性代数
线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。
向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;
通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。
由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。
线性代数(数学分支学科)_百度百科 (baidu.com)
线性代数是数学的一个分支学科,它是一门研究向量和它们之间关系的数学学科
我们可以把向量想象成有大小和方向的箭头,线性代数主要研究如何使用这些箭头进行加减乘除运算,以及它们之间的变换规则。
简而言之:线性代数是一门研究向量和变换的数学学科
强烈推荐配合学习以加深理解:【官方双语/合集】线性代数的本质 - 系列合集_哔哩哔哩_bilibili
本系列学习内容
矩阵的基本概念
矩阵乘法
特殊矩阵(重要特殊矩阵:逆矩阵,正交矩阵,行矩阵和列矩阵)
平移、缩放、旋转变换
矩阵的几何意义(表示变换,包括缩 ...
US2——Shader必备基础
US2——Shader必备基础
如何学习Shader开发
学习Shader开发,主要要学习:数学相关知识、语法相关知识、着色器开发相关知识 等
学习了这些知识后,我们就能按照需求去处理渲染数据,最终才能在屏幕上显示出符合需求的图像效果
本系列主要涉及:
数学基础(Mathf,三角函数,坐标系,向量)
详见Unity基础——3D数学所有知识点
线性代数及坐标空间变换
ShaderLab语法
CG语法