Unity打包AssetBundle并加密

本文记录了作者在Unity中实现AssetBundle打包和加密的过程,成功打包并解析出单个模型,但仍对部分细节如打包文件的用途和Aes加密不甚了解。文中提到了三个关键脚本:打包、加密和解析,但具体代码未展示。
摘要由CSDN通过智能技术生成

一直想研究打包assetbundle,但是一直没机会用,在网上看到的零零碎碎的片段也看不懂,今天终于抽空实验成功了,但是现在虽然成功打包并解析出了单个模型,但是我现在还是不明白怎么去用。
在打包过程中,还有两部分不慎明白,一就是打包出来的文件,有很多不知道都是干啥用的;二就是Aes加密还不太懂。
先把目前的研究成果记录一下,总共分为三个脚本,打包,加密,解析。下边是三个脚本的具体代码。
打包:

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using UnityEditor;
using UnityEngine;

public class CreateAssetBundles
{
   

    private static string AssetBundlesPath = Path.Combine(Application.streamingAssetsPath, "AssetBundle");

    [MenuItem("Assets/自定义命令/生成AssetBundles")]
    private static void BuildAllAssetBundle()
    {
   
        SetSelectFolderFileBundleName();
        BuildAssetBundlesWindows64();

    }

    /// <summary>
    /// 打包assetbundle
    /// </summary>
    private static void BuildAssetBundlesWindows64()
    {
   
        string path = Path.Combine(AssetBundlesPath, "Windows64");
        BuildAssetBundles(path, BuildTarget.StandaloneWindows64);
        DeleteFile(path);
        AssetBundlesEncypt(path);
        AssetDatabase.Refresh();
    }

    /// <summary>
    /// 删除多余文件
    /// </summary>
    /// <param name="_path"></param>
    private static void DeleteFile(string _path)
    {
   
        if (Directory.Exists(_path))
        {
   
            DirectoryInfo dirInfo = new DirectoryInfo(_path);
            FileInfo[] infos = dirInfo.GetFiles();
            foreach (var v in infos)
            {
   
                if (v.Name.EndsWith(".manifest") || v.Name.EndsWith(".meta") || v.Name.StartsWith("AssetBundle") || v.Name.StartsWith("Windows64") || v.Name.StartsWith("WebGL"))
                {
   
                    var vfile = Path.Combine(_path, v.Name)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值