Как отвязать привязанный мэш оружия от сокета на руке игрока

Через лайнтрейс получаю информацию о том, какой объект можно поднять и вывожу виджет. введите сюда описание изображения

Потом игрок может нажав "E" поднять объект

введите сюда описание изображения

Как мне сделать так, чтобы когда игрок поднимает новое оружие, старое исчезало/падало на землю? Пробовал Deatach но не получилось. Может неправильно использовал


Ответы (1 шт):

Автор решения: DimoNull

Не уверен, но попробуй.

// Получаем ссылку на текущее оружие
AActor* CurrentWeapon = GetWeapon();

// Если текущее оружие существует, то отвязываем его от сокета
if (CurrentWeapon)
{
    CurrentWeapon->DetachFromActor(FDetachmentTransformRules::KeepWorldTransform);
}

// Получаем ссылку на новое оружие
AActor* NewWeapon = GetNewWeapon();

// Если новое оружие существует, то привязываем его к сокету
if (NewWeapon)
{
    NewWeapon->AttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, "SocketName");
}

→ Ссылка