Unity3D中实现动态加载Resources目录外的资源

来源:互联网 发布:mac 新建智能文件夹 编辑:程序博客网 时间:2024/06/04 18:10

大家可能都知道在Unity3D中如何实现动态加载资源的方法,就是把资源放在Resources目录下,使用Resources.Load方法即可动态加载资源。但将资源放在Resources目录下有一个问题,那就是打包程序的时候会将Resources目录下的全部文件都加密压缩打进包内,这样如果我们想使用assetbundle方式打小包的话就不行了。之前一直在考虑这个问题,最近在翻看API文档的时候发现有个方法叫Resources.LoadAssetAtPath,这个方法可以让你加载Assets目录下任何一个位置的资源,但只是在编辑器模式下。利用这个方法,我们可以在测试和发布时使用两种不同的策略来加载资源:在编辑器测试环境使用Resources.LoadAssetAtPath方法动态加载资源;在发布环境中使用assetbundle方式加载动态资源。

Unity3D--定义摄像机的投影矩阵 http://www.linuxidc.com/Linux/2013-04/82566.htm

Unity3D 几个默认函数的区分 http://www.linuxidc.com/Linux/2012-07/66012.htm

Unity3D 一个设置方向键移动和空格起跳的脚本 http://www.linuxidc.com/Linux/2012-07/66011.htm

Unity3D 给对象(gameObject)添加脚本代码 http://www.linuxidc.com/Linux/2012-07/66010.htm

下面贴出代码片段:

  // 通过Resources.LoadAtPath方法动态加载Prefab
    private void LoadPrefabByResources()
    {
        Object prefab = Resources.LoadAssetAtPath("Assets/Prefabs/Cube.prefab", typeof(GameObject));
        GameObject cube = (GameObject)Instantiate(prefab);
        cube.transform.parent = transform;
    }

0 0
原创粉丝点击