Unreal 异步加载

异步加载

Async(EAsyncExecution::Thread, [this, SkeletalMeshContext, MeshIndex, AsyncCallback]()
	{
		FglTFRuntimeSkeletalMeshContextFinalizer AsyncFinalizer(SkeletalMeshContext, AsyncCallback);

		TSharedPtr<FJsonObject> JsonMeshObject = GetJsonObjectFromRootIndex("meshes", MeshIndex);
		if (!JsonMeshObject)
		{
			AddError("LoadSkeletalMeshAsync()", FString::Printf(TEXT("Unable to find Mesh with index %d"), MeshIndex));
			return;
		}

		TArray<FglTFRuntimePrimitive> Primitives;
		if (!LoadPrimitives(JsonMeshObject.ToSharedRef(), Primitives, SkeletalMeshContext->SkeletalMeshConfig.MaterialsConfig))
		{
			return;
		}

		TArray<FglTFRuntimeLOD> LODs;
		FglTFRuntimeLOD LOD0;
		LOD0.Primitives = Primitives;
		LODs.Add(LOD0);

		SkeletalMeshContext->LODs = LODs;

		SkeletalMeshContext->SkeletalMesh = CreateSkeletalMeshFromLODs(SkeletalMeshContext);

		if (SkeletalMeshContext->SkeletalMesh)
		{
			FGraphEventRef Task = FFunctionGraphTask::CreateAndDispatchWhenReady([this, SkeletalMeshContext, AsyncCallback]()
			{
				SkeletalMeshContext->SkeletalMesh = FinalizeSkeletalMeshWithLODs(SkeletalMeshContext);
				AsyncCallback.ExecuteIfBound(SkeletalMeshContext->SkeletalMesh);
			}, TStatId(), nullptr, ENamedThreads::GameThread);
			FTaskGraphInterface::Get().WaitUntilTaskCompletes(Task);
		}
	});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unreal Engine中,可以通过使用一些内置的功能和类来加载本地图片。 要加载本地图片,首先需要将图片文件拷贝到你的Unreal项目目录中的合适位置,比如放在Content文件夹下的Images子文件夹中。 然后,我们需要创建一个引用来访问该图片。可以在Unreal编辑器中通过右键单击Content面板并选择“Import”来导入图片文件。然后,选择你刚刚拷贝到项目文件夹的图片,并点击“导入”。 导入完成后,你可以在Content面板中找到该图片,并且可以在Level编辑器中拖拽它来将其放置在场景中。 接下来,我们需要在蓝图或者代码中加载该图片。如果在蓝图中操作,可以使用Texture2D类型的变量来存储加载的图片。首先,创建一个Texture2D类型的变量并将其拖拽到场景中。 然后,使用“Create Texture 2D”节点来创建一个Texture2D实例,并通过“Load Texture 2D From File”节点来读取本地图片文件,最后将该Texture2D实例赋值给变量。 如果是在代码中加载图片,可以使用FTexture2DDynamicResource类来加载本地图片,设置其路径并调用Load()方法完成加载。 无论是在蓝图中还是在代码中加载图片,一旦加载完成,你就可以将其用于材质、UI、纹理等任何需要图片资源的地方了。 综上所述,通过上述步骤和方法,你可以在Unreal Engine中加载本地图片并在项目中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值