Unreal Engine 4:从 Unity 转换 DrawMesh()

Unreal Engine 4 : Converting DrawMesh() from Unity

我是 Unreal Engine 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);
}

例如,这样的代码必须放在class的构造函数中。 此外,您还需要在 DefaultEditor.ini 将 bDontLoadBlueprintOutsideEditor 设置为 false,因为如果它设置为 false,您的发布应用程序会因找不到蓝图 class 而崩溃。 当然,您可以使用 GetMesh()

添加自定义 material
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));