AssetBundle资源既可以留在本地,也可以存在服务器上不占用安装包体积,这篇文章是写本地加载的。 一:加载AB 资源到内存 AssetBundle ab = AssetBundle.LoadFromFile(“AB 包完整路径”) 从一个完整的路径位置加载AB 资源包到内存,返回一个AssetBundle 对象. 二:从AB 资源中获取资源 T resName = ab.LoadAsset(“游戏资源名称”) 通过获取到的AssetBundle 对象的“加载资源”方法,从AssetBundle 对象内获取对应的游戏物体资源,并且返回该资源. 代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class load : MonoBehaviour
{
void Start ()
{
string str = Application.dataPath + “/AssetBundless/player.ab”;

    //AssetBundle ab = AssetBundle.LoadFromFile("AB 包完整路径")
    AssetBundle ab = AssetBundle.LoadFromFile(str);

    //T resName = ab.LoadAsset<T>("游戏资源名称")
    //注意名字用的是player原来的Prefab的名字
    GameObject ga = ab.LoadAsset<GameObject>("Necromancer");

    GameObject.Instantiate(ga, Vector3.zero, Quaternion.identity);
}

}

注意点: 1.路径不要写错 2.文件名要写上后缀 3.LoadAsset里面的名字要写Prefab的名字 4.在unity中运行时是正常的,但是打包到windows平台就会加载不出来模型。 这涉及到加载路径,主要是StreamingAssets的问题,这个我准备以后写。 到时候我会把Unity中Resources,Editor,StreamingAssets,Plugins这几个特殊的文件夹一块写出来。