GetWolrd() not work and crash editor with class derived from UObject

Hi, i have this class derived from UObject

UCLASS(Blueprintable, BlueprintType, MinimalAPI)
class UGrounder : public UObject

I create is in other class by

Grounder = ConstructObject<UGrounder>(UGrounder::StaticClass(), this, TEXT("Grounder"));

then i have a Update function in UGrounder, and i call it from other class in my case i call it in BlueprintUpdateAnimation(float DeltaTimeX)
In Update() of UGrounder. When i want to draw a line to debug, nothing happen.

DrawDebugLine(GetWorld(), FVector(0, 0, 0), FVector(0, 0, 0) + 100000 * FVector::UpVector, FColor::Red, true, 1, 0, 500);

and when i want to print GetWorld()->TimeSeconds out it crash my editor

if (GEngine != NULL)
		GEngine->AddOnScreenDebugMessage(-1, 1, FColor::Red, FString::Printf(TEXT(" %f"), GetWorld()->TimeSeconds));

and in my logs nothing helpful and mention about this.

It crashes because UObject::GetWorld always returns NULL

//in Engine\Source\Runtime\CoreUObject\Private\UObject\Obj.cpp

class UWorld* UObject::GetWorld() const
	bGetWorldOverriden = false;
	return NULL;

I don’t think UObjects are supposed to exist in a world, it looks like you have to override the GetWorld function in your derived class or derive from AActor.

Oh ok, thanks.
I think i just pass the UWorld from other class then.