I figured out why GetUniqueID wasn’t working. Need to also check the Role. Here’s the code that works (I’m checking to make sure I can’t spawn a new portal that overlaps another portal):
int32 newPortalID = newPortal->GetUniqueID();
ENetRole newPortalRole = newPortal->Role;
newPortal->GetActorBounds(false, portalOrigin, portalExtent);
FBox newPortalBBox(portalOrigin - portalExtent, portalOrigin + portalExtent);
for (TObjectIterator<APortal> pItr; pItr; ++pItr) {
[INDENT][/INDENT]if (newPortalRole != pItr->Role || newPortalID == pItr->GetUniqueID()) continue;
[INDENT][/INDENT]pItr->GetActorBounds(false, portalOrigin, portalExtent);
[INDENT][/INDENT]FBox otherPortalBBox(portalOrigin - portalExtent, portalOrigin + portalExtent);
[INDENT][/INDENT]if (newPortalBBox.Intersect(otherPortalBBox)) {
[INDENT][INDENT][/INDENT][/INDENT]newPortal->Destroy();
[INDENT][/INDENT]}
}