Skip to content

预制体(NPrefab)

导入预制体

在脚本中使用预制体

在脚本中可以使用预制体加载接口在运行时动态加载预制体文件,相关接口位于NAssetManager.h头文件中

静态接口:

接口返回值说明
LoadPrefabFromFileNActorList通过预制体文件路径加载预制体,支持同步加载与异步加载,若预制体中包含模型,且加载后需对模型操作,则需要使用异步的方式,因为预制体中的模型均为异步加载,加载后需要调用AddActors接口将Actors加入到场景中
LoadPrefabFromStringNActorList通过字符串信息加载预制体,加载后需要调用AddActors接口将Actors加入到场景中
SaveObjectToFilebool将Object类型的对象保存到文件中
SaveObjectsToFilebool将Object类型的对象列表保存到文件中
SaveObjectToStringstd::string将Object类型的对象保存为字符串
SaveObjectsToStringstd::string将Object类型的对象列表保存为字符串
LoadObjectFromFiletemplate <typename T>T*从文件中加载Object对象
LoadObjectFromStringtemplate <typename T>

std::vector<T*>
从字符串中加载Object对象

使用示例:

cpp
void LoadPrefabFromFileSample()
{
    auto loadPrefab =NAssetManager::LoadPrefabFromFile("Assets/Prefabs/test.prefab"
    ,N_CREATE_ASSET_LOAD_LISTENER_OWNER(this, [=](const std::string& path, NActorList list, int res)
    {
	    NActorManager::AddActors(list);
	    //如果预制体内包含模型,对模型的操作需要在回调函数中进行,因为预制体中的模型仅支持异步加载
	    auto modelTest = list.front();
        modelTest->SetScale(5.0f);
     }));
}