小常识:编辑器模式不是打包后的运行模式,而是在编辑器模式下运行的模式。在编辑器模式下,我们可以加载到硬盘、上的任意资源。而且我们可根据中实际的需要对编辑器进行扩展,但是一旦游戏发布后,大量在编辑器模式下的代码就不可以使用了。
资源分类:在编辑器模式下资源分为两类,类一:可识别资源,比如引擎可以识别的资源声音,动画,视频,Prefab,UI等资源;
类二:无法识别的资源,一般都是外部导入的资源,通常我们需要使用第三方工具进行解析,最终组织成为引擎可以识别的资源才能使用。
加载资源的标志性类:AssetDatabase
作用:专门用于读取工程内部的资源。
要求:需要保证所有的资源必须放在项目的Assets目录下,不然是无法读取的。
方法:使用AssetDatabase.LoadAssetAtPath(),可以读取任意的对象。
下面是一个加载一个预设体然后复制后放在一个父对象下。
[MenuItem("Assets/Tools/LoadAsset", false, 2)]//编辑器扩展
static void LoadAsset()
{
if (Selection.activeTransform)//现在层级面板中选择一个对象
{
GameObject gameObject = AssetDatabase.LoadAssetAtPath<GameObject>
("Assets/Prefabs/Test.prefab");
if (gameObject != null)
{
GameObject go = GameObject.Instantiate(gameObject);
go.transform.SetParent(Selection.activeTransform);
}
else
{
Debug.LogError("资源加载失败!!!");
}
}
}
我们在层级面板中先选择一个对象,然后Assets>>>>>>Tools>>>>>LoadAsset 即可以运行该函数了。会在选择对象的下面创建一个对象哦。