Войти
Unreal EngineФорумОбщее

Разные мелкие вопросы (3 стр)

Страницы: 1 2 3 4 5 Следующая »
#30
13:04, 4 янв. 2021

GetAllActorsOfClass? https://docs.unrealengine.com/en-US/API/Runtime/Engine/Kismet/UGa… ss/index.html


#31
13:23, 4 янв. 2021

тот итератор внутри тоже  GetAllActorsOfClass использовал.
но так теперь хотя бы не крашится.
но вектор все так же пустой, хотя я уже танков 5ть наверно на уровень воткнул!(

  TArray<AActor*> tanksArray;
  UGameplayStatics::GetAllActorsOfClass(GetWorld(), TSubclassOf<ATankActor>(), tanksArray);

  for (int i = 0; i < tanksArray.Num(); ++i)
  {
    ATankActor* tank = Cast<ATankActor>(tanksArray[i]);
    if (tank)
      GEngine->AddOnScreenDebugMessage(-1, 30.f, FColor::Yellow, tank->GetFName().ToString());  //Print name of the Actor
  }
#32
(Правка: 13:28) 13:28, 4 янв. 2021

проблема разрешилась

TSubclassOf<AEnemy> classToFind;
    classToFind = AEnemy::StaticClass();
    TArray<AActor*> foundEnemies;
    UGameplayStatics::GetAllActorsOfClass(GetWorld(), classToFind, foundEnemies);
https://stackoverflow.com/questions/39406118/why-getallactorsofcl… returns-empty

#33
(Правка: 20:15) 20:14, 4 янв. 2021

а по какой причине редактор может крашится после каждой компиляции?(
и я заметил что это похоже происходит именно тогда, когда в сцену добавлен мой с++ танк.
если удалю все танки перезапущу редактор, то хоть занажимайся он не падает.
где-то память что-ли течет? UE не особо многословен в плане отчета почему он падает(

и еще у меня есть снаряды(AProjectile) которыми стреляют танки.
я не пойму почему у них не срабатывают ни OnHit, ни - OnOverlapBegin, хотя они отталкиваются от кубиков и катаются по полу, только  InitialLifeSpan = 4.0f; их и уничтожает.
AddDynamic все сидят в BeginPlay()

cpp https://codeshare.io/5zL4qj
h https://codeshare.io/5eEp47

#34
21:50, 4 янв. 2021

Suslik
> именно поэтому учиться графике по анриал/юнити туториалам — это полный зашквар.
> учиться нужно отдельно графике
А по этой теме есть подробные туторы ? По анрилу вон дофига.
А по графике раньше почти не было инфы, сейчас хз. Вроде что то даже на ютубе есть, но как там с качеством подачи материала и объяснений не вникал, а тема довольно большая и сложная.
В том же анриле дофига настроек и всяких фич которые не пойми что делают, вроде читаешь мануал смотришь там две картинки показывают на одной фича включена  на другой выключена и они почти не отличаются ...

#35
10:03, 5 янв. 2021

endeavour_pr
> А по графике раньше почти не было инфы, сейчас хз
почитай OpenGL суперкнига

вопрос дня: Спавнить ParticleSystem из Projectiles это гиблая идея?

void AProjectile::BeginPlay()
{
  Super::BeginPlay();
  UGameplayStatics::SpawnEmitterAttached(ExplosionEffectTail, RootComponent, NAME_None, GetActorLocation(), GetActorRotation(), EAttachLocation::KeepWorldPosition, true);
}

void AProjectile::OnHit(UPrimitiveComponent * HitComp, AActor * OtherActor, UPrimitiveComponent * OtherComp, FVector NormalImpulse, const FHitResult & Hit)
{
  // Only destroy projectile if we hit a physics
  if ((OtherActor != nullptr) && (OtherActor != this) && (OtherComp != nullptr))
  //if ((OtherActor != nullptr) && (OtherActor != this) && (OtherComp != nullptr) && OtherComp->IsSimulatingPhysics())
  {
    //OtherComp->AddImpulseAtLocation(GetVelocity() * 100.0f, GetActorLocation());
    //DrawDebugLine(GetWorld(), Hit.ImpactPoint, Hit.ImpactPoint + Hit.ImpactNormal * 100.0f, FColor::Yellow, false, 5.0f, 255, 2.0f);
    UGameplayStatics::SpawnEmitterAttached(ExplosionEffectExplosion, RootComponent, NAME_None, GetActorLocation(), GetActorRotation(), EAttachLocation::KeepRelativeOffset, true);

    Destroy();
  }
}


Мне кажется партиклы уничтожаются сразу же после того как пулька вызвала свой Destroy()
А как тогда? Заводить специальный компонент (один на всю игру) который вызывать для спавна партиклов?

#36
(Правка: 10:29) 10:14, 5 янв. 2021

pixelperfect_
> RootComponent
кто такой? ты спавнишь в пулю что ли? конечно тогда ничего не увидишь. Надо спавнить отдельный Actor а уже в него спавнить частицы (или сразу блупринт с уже размещенными частицами)

>а по какой причине редактор может крашится после каждой компиляции
может, из-за того что ты удалил какой то компонент или блупринт или ещё чего, а тот блупринт который на него ссылался теперь не может получить к нему доступ. Гадать можно бесконечно, для этого есть режим отладки. Может из-за кода кривого, который компилится, но имеет ошибки (ошибки бывают не только синтаксические).
Изображение
или так
Изображение
тут уж кому что приятнее и какой IDE машинка тянет).

#37
13:40, 5 янв. 2021

Salamandr
> ты спавнишь в пулю что ли? конечно тогда ничего не увидишь. Надо спавнить
> отдельный Actor а уже в него спавнить частицы (или сразу блупринт с уже
> размещенными частицами)
да, спавнил в пуле...

+ Показать

>может, из-за того что ты удалил какой то компонент или блупринт или ещё чего, а тот блупринт >который на него ссылался теперь не может получить к нему доступ. Гадать можно бесконечно, для >этого есть режим отладки. Может из-за кода кривого, который компилится, но имеет ошибки
>(ошибки бывают не только синтаксические).

у меня нету BP пока еще, все написано на с++
думаю нужно попробовать чисть указатели на компоненты на Destroy() мб поможет.
вообще это частая проблема, как я понял почитав в инете и многие так и мучаются.
compile -> editor crash -> editor restart ((

#38
11:22, 6 янв. 2021

призывается специалист по повороту костей в UE!
работает норм пока я не покручу танк по Z!
пушка должна повторять зеленую линию в не зависимости от поворота танка!
беру кости в ws и оринтирую их же в ws. фига ей надо?

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

  float angle2 = FMath::RadiansToDegrees(acosf(FVector::DotProduct(headForward, requestedHeadDirection)));

  //FString TheFloatStr = FString::SanitizeFloat(angle2);
  //GEngine->AddOnScreenDebugMessage(-1, 30.f, FColor::Yellow, *TheFloatStr);

  // start addjust weapon bone only if headForward direction close to requestedHeadDirection direction
  if (angle2 < 5.0f)
  {
    FQuat w1 = PoseMesh->GetBoneQuaternion("Weapon"); // word space bone rotation
    FQuat w2 = requestedWeaponDirectionQuat * FQuat(FRotator(0.0f, 90.0f, 0.0f));

    FQuat weaponBlended = FQuat::Slerp(w1, w2, DeltaTime * 5.0f); // blend two ws rotations on every frame

    PoseMesh->SetBoneRotationByName("Weapon", FRotator(weaponBlended), EBoneSpaces::WorldSpace);

ATankActor::RotateOnTarget(float DeltaTime)

+ Показать

#39
13:10, 8 янв. 2021

а как сделать прицел по центру экрана? мне для прицеливания нужно точку или круг нарисовать(

#40
(Правка: 15:56) 15:46, 8 янв. 2021

и еще вопросик!
А как прокинуть LifeTime системы партиклов (2-3 сек живет) в её же Меш-материал, только нормализированный вариант ?

если я просто так спавню партиклы где мне их потом ловить и как считать время начала их жизни?
опять класс AActor-обертку писать что-ли?(

#41
17:37, 8 янв. 2021

по умолчанию в партиклах спавнится материал с параметром "MAT_TIME_NORMALIZED" = 0.6f
сразу после спавна пытаюсь поменять значение параметра материала, но он не меняется вообще!
что тут не так?

  UParticleSystemComponent* PS = UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), ExplosionEffectExplosion, pos, GetActorRotation(), true);
  
  if (PS)
  {
    UMaterialInterface* Material = PS->GetMaterial(0);
    if (Material)
    {
      UMaterialInstanceDynamic* MatInstance = UMaterialInstanceDynamic::Create(Material, PS);

      MatInstance->SetScalarParameterValue("MAT_TIME_NORMALIZED", 0.1f);

      if (MatInstance)
        PS->SetMaterialParameter("MAT_TIME_NORMALIZED", MatInstance);
    }
  }
#42
9:29, 9 янв. 2021

а для текстур UI разве нельзя нагенерировать mip уровней в UE?
он сам может или нет?
она должна быть POT или любая?

у меня текстура прицела 1к, а рисуется она уменьшенной.
мипов почему-то нет и она выглядит как ..овно!

AMyHUD::AMyHUD() 
{
  static ConstructorHelpers::FObjectFinder<UTexture2D> AimTexObj(TEXT("/Game/Textures/aimTexture.aimTexture"));
  AimTex = AimTexObj.Object;
}

void AMyHUD::DrawHUD() 
{
  Super::DrawHUD();

  const FVector2D Center(Canvas->ClipX * 0.5f, Canvas->ClipY * 0.5f);
  const FVector2D SpriteSize(32.0f, 32.0f);

  const FVector2D DrawPosition(Center.X - (SpriteSize.X * 0.5f) ,Center.Y - (SpriteSize.Y * 0.5f));

  FCanvasTileItem TileItem(DrawPosition, AimTex->Resource, FLinearColor::White);
  TileItem.BlendMode = SE_BLEND_Translucent;
  TileItem.Size = SpriteSize;
  Canvas->DrawItem(TileItem);


}

void AMyHUD::BeginPlay()
{
  Super::BeginPlay();
}

#43
9:53, 9 янв. 2021

и точно он не может не POT текстурам мипы генерить(
переделал текстуру на POT и двиг нагенерировал мипов 

#44
7:34, 10 янв. 2021

вопрос дня в одном blend файле сделал несколько простых объектов, как за один раз их импортировать в разные статик меш ассеты? а не заниматься такой работой - для каждой модельки selected -> fbx -> ue (n-times)

Страницы: 1 2 3 4 5 Следующая »
Unreal EngineФорумОбщее