Войти
Unreal EngineФорумПрограммирование

Unreal Engine 4. Совместная работа. Что нужно? (2 стр)

Страницы: 1 2
#15
15:15, 2 июня 2018

s3dworld
> К сожалению это никак не останавливает выполнение (а использовать Fatal очень
> уж сурово).
Скорее всего, так и задумано - в прошлых UE большинство рантайм-ошибок в скрипте, включая индирекцию через null, только ругаются в лог и возвращают None. Насколько я помню, в UE4 эпики рекомендуют придерживаться аналогичной семантики и писать код вида

void ATestPlayerController::BeginPlay(void)
{
    if(widget)
    {
        pCreatedWidget=CreateWidget<UUserWidget>(this, widget.Get());
        pCreatedWidget->AddToViewport();
    }
    else
    {
        UE_LOG(LogTemp, Error, TEXT("Widget is not set!"));
    }
}
_

Пошёл проверять действующий код - да, эпики так и делают.

// UnrealTournament/Source/UnrealTournament/Private/UTWeap_RocketLauncher.cpp

AUTProjectile* AUTWeap_RocketLauncher::FireRocketProjectile()
{
  checkSlow(RocketFireModes.IsValidIndex(CurrentRocketFireMode) && RocketFireModes[CurrentRocketFireMode].ProjClass != NULL);

  TSubclassOf<AUTProjectile> RocketProjClass = nullptr;
  if (HasLockedTarget() && SeekingRocketClass)
  {
    RocketProjClass = SeekingRocketClass;
  }
  else if (bAllowGrenades)
  {
    RocketProjClass = RocketFireModes.IsValidIndex(CurrentRocketFireMode) ? RocketFireModes[CurrentRocketFireMode].ProjClass : nullptr;
  }
  else
  {
    RocketProjClass = ProjClass.IsValidIndex(CurrentRocketFireMode) ? ProjClass[CurrentRocketFireMode] : nullptr;
  }

  if (RocketProjClass == nullptr)
  {
    UE_LOG(UT, Warning, TEXT("Rocket fire mode %d No valid projectile class found"), CurrentRocketFireMode);
    return nullptr;
  }
  /* <...> */
}


#16
15:37, 2 июня 2018

Мне только предстоит разобраться с этой темой, но я давно немного игрался с git и perforce в ue4 и могу однозначно сказать, что буду использовать исключительно git.

#17
16:23, 2 июня 2018

Sh.Tac.
> работать с кодом в p4 просто ад

что не так ?

#18
17:26, 2 июня 2018

innuendo
> что не так ?
по сравнению с гитом всё не так : )

checkout эксклюзивный, только один разработчик может работать с одним файлом
p4 streams и их мерж так и не осилил

З.Ы. как-то работали на одну канадскую контору с p4
придерживались простейшего пайплайна
copy file - alter code - diff - checkout - patch - submit
в гите это хотя бы автоматизировано : ))

#19
18:49, 2 июня 2018

Sh.Tac.
> checkout эксклюзивный, только один разработчик может работать с одним файлом

другой точно также может работать с файлом - потом только ресолв сделать

Sh.Tac.
> З.Ы. как-то работали на одну канадскую контору с p4
> придерживались простейшего пайплайна
> copy file - alter code - diff - checkout - patch - submit
> в гите это хотя бы автоматизировано : ))

работал над проектом с UE4 - потом перешёл на git, столько лишних телодвижений

Страницы: 1 2
Unreal EngineФорумПрограммирование

Тема в архиве.