UI在地图原点,而不是物体上,检查了蓝图和代码均无错误。
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="Mantra")//需要
UWidgetComponent* WidgetComponent;
WidgetComponent = CreateDefaultSubobject<UWidgetComponent>(TEXT("WidgetComponent"));
WidgetComponent->SetupAttachment(RootComponent);
WidgetComponent->SetVisibility(1);
auto InfoWidegetClass = LoadClass<UUserWidget>(NULL, TEXT("WidgetBlueprint'/Game/blueprints/Npc/MerchantText.MerchantText_C'"));
WidgetComponent->SetWidgetClass(InfoWidegetClass);
InfoWidgetComponent->SetWidgetSpace(EWidgetSpace::Screen);
//InfoWidgetComponent->SetPivot(FVector2D(1, 0.5));
//InfoWidgetComponent->SetDrawSize(FVector2D(120.0f, 10.0f));
//InfoWidgetComponent->SetRelativeLocation(FVector(0.0f, 0.0f, 95.0f));
原因是场景中的实例没有跟随蓝图变化,重新拖入一个。
如图为重新拖入物体的与原物体。
如果说依然没有,这是UE的Bug,关闭UE在vs中重新编译即可。
RootComponent=Sphere;//设置根组件的方法
注意:>SetupAttachment(RootComponent)这一句是必须要写的,如果没有设置根组件,必须先设置根组件,然后关闭UE在vs中重新编译即可。
画布首先点右上角选择[屏幕上所需]
其次边界锚点必须选中间