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);