[unity3d]unity中打包成.unity3d格式并实现本地加载出来

简介: 1.首先我们把这段代码拷贝下来,放进工程,不要托给任何物体,就放在那不要理它。 using UnityEngine;using UnityEditor;public class ExportAssetBundles { [MenuItem("...

1.首先我们把这段代码拷贝下来,放进工程,不要托给任何物体,就放在那不要理它。

using UnityEngine;
using UnityEditor;
public class ExportAssetBundles {
    [MenuItem("Export/Build AssetBundle From Selection - Track dependencies")]
    static void ExportResource () {
        // Bring up save panel
        string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
        if (path.Length != 0) {
            // Build the resource file from the active selection.
        Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
            BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
            Selection.objects = selection;
        }
    }
    [MenuItem("Export/Build AssetBundle From Selection - No dependency tracking")]
    static void ExportResourceNoTrack () {
        // Bring up save panel
        string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
        if (path.Length != 0) {
            // Build the resource file from the active selection.
            BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path);
        }
    }
}
我们仔细看一下,其实打包的.unity3d格式的文件也类似assenbundle,只不过是换了个不同的后缀名而已。

当我们创建完,保存好后我,我们会发现菜单的导航栏多了这2项

 

2.我们在选中我们需要打包的预设物体(也即是Prefab)。然后选中上面的第一项进行打包成.unity3d格式的文件。如图

 

3.设置名字,路径等(路径很重要,待会加载会用到。)如图:

4.刷新下。你就会看见这个了:

这个就是我们打包后动态加载的内容。

 

5. 现在我来说下怎么动态加载它吧,直接上代码

using UnityEngine;
using System.Collections;
using System.IO;

public class LoadUnity3d : MonoBehaviour
{

    // Use this for initialization
    void Start()
    {

        StartCoroutine(LoadScene());

    }

    // Update is called once per frame
    void Update()
    {

    }

    IEnumerator LoadScene()
    {
        //文件路径,也就是我们打包的那个
        WWW www = new WWW("file:///" + Application.dataPath + "/Bundles/My Prefab.unity3d");
        yield return www;
        Instantiate(www.assetBundle.mainAsset);
    }
}

6.我们再新建一个空物体,讲我们这个脚本托给他,运行,你就能看见我们的预设也加载出来了。

  效果如下:

 


相关文章
|
9月前
|
缓存 API 图形学
【Unity 3D】AssetBundle打包、上传、加载、卸载详解及演示(附源码)
【Unity 3D】AssetBundle打包、上传、加载、卸载详解及演示(附源码)
380 0
|
Go C语言 Windows
【教程】使用 IDA Pro + 010 Editor 反编译和修改 so 文件,让你轻松玩转逆向工程!
当我们在做逆向工作时,总会遇到需要查看某个 so 文件的情况,甚至可能需要对其进行一些微小的修改。这时候,我们就需要来点反编译的魔法了。
8653 0
【教程】使用 IDA Pro + 010 Editor 反编译和修改 so 文件,让你轻松玩转逆向工程!
|
安全 Ubuntu Linux
Linux :远程访问的 16 个最佳工具(一)
Linux :远程访问的 16 个最佳工具(一)
616 1
|
存储 Web App开发 缓存
网络协议之Tcp、Http全解
TCP头格式和三次握手、四次挥手,HTTP请求报文和响应报文结构。Session和Cookie详解。
392 0
网络协议之Tcp、Http全解
|
机器学习/深度学习 算法 固态存储
【图像配准】基于SSD、SAD、NCC算法实现三维图像立体配准和融合附matlab代码
【图像配准】基于SSD、SAD、NCC算法实现三维图像立体配准和融合附matlab代码
|
4月前
|
存储 关系型数据库 MySQL
docker中查看数据卷信息
【10月更文挑战第11天】
173 2
|
Web App开发 Shell Linux
|
Python
【数学建模】Python+Gurobi——零基础学优化建模线性规划模型(LP)
【数学建模】Python+Gurobi——零基础学优化建模线性规划模型(LP)
915 0
|
Go
【golang】解决:missing go.sum entry for module providing package
【golang】解决:missing go.sum entry for module providing package
1798 0

热门文章

最新文章