2.使用Resources.Load() 使用该方法需要创建一个名为Resources的文件夹,将资源放在该文件夹下 由于Resources文件夹的大小是有限制的,所以这种方法也不是很常用
void Start () { GameObject obj = GameObject.Instantiate(Resources.Load("文件名") as GameObject); }3.使用AssetBundle 使用该方法需要先设置资源的包名,再将资源打包 使用AssetBundle的方式加载的速度远远快于Resources.Load,占用的内存也是偏低的,目前一般都使用这种方式进行加载
先写一个简单的UnityEditor用来打包
public class BundleEditor { [MenuItem("Tool/打包")] public static void Build() { BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, BuildAssetBundleOptions.ChunkBasedCompression,EditorUserBuildSettings.activeBuildTarget); AssetDatabase.Refresh(); } }打完包后可以从包里获取资源
void Start () { AssetBundle assetBundle = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/包名"); GameObject obj = GameObject.Instantiate(assetBundle.LoadAsset<GameObject>("文件名")); }4.使用AssetDataBase.LoadAtPath() 这种方式不会在游戏运行时使用,它是一个UnityEditor的API
void Start () { GameObject obj = GameObject.Instantiate(UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>("文件路径")); }