Unreal Engine 4
https://uengine.ru/forum/

SkeletalMeshComponent(Не актуально)
https://uengine.ru/forum/viewtopic.php?f=19&t=1958
Страница 1 из 1

Автор:  Zhernovoy Sergey [ 05 ноя 2015, 11:17 ]
Заголовок сообщения:  SkeletalMeshComponent(Не актуально)

Всем привет,возникала проблема при работе с USkeletalMeshComponent ,а именно - пробую изменить реакцию bodyInstance(коллизия в физикассет) для канала визибл. После смены в лог получаю что значение изменилась ,но реальных изменений при последующих трассировках в эту же коллизию нет.Если же меняю всему SkeletalMeshComponent ,то все проходит на ура. Работал кто нибудь ,сталкивался ?
Код : http://pastecode.ru/874ae/
или так :
[spoiler=]
Код:
Вариант 1 Не рабочий :
 
         ...
 
         bool const bHit = World->LineTraceSingleByChannel(OutHit, StartTracePoint, EndTracePoint, UEngineTypes::ConvertToCollisionChannel(CollisionChannel), Params);
         if (bHit)
         {
            USkeletalMeshComponent* Skeletal = Cast<USkeletalMeshComponent>(OutHit.GetComponent());
            if (Skeletal != NULL)
            {
 
               ECollisionResponse ECResp = ECollisionResponse::ECR_Ignore;
               // меняем значение для канала visible на Ignore
               Skeletal->GetBodyInstance(OutHit.BoneName)->SetResponseToChannel(UEngineTypes::ConvertToCollisionChannel(ETraceTypeQuery::TraceTypeQuery1), ECResp);
               UE_LOG(INU_Log, Log, TEXT("GetResponseToChannel  - %d"), (int32)Skeletal->GetBodyInstance(OutHit.BoneName)->GetResponseToChannel(UEngineTypes::ConvertToCollisionChannel(ETraceTypeQuery::TraceTypeQuery1) ));
            }
         }
 
         ...
 
Вариант 2 Рабочий :
 
         ...
 
         bool const bHit = World->LineTraceSingleByChannel(OutHit, StartTracePoint, EndTracePoint, UEngineTypes::ConvertToCollisionChannel(CollisionChannel), Params);
         if (bHit)
         {
            USkeletalMeshComponent* Skeletal = Cast<USkeletalMeshComponent>(OutHit.GetComponent());
            if (Skeletal != NULL)
            {
               ECollisionResponse ECResp = ECollisionResponse::ECR_Ignore;
               Skeletal->SetCollisionResponseToChannel(UEngineTypes::ConvertToCollisionChannel(ETraceTypeQuery::TraceTypeQuery1), ECResp);
            }
         }
 
         ...
[/spoiler]

Автор:  Zhernovoy Sergey [ 05 ноя 2015, 14:17 ]
Заголовок сообщения: 

Можно закрывать тему,найдет другой вариант решения проблемы

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/