Unity 中有两种常见的通过代码加载 Prefab 的方式,各有适用场景。
方法 1:通过 UnityEditor 的 AssetDatabase 加载
使用 UnityEditor.AssetDatabase.LoadAssetAtPath 从指定路径加载资源,路径必须带扩展名。由于依赖 UnityEditor 命名空间,此方法仅在编辑器环境下可用,无法用于打包后的构建。
void Start()
{
GameObject obj = UnityEditor.AssetDatabase.LoadAssetAtPath("Assets/haha.prefab",typeof(GameObject)) as GameObject;
Instantiate(obj, Vector3.zero, transform.rotation);
}
方法 2:通过 Resources 类加载
将资源放置在 Assets/Resources 文件夹下,然后使用 Resources.Load 按名称加载,路径不能带扩展名。此方法在运行时和打包后均可使用。
GameObject obj= Resources.Load("haha", typeof(GameObject)) as GameObject;
Instantiate(obj, Vector3.zero, transform.rotation);