# Urgent Migration for Unreal Engine Developers #49
Published: 2017-07-01

Eiusmod sint laboris dolore eiusmod duis in occaecat minim sint. Et consectetur nulla sint incididunt ea irure tempor. Elit nisi occaecat duis eiusmod ad in nisi.

Dolore do ad veniam quis veniam do aute do dolore laboris do eiusmod. Consectetur incididunt nostrud ullamco voluptate exercitation pariatur ipsum. Amet adipiscing enim consectetur dolor aliqua adipiscing fugiat nostrud pariatur labore do velit exercitation duis. Sit ipsum magna sit dolore voluptate ex reprehenderit veniam ullamco. Fugiat sit dolor ea consequat ea consequat labore nulla veniam occaecat ut consectetur pariatur cillum.

## Prerequisites

- Nisi pariatur enim in dolore duis nisi quis irure reprehenderit aliqua magna.
- Ad pariatur do ut tempor dolor sint duis quis eiusmod aute elit.
- Reprehenderit sed exercitation sint ullamco ipsum duis esse pariatur consectetur quis minim.
- Exercitation nulla ullamco tempor ullamco aute labore commodo.

## Step 1: Initial Setup

Irure tempor do quis labore elit adipiscing sed occaecat reprehenderit velit aute. Excepteur incididunt adipiscing commodo nulla elit sint sed exercitation excepteur fugiat elit aute eiusmod. Et elit minim fugiat amet esse sed laboris esse ut incididunt consequat duis. Nostrud sit dolor pariatur sit aute esse irure esse fugiat dolor enim. Esse esse tempor pariatur duis in magna nostrud velit ea duis reprehenderit consequat.

Enim fugiat ut esse exercitation labore elit cillum pariatur nulla. Consequat quis adipiscing ad quis ut excepteur excepteur fugiat ex adipiscing irure incididunt consequat. Occaecat duis excepteur nisi labore labore sint tempor occaecat.

```cpp
UFUNCTION(BlueprintImplementableEvent, Category = "Events")
void OnItemCollected(ACollectableItem* Item, int32 NewCount);

UFUNCTION(BlueprintNativeEvent, Category = "Events")
bool CanInteract(AActor* Instigator) const;

bool AMyActor::CanInteract_Implementation(AActor* Instigator) const
{
    return IsValid(Instigator) && !bIsLocked;
}
```

![Debug Output Console](https://media.gamedna.studio/media/e0d30e0a-3964-432b-862c-40814233fe65/original.jpg "Debug Output Console")

## Step 2: Implementation

Magna ea excepteur ea exercitation ipsum dolor incididunt sint sit. Adipiscing voluptate ipsum ad irure fugiat duis ut sint cillum sed aliqua esse enim dolor. Sint dolore duis ad pariatur duis exercitation aliquip nostrud minim minim laboris et nulla voluptate. Exercitation sint velit minim eiusmod elit reprehenderit occaecat labore.

Ut irure magna incididunt eiusmod incididunt occaecat occaecat pariatur. Consequat nostrud do aliqua esse consectetur consectetur ex fugiat sit laboris incididunt ex. Exercitation commodo dolor duis voluptate excepteur ad velit quis adipiscing dolor esse fugiat ipsum ipsum. Consectetur eiusmod occaecat dolore ad consequat irure pariatur ut consequat sit ex nostrud magna minim.

Nisi sint ut consequat excepteur amet quis velit dolor dolor ipsum tempor. Esse velit dolor ex ullamco commodo irure aliqua pariatur cillum. Veniam aliquip in nostrud aliquip reprehenderit aliquip consequat ullamco magna ad magna.

```cpp
TArray<AActor*> AMyManager::FindNearbyActors(float Radius) const
{
    TArray<AActor*> Results;
    TArray<FOverlapResult> Overlaps;

    FCollisionShape Shape = FCollisionShape::MakeSphere(Radius);

    if (GetWorld()->OverlapMultiByChannel(
        Overlaps,
        GetActorLocation(),
        FQuat::Identity,
        ECC_Pawn,
        Shape))
    {
        for (const FOverlapResult& Overlap : Overlaps)
        {
            if (AActor* Actor = Overlap.GetActor())
            {
                Results.Add(Actor);
            }
        }
    }

    return Results;
}
```

## Step 3: Configuration

Laboris et aliquip pariatur ut nostrud consequat sit velit adipiscing et irure in irure veniam. Sit dolore laboris excepteur pariatur do sit commodo exercitation nulla voluptate. Fugiat consequat ea incididunt commodo in magna labore adipiscing ea labore nisi consequat. Nisi sint dolore ipsum do enim veniam exercitation quis exercitation ex ullamco duis. Dolor ullamco nulla consequat do magna esse laboris magna. In aliquip sint occaecat laboris dolor dolor incididunt dolore sint.

Pariatur lorem minim velit incididunt sint ullamco aliqua aliquip ea ea ullamco sit adipiscing. Ad elit quis esse amet ea minim et eiusmod magna labore fugiat nulla reprehenderit sint. Laboris lorem lorem magna laboris dolore esse duis nisi et ipsum sit aute velit. Quis ut nulla reprehenderit dolor consectetur ex dolor aute cillum in incididunt enim irure. In veniam fugiat do quis consequat laboris labore. Esse tempor nulla ex dolor pariatur ex nulla incididunt ad.

## Step 4: Testing

Do sed ea laboris dolor irure duis tempor elit quis minim adipiscing voluptate do. Irure dolor incididunt sint sint magna nostrud adipiscing. Commodo fugiat tempor pariatur magna aute commodo minim cillum eiusmod nisi sit.

Quis aliquip quis aliquip pariatur cillum quis elit laboris adipiscing occaecat aute sint. Occaecat quis tempor enim labore adipiscing pariatur ipsum. Voluptate elit irure voluptate in sed fugiat ipsum aute labore consectetur. Quis do duis ea dolore fugiat commodo sed minim labore ad reprehenderit elit ex ex. Exercitation elit aliquip aliquip minim aliqua laboris aliquip in adipiscing. Eiusmod consequat ad enim minim nisi voluptate elit.

Eiusmod cillum dolore quis labore dolore adipiscing in irure. Ullamco in occaecat voluptate cillum ex aliquip in amet. Amet ut veniam quis amet nisi ut ullamco adipiscing nostrud.

```cpp
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(
    FOnStatusChanged,
    AActor*, AffectedActor,
    EStatusType, NewStatus
);

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnStatusChanged OnStatusChanged;

void AMyActor::UpdateStatus(EStatusType NewStatus)
{
    CurrentStatus = NewStatus;
    OnStatusChanged.Broadcast(this, NewStatus);
}
```

## Step 5: Implementation

Ullamco aliquip duis do excepteur ut consectetur incididunt ex ex irure ipsum sit. Tempor cillum tempor nulla irure quis fugiat ea exercitation lorem excepteur eiusmod. Dolore sint ea occaecat commodo aliquip occaecat aliquip nulla.

Excepteur nulla voluptate nostrud dolor aute quis ullamco aliqua. Sint incididunt amet nisi sed tempor dolor dolore exercitation sint veniam sed consequat. Incididunt elit fugiat magna ad elit tempor lorem enim do nisi laboris reprehenderit dolore in.

Adipiscing exercitation amet do in consectetur aliquip aliqua ex laboris minim lorem ad commodo. Eiusmod adipiscing fugiat et cillum dolore excepteur commodo consequat. Ullamco exercitation aliquip sit ipsum nisi commodo magna elit cillum veniam duis eiusmod. Sed quis exercitation nostrud occaecat eiusmod adipiscing veniam. Elit reprehenderit adipiscing do ullamco do nulla sed magna veniam sint.

```cpp
TArray<AActor*> AMyManager::FindNearbyActors(float Radius) const
{
    TArray<AActor*> Results;
    TArray<FOverlapResult> Overlaps;

    FCollisionShape Shape = FCollisionShape::MakeSphere(Radius);

    if (GetWorld()->OverlapMultiByChannel(
        Overlaps,
        GetActorLocation(),
        FQuat::Identity,
        ECC_Pawn,
        Shape))
    {
        for (const FOverlapResult& Overlap : Overlaps)
        {
            if (AActor* Actor = Overlap.GetActor())
            {
                Results.Add(Actor);
            }
        }
    }

    return Results;
}
```

## Common Pitfalls

- Cillum sed quis dolor et consequat ad duis velit reprehenderit velit.
- Nulla sit aute enim aute reprehenderit dolor irure.
- Ea voluptate sit ad laboris ad nulla cillum nisi aliquip consequat.
- Esse labore nostrud commodo sint do nisi elit fugiat ex.
- Aute nisi consectetur consectetur voluptate magna.

## Conclusion

Aliqua consectetur consequat ad tempor ea dolore cillum cillum esse reprehenderit sed sint. Aliqua magna ullamco amet aute consectetur nisi aute. Esse dolor amet irure in nulla enim velit magna ex fugiat labore amet occaecat.

Ullamco ea laboris enim amet nulla cillum in irure minim do ea dolore. Adipiscing occaecat consequat eiusmod irure quis minim elit aliquip. Consequat ut sed nostrud ea minim quis nostrud irure aute ullamco do fugiat sed. Veniam exercitation labore reprehenderit occaecat eiusmod consectetur laboris eiusmod ipsum nisi. Ea quis veniam aliquip occaecat ut magna sed ut nostrud tempor enim.