This is related to other bugs posted, such as link text:
I have tried packaging first, then cook. Also I have tired deleting Intermediate and saved folders, same fail on package and cook.
I have classes that extend UMarkerComp. They are used to help generate procedural content. There was no issue with them through 4.10.
Here is an excerpt, one of the errors:
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.05.25-05.09.59:321][ 0]LogSceneComponent:Error: Component ‘PickupMarker /Engine/Transient.TRASHCLASS_BaseBlockWorld1_299:PickupMarker_0’ has ‘BillboardComponent /Engine/Transient.TRASHCLASS_BaseBlockWorld1_299:PickupMarker_0.Billboard’ in its AttachChildren array, however, ‘BillboardCompon
ent /Engine/Transient.TRASHCLASS_BaseBlockWorld1_299:PickupMarker_0.Billboard’ believes it is attached to ‘PickupMarker /Script/JLemon.Default__PickupMarker’
Here is the header of the class:
#pragma once
#include "MarkerComp.h"
#include "PickupMarker.generated.h"
/**
*
*/
UCLASS(ClassGroup = (Lemon), meta = (BlueprintSpawnableComponent))
class JLEMON_API UPickupMarker : UMarkerComp
{
GENERATED_BODY()
:
// Sets default values for this actor's properties
UPickupMarker(const FObjectInitializer& ObjectInitializer);
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pickup")
TSubclassOf< class ABasePickup > PickupSpawnClass;
// Called when the game starts
virtual void InitializeComponent() override;
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
};
And here is the .cpp file:
// Fill out your copyright notice in the Description page of Project Settings.
#include "JLemon.h"
#include "PickupMarker.h"
// Sets default values
UPickupMarker::UPickupMarker(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
#if WITH_EDITOR
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
bWantsInitializeComponent = true;
PrimaryComponentTick.bCanEverTick = true;
// Structure to hold one-time initialization
struct FConstructorStatics
{
// A helper class object we use to find target UTexture2D object in resource package
//TODO: Change Icon to PickupIcon
ConstructorHelpers::FObjectFinder<UTexture2D> Texture0;
FConstructorStatics()
: Texture0(TEXT("Texture2D'/Game/Lemons/Procedural/Blocks/Blueprints/icons/AmmoMarker'"))
{
}
};
static FConstructorStatics ConstructorStatics;
BillboardComponent = ObjectInitializer.CreateEditorOnlyDefaultSubobject<UBillboardComponent>(this, TEXT("Billboard"), true);
SpriteTexture = ConstructorStatics.Texture0.Object;
BillboardComponent->Sprite = SpriteTexture;
BillboardComponent->AttachTo(this);
#endif
}
// Called when the game starts
void UPickupMarker::InitializeComponent()
{
Super::InitializeComponent();
// ...
}
// Called every frame
void UPickupMarker::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
// ...
}