虚幻引擎4:从Unity转换DrawMesh()

Unreal Engine 4 : Converting DrawMesh() from Unity

本文关键字:转换 DrawMesh Unity 引擎      更新时间:2023-10-16

我是虚幻引擎UE4的新手,我想转换我现有的代码。有人可以帮忙吗?

Material material = Resources.Load ("Meshes/Materials/" + files [index] + "material_0", typeof(Material)) as Material;
Texture2D texture = Resources.Load ("Textures/" + files [index], typeof(Texture2D)) as Texture2D;
Mesh[] meshes = Resources.LoadAll ("Meshes/" + files [index], typeof(Mesh)).Cast<Mesh> ().ToArray ();
for (int m = 0; m < meshes.Length; m++) {
    Graphics.DrawMesh (meshes [m], matrix, material, 0);
}

例如,此类代码必须放置在类的构造函数中。此外,您还需要在 DefaultEditor 上将 bDontLoadBlueprintOutsideEditor 设置为 false.ini因为如果它设置为 false,则您的发布应用程序崩溃且找不到蓝图类。当然,您可以使用 GetMesh() 添加自定义材质

static ConstructorHelpers::FObjectFinder<USkeletalMesh> AssignableMesh(TEXT("/Game/Units/Characters/UNT_Sol_01/UNT_Solder_01"));
static ConstructorHelpers::FObjectFinder<UPhysicsAsset> AssignablePhysics(TEXT("/Game/Units/Characters/UNT_Sol_01/UNT_Solder_01_PhysicsAsset"));
static ConstructorHelpers::FObjectFinder<UAnimBlueprint> AssignableABP(TEXT("/Game/Units/Characters/UNT_Sol_01/UNT_ABP"));
WeaponAttachment = AM4Weapon::StaticClass();
GetMesh()->bReceivesDecals = false;
GetMesh()->MeshComponentUpdateFlag = EMeshComponentUpdateFlag::AlwaysTickPoseAndRefreshBones;
GetMesh()->SetSkeletalMesh(AssignableMesh.Object);
GetMesh()->SetRelativeRotation(FRotator(0.0f, -90.0f, 0.0f));
GetMesh()->SetRelativeLocation(FVector(0.0f, 0.0f, -100.0f));
GetMesh()->SetPhysicsAsset(AssignablePhysics.Object);
GetMesh()->SetAnimInstanceClass(AssignableABP.Object->GeneratedClass);
GetMesh()->SetRelativeScale3D(FVector(3.0f));