zoukankan      html  css  js  c++  java
  • Unity3D研究院之加密Assetbundle不占内存(一百零五)

    https://www.xuanyusong.com/archives/4607

    AssetBundle.LoadFromMemory基本上是无法在手机上用的,因为要多占一份内存,所以大多Unity项目都不进行资源加密。
    Unity2017.2提供了一个新的API AssetBundle.LoadFromStream,通过名字就可以知道它是流加载,那么就不会像AssetBundle.LoadFromMemory那样多占一份很大的内存了。

    打包Assetbundle的同时生成加密文件的两个文件分别加载它。

    myab.unity3d
    encypt_myab.unity3d

    这里测试的Assetbundle一共有20M, 使用LZ4压缩格式。

    加密和解密我这里随便写个简单的异或 ^ 。后面也可以用一些更好的算法,总之加密可以慢,但是解密一定要快。

    界面上放两个Image 分别加载它。

    如下图所示,在iPhone7上,基本上加载时间差不多。

    Unity3D研究院之加密Assetbundle不占内存(一百零五) - 雨松MOMO程序研究院 - 1
    加密以后资源就无法被打开了。
    Unity3D研究院之加密Assetbundle不占内存(一百零五) - 雨松MOMO程序研究院 - 2

    注意:Android下的streamingAssets目录不能使用,因为android下是放在jar里并不是文件系统。一定要用的话需要拷贝到 Application.persistentDataPath下。

  • 相关阅读:
    作为一枚第二天上班的小小.net程序员(技术宅的那种)很迷茫哦,第一个随笔
    清除NT Kernel & System占用80端口
    case then 的用法 貌似case then不支持别名
    syscomments 可以用来查找所有关于库中用到的某个关键词的所有相关脚本
    查看系统表存储过程名称SELECT *,OBJECT_NAME(id) FROM syscomments
    毫秒级百万数据分页存储过程
    使用sp_configure启用 'Ad Hoc Distributed Queries'
    使用 ServKit(PHPnow) 搭建 PHP 环境[图]
    apache+php+mysql常见集成环境安装包
    Quartz.NET作业调度框架详解
  • 原文地址:https://www.cnblogs.com/nafio/p/11811287.html
Copyright © 2011-2022 走看看