当前位置: 首页 > news >正文

沈阳核工业建设工程总公司网站安徽360优化

沈阳核工业建设工程总公司网站,安徽360优化,泰安吧贴吧,网站秒收录怎么做的Lua的学习 table.concat(tb,";") 如果表里带表,则不能拼接,表里带nil也不能,都会报错 true和false也不可以,数字和字符串可以 if要和一个end配对,所以 if a>b then return true end end 两个end …

Lua的学习

table.concat(tb,";")

如果表里带表,则不能拼接,表里带nil也不能,都会报错

true和false也不可以,数字和字符串可以

if要和一个end配对,所以

if a>b then

return true

end

end

两个end

ctrl+b运行脚本

函数在表外部声明的时候要带表的名字.函数名

带:声明函数的时候,在函数内部可以用self表示自己,从而调用自己这个表的成员

不存在表内用的就是自己里面的变量,一样要.出来确认

lua 的表不可以.访问数字

这种pair遍历写法看上去只遍历值,实际上还是拿了键放下划线了

不删除,直接访问没有的那个键,也是会得到nil

lua中字典的添加和修改

直接赋值,和直接修改

pairs不按正常顺序的最后会统一去找

这样空的索引区域会设置成nil

#aa会输出6(这里只跳一格,还可以不断)

lua可以自定义索引,这里的两个print都可以打印出来,1,4

lua中的数组下标从一开始

变长参数先用表接{},再for#表使用

这里改变了x的生命周期,一直存在于function(y)里面

nil不支持..拼接

true flase不能..拼接

and or not

不等于~=

取余对小数也可以取余

各个不同的类型都可以用..连接

打包减少硬盘资源占用

打包后可以减少的硬盘占用,取决于以下几个因素:


1. 资源的重复引用

在未打包的情况下,Unity 项目中有很多资源可能会被多个场景或 Prefab 反复引用,比如材质、纹理、模型等。这些资源存储在磁盘上的多个文件中,各自占用独立的空间。

打包后的优化:

  • Unity 的 AssetBundle 或 Addressable 系统会对这些重复的资源进行分析,提取到共享的 AssetBundle 中。
  • 磁盘上的重复数据大幅减少。

占用减少程度:

  • 效果显著,尤其是大规模项目中,重复资源较多时,可能减少 10%-30% 的硬盘占用。

2. 文件格式的优化

Unity 项目中很多原始资源(如 PNG、JPG、FBX)都保持未压缩或源格式存储,打包时会进行格式转换和压缩处理。例如:

  • 纹理资源:可能被压缩为 ETC、DXT 等格式。
  • 模型资源:只保存运行时必要的顶点、法线数据,移除编辑器使用的信息。
  • 声音资源:通常会压缩为 ADPCM 或其他高效编码格式。

占用减少程度:

  • 纹理和声音资源的压缩会带来显著效果,可能减少 20%-50% 的空间。
  • 模型资源通常减少较少,约 10%-20%。

3. 剔除未使用的资源

Unity 在打包时会剔除未被引用的资源,这些资源在开发时可能仍保存在 Assets 文件夹中,但不会包含在最终的打包文件中。

占用减少程度:

  • 如果你的项目中有大量未使用的资源,可能减少 10%-40% 的硬盘占用。

4. 压缩级别

打包后的文件通常会使用压缩算法进一步优化磁盘占用。常见的压缩方式包括:

  • LZ4 压缩(更快加载,稍大文件体积)。
  • LZMA 压缩(更小文件体积,但加载速度稍慢)。

占用减少程度:

  • 如果启用 LZMA 压缩,打包文件大小可能减少 30%-50%

综合实际案例分析

假设一个项目如下:

  • 原始项目文件夹大小:10 GB
  • 包含大量纹理、声音和模型资源。
  • 纹理占用 5 GB,其中 3 GB 可压缩。
  • 声音占用 2 GB,50% 可压缩。
  • 1 GB 的未使用资源。

打包后可能的结果:

  1. 纹理压缩:3 GB 压缩至 1 GB,节省 2 GB。
  2. 声音压缩:2 GB 压缩至 1 GB,节省 1 GB。
  3. 未使用资源剔除:减少 1 GB。
  4. 文件重复引用优化:减少约 1 GB。
  5. 压缩:最终减少约 20%。

最终打包后大小:
10 GB 原始文件 -> 约 5-6 GB


如何进一步优化打包占用

  1. 纹理压缩设置:在 Texture Import Settings 中,选择适合目标平台的压缩格式(如 ASTC、ETC2)。
  2. 声音格式优化:将声音资源压缩为高效格式(如 ADPCM)。
  3. 清理未使用资源:使用 Unity 的 Asset Usage 检查工具,找出未被引用的资源并移除。
  4. 分包设计:将资源划分为按需加载的多个 AssetBundle,避免一次性加载过多资源。

依赖

在 Unity 中,依赖关系通常指的是一个资源(如场景、Prefab)引用了另一个资源(如材质、纹理、脚本等)。如果一个资源依赖另一个资源,那么在加载前者时,后者必须先加载到内存中。

 依赖,简单来说,是指一个资源在使用时需要另一个资源的支持。

想象你要玩一个游戏,这个游戏的关卡是 Level1,而这个关卡中有一个大炮模型 CannonPrefab

  • 如果把 Level1 比喻成一本书,CannonPrefab 就是书里的插图。
  • 当你打开书时,插图必须已经准备好,否则书里的某些内容就没法展示了。

这就意味着,Level1 依赖CannonPrefab

假设 Level1Level2 都用到了 CannonPrefab

  • 如果没有依赖管理:
    Unity 会把 CannonPrefab 的完整数据分别放进 Level1Level2 的 AB 包中,导致文件变大、加载时占用内存多。

  • 如果有依赖管理:
    Unity 会把 CannonPrefab 提取到一个独立的 CommonAssets 包中,Level1Level2 的 AB 包中只存放对 CannonPrefab 的引用。

加载顺序是:

  1. 加载 CommonAssets 包,加载 CannonPrefab
  2. 加载 Level1Level2,并使用已经加载的 CannonPrefab

AssetBundle 是 Unity 中的资源打包机制,依赖是它的重要部分:

  • Unity 会分析每个 AB 包中的资源,检测哪些资源被多个 AB 包使用。
  • 这些共享资源会被提取到独立的 AB 包中。
  • 生成的 .manifest 文件会记录每个 AB 包的依赖关系。
using UnityEditor;public class AssetBundleBuilder
{[MenuItem("Build/Build AssetBundles")]static void BuildAllAssetBundles(){// 创建 AB 包的输出路径string assetBundleDirectory = "Assets/AssetBundles";if (!System.IO.Directory.Exists(assetBundleDirectory)){System.IO.Directory.CreateDirectory(assetBundleDirectory);}// 设置独立打包规则AssetBundleBuild[] buildMap = new AssetBundleBuild[3];// Level1 打包buildMap[0].assetBundleName = "level1";buildMap[0].assetNames = new string[] { "Assets/Scenes/Level1.unity" };// Level2 打包buildMap[1].assetBundleName = "level2";buildMap[1].assetNames = new string[] { "Assets/Scenes/Level2.unity" };// CannonPrefab 打包为公共资源buildMap[2].assetBundleName = "commonassets";buildMap[2].assetNames = new string[] { "Assets/Prefabs/CannonPrefab.prefab" };// 构建 AB 包BuildPipeline.BuildAssetBundles(assetBundleDirectory, buildMap, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);}
}

装Lua之后会一起安装一个东西

cmd去check out,print Lua

公司一般会帮把IDE环境搭好,所以如果是要学习Lua的话,IDE可以任意

PlayerPrefs 数据存储路径

Windows
  • 编辑器环境
    • 路径:%APPDATA%\Unity\EditorPrefs
  • Build 后的游戏
    • 路径:%USERPROFILE%\AppData\LocalLow\<CompanyName>\<ProductName>\
      <CompanyName><ProductName>PlayerSettings 中设置的公司名称和产品名称。)

AB 包(AssetBundle

使用需要在unity里先添加assetbundle browser插件(pack Manager那)

减小初始包体积

  • 通过将部分资源分离成 AB 包,玩家首次下载时只需要获取核心内容,其他资源可以在需要时下载。
  • 例如:一款游戏有多个关卡,玩家只需下载第一个关卡的资源,后续关卡可以按需加载。

支持热更新

  • 更新游戏时,只需替换 AB 包而无需重新打包整个游戏,大大减少更新包的大小。
  • 例如:网游中增加新角色时,只需下载新角色的资源包,而不必重新下载整个客户端。

跨平台共享

  • 将资源打包为 AB 包后,不同平台可以复用相同的资源,而不需要为每个平台生成独立的资源版本。

先为要打ab包的资源指定包名

编写脚本,在运行时加载 AB 包中的图片并显示在场景中。 

using UnityEngine;
using UnityEngine.UI; // 如果需要将图片显示在 UI 上public class LoadAssetBundle : MonoBehaviour
{public string bundlePath = "Assets/StreamingAssets/example_bundle"; // AB 包路径public string assetName = "example_texture"; // 图片资源名称public RawImage targetImage; // 场景中的 UI 元素,用于显示图片void Start(){LoadTextureFromBundle();}void LoadTextureFromBundle(){// 加载 AB 包AssetBundle bundle = AssetBundle.LoadFromFile(bundlePath);if (bundle == null){Debug.LogError("Failed to load AssetBundle!");return;}// 加载资源Texture2D texture = bundle.LoadAsset<Texture2D>(assetName);if (texture != null){targetImage.texture = texture; // 显示图片在 UI 上}// 卸载 AB 包,释放内存bundle.Unload(false);}
}

图片的名字(assetName)仍然是它在项目中的原始名字

AB 包并不会改变资源本身的名称,而是会将资源的路径和名称记录在 AB 包的元数据中

ab包的资源依赖

unload单个ab包的资源,

作用是卸载所有的ab包资源,后面的true和false则决定要不要把ab包加载出的资源也一起删了

最好是填false

比如过场景的时候使用卸载

转热更新

转进阶

everything's gonna be fine

http://www.hkea.cn/news/775738/

相关文章:

  • 在网盘上怎么做自己的网站整站优化推广
  • php建设网站实训百度搜索引擎的总结
  • 怎么在360自己做网站重庆seo排名收费
  • 外贸网站建设浩森宇特教育培训报名
  • 网站开发价目表深圳市前十的互联网推广公司
  • php做视频直播网站关键词竞价广告
  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点