博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02加载AssetBundle资源
阅读量:6680 次
发布时间:2019-06-25

本文共 2171 字,大约阅读时间需要 7 分钟。

加载方式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在加载AssetBundle时,要给出AssetBundle文件路径,Unity有很多特殊路径,这里列出部分与加载相关的路径。
Resources
  Resources文件可以在根目录下,也可以在子目录下,只要叫Resources就好。Resources目录下所有资源将被打包进游戏存放资源的archive中,Resources目录在应用中也就不复存在,但加载时仍使用曾在Resource下的路径。
  该目录下所有资源会被压缩,只读不可写,使用Resources.Load()接口加载。

StreamingAssetsPath

  StreamingAssets目录必须在Assets根目录下,该目录下所有资源也会被打包到游戏里,不同于Resources目录,该目录下的资源不会进行压缩,同样是只读不可写的。Unity基本也没有提供从该路径下直接读取资源的方法,只有www可以加载audioClip、texture和二进制文件。但Unity提供了从该目录加载AssetBundle的方法,我们一般直接在这个目录下存放AssetBundle文件。可以通过Application.streamingAssetsPath访问该路径。
  
  各平台StreamingAssets路径打印:
  Win:E:/myProj/Assets/StreamingAssets
  Mac : /myProj/Assets/StreamingAssets
  Andorid:jar:file:///data/app/com.myCompany.myProj-1/base.apk!/assets
  iOS: /var/containers/Application/E5543D66-83F3-476D-8A8F-49D5332B3763/myProj.app/Data/Raw

PersistentDataPath

  该目录为应用程序沙盒目录,应用程序安装后才会出现。该目录独特之处在于是可写的,所以我们一般将下载的AssetBundle存放于此。使用Application.persistentDataPath访问。
  各平台PersistentDataPath路径打印:
  Win:C:/Users/lodypig/Appdata/LocalLow/myCompany/myProj
  Mac : /Users/lodypig/Library/Application Support/myCompany/myProj
  Andorid:/data/data/com.myCompany.myProj/files
  iOS: /var/mobile/Containers/Data/Appliction/A112252D-6B0E-459Z-9D49-CD3EAC6D47D/Documents

DataPath

  应用程序目录,即Assets目录。使用Appliction.dataPath访问。
  各平台DataPath路径:
  Win:E:/myProj/Assets
  Mac : /myProj/Assets/
  Andorid:/data/app/com.myCompany.myProj-1/base.apk!

using System.IO;using UnityEngine;public class LoadAssetBundle : MonoBehaviour {    void Start()    {        //从本地加载的指定的目录中的AssetBundle        //从AssetBundle中取出资源        //实例化        //StreamingAssets目录必须在Assets根目录下,该目录下所有资源也会被打包到游戏里        //不同于Resources目录,该目录下的资源不会进行压缩,同样是只读不可写的        //Unity基本也没有提供从该路径下直接读取资源的方法,只有www可以加载audioClip、texture和二进制文件        //从该目录加载AssetBundle的方法,我们一般直接在这个目录下存放AssetBundle文件。        //可以通过Application.streamingAssetsPath访问该路径。         AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath+ "/scene/wall.unity3d");        if (ab == null)        {            Debug.Log("Failed to load AssetBundle!");            return;        }        GameObject item = ab.LoadAsset
("wall"); GameObject go = GameObject.Instantiate(item); }}

在这里插入图片描述

转载地址:http://xjrxo.baihongyu.com/

你可能感兴趣的文章
tomcat调优方案
查看>>
Cisco2950 2960 交换机基本配置命令
查看>>
IE打印控件
查看>>
Java简单实现固定长度队列
查看>>
jenkins学习
查看>>
Oracle中两表关联更新
查看>>
定制 Kali Linux Live USB 的另一种方法
查看>>
OpenCV在ubuntu下的编译
查看>>
解决@Override错误
查看>>
Android插入物理键盘的同时显示软键盘
查看>>
tmux使用
查看>>
简单的spring-data集成mongoDB项目,实现crud的功能
查看>>
kernel和iptables补丁创建和安装
查看>>
mongodb 备份和还原
查看>>
LVS基本介绍及NAT模型配置示例
查看>>
关于开源驰骋工作流引擎ccbpm对bpmn2.0的支持
查看>>
关于通过linux crontab+xtrabackup自动化备份mysql数据的说明
查看>>
mysql中Table is read only的解决
查看>>
CentOS7 搭建 zabbix-server 3.0.10
查看>>
Android四大基本组件介绍与生命周期
查看>>