赞
踩
1、直接实例化出来,通过instantiate(gameobject);
2、通过资源加载的方式 Resource.Load(路径) 进行加载
3、通过AssetBundle进行打包
void Start ()
{
AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath+ "/cube.unity3D");//路径的坑 在打包AssetBundle的时候,后缀名需要注意,不能使用unity 否则会有问题报错,使用unity3D没问题 在这里加载资源的时候需要加上后缀名一起进行加载
Instantiate(ab.LoadAsset<GameObject>("cube")); //实例化的时候不需要加后缀,只需要写上名字即可
}
备注:坑爹的报错 Unable to open archive file 就是因为资源打包的时候后缀名为unity
4、通过UnityAssetDatabase.LoadAssetAtPath
Instantiate(UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Prefabs/cube.prefab"))
这里要注意路径,必须是Assets 然后再加上你存放的路径,不能使用Application.dataPath + "/Prefabs/cube.prefab" 否则也会加载失败,最后要有后缀名一起,否则加载失败 还有就是UnityAssetDatabase.LoadAssetAtPath 这个方法位于UnityEditor命名空间下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。