zoukankan      html  css  js  c++  java
  • AssesBuddle的使用

    首先:编写一个处理AssetsBuddle(打包资源的按钮)的编辑器按钮;脚本如下:

    Using UnityEngine;

    Using System.Collections;

    Using UnityEditor;//注意  要引入编辑器命名空间

    Public class AssetBundleBuilder:Editor

    {

    [MenuItem("AB/Build")]

    public static void Build()

    {

    string path = Application.streamingAssetsPath;

    BuildPipeline.BuildAssetBundles(path);//将资源打包到这个路径下

    }

    }

    然后我们来测试一下:

    1:将你要打包的资源设置为预设体

    2;将下面的脚本挂在到摄像机(灯光上也行,运行场景可以直接加载就行)上

    using UnityEngine;

    using System.Collections;

    public class Test:MonoBehaviour

    {

        void Start()

    {

    StartCoroutine(LoadAB());//开启携程

    }

    IEnumerator LoadAB()

    {

    string path = "file://"+Application.streamingAssetsPath+"/leval";//打包后资源的路径

    WWW www = new WWW(path);//通过携程加载资源,放到www里

    yied return www;//等待加载完毕

    AssetBundle ab = www.assetBundle;// 将打包后的资源放到 AssetBundle里面

    GameObject obj = ab.LoadAsset("打包的资源名字")  as GameObject;//加载ab中的一个预设体,占用预设体内存

    Instantiate(obj);//加载物体占用实际内存

    //关闭ab,清除无用内存(释放AssetBundle) false释放当前资源,true释放所有资源

    ab.Unload(false);

    }

    }

    通过以上操作  就可以删掉你原来的资源,Assets里面只留下Assets和Editor(存放第一个AssetsBundleBuilder脚本)就可以啦

    运行场景可以通过AssetsBundle加载相应导报的资源到场景中;

  • 相关阅读:
    PHP之简单实现MVC框架
    socket泄露的问题
    gdb 调试多线程
    MMAP和DIRECT IO区别
    三年回首:C基础
    定时器管理:nginx的红黑树和libevent的堆
    strsep和strtok_r替代strtok
    缓存穿透和缓存失效
    mmap为什么比read/write快(兼论buffercache和pagecache)
    B+Tree和MySQL索引分析
  • 原文地址:https://www.cnblogs.com/ningyongbin/p/5974100.html
Copyright © 2011-2022 走看看