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

UE4 крашится из-за простого скрипта

Страницы: 1 2 Следующая »
#0
9:34, 19 фев. 2018

Хочу сделать простой скрипт, который вращает объект в UE4. Если добавить выделенные строки и скомпилировать проект через UE4, то он закрывается с ошибкой и не открывается до удаления этих строк.
Это нормально, так часто бывает? А то я уже думаю перейти на другой движок..

Изображение

#1
10:53, 19 фев. 2018

Перемести в BeginPlay - в конструкторе ты ещё не знаешь где компонент будет находиться, потому GetOwner вернёт NULL. И поставь отладочные символы.

#2
11:09, 19 фев. 2018

zlos
Спасибо

#3
18:22, 19 фев. 2018

У эктора владельца может не быть вообще, потому лучше всегда его проверять на нуль в любом месте перед использованием.

#4
10:42, 20 фев. 2018

Еще заметил, что движок крашится даже если в данном выражении указать %s, а не %d.
Никаких сообщений об ошибке, просто вылетело и все.. и сиди гадай, почему так
Чувствую, весело будет

int32 NumPawns = GetWorld()->GetNumPawns();
  if (GEngine)
    GEngine->AddOnScreenDebugMessage(-1, 2.f, FColor::Blue, FString::Printf(TEXT("NumPawns %d"), NumPawns));
#5
11:01, 20 фев. 2018

dmitrykozyr
> и сиди гадай, почему так
На твоем скрине crash report-а написано

"You do not have any debugging symbols required to display the callstack for this crash"

Т.е. как тебе уже говорили, организуй отладочные символы и будет показываться стек вызова.

#6
14:02, 20 фев. 2018

dmitrykozyr
С движком все в порядке, это у тебя нулевые знания с++.

#7
14:35, 20 фев. 2018

А что это за отладочный символы?
Что-то ничего толкового не нагуглил

#8
15:41, 20 фев. 2018

dmitrykozyr
https://ru.wikipedia.org/wiki/Отладочные_символы
В случае MSVC++ это .pdb файл
Опция компилятора:
https://docs.microsoft.com/en-us/cpp/build/reference/z7-zi-zi-deb… mation-format
Опция линкера:
https://docs.microsoft.com/en-us/cpp/build/reference/debug-generate-debug-info
Символы для бинарников редактора UE:
https://answers.unrealengine.com/questions/387038/what-are-the-ed… ebugging.html

#9
19:47, 20 фев. 2018

dmitrykozyr
Либо учи C++, либо бросай нафиг UE. Без хорошего знания языка там нечего делать.

PS. За это и люблю UE - порог вхождения все еще высокий :)

#10
20:01, 20 фев. 2018

Попробуй Unity если не понравится своей неполноценностью то будет огромная мотивация учить анрыл и с++

#11
20:11, 20 фев. 2018

CD
Спасибо

mr.DIMAS
Да я за него взялся только из-за С++, чтобы подтянуть. А то раньше учил, но все забыл, т.к. применить знания было негде, щас опять учу)

endeavour_pr
> Попробуй Unity
Я на нем уже три года сидел, эту игру http://store.steampowered.com/app/742470/Chronicles_of_cyberpunk/ делал, хочу теперь что-нибудь новенькое попробовать и главное - С++ подтянуть. Вот сейчас смотрю видеоуроки и что не урок - то либо движок крашится, либо какая-то ошибка непонятная вылазит) Надеюсь, со временем пойму, что я не так делаю

И возвращаться на юнити уже поздно. Я уже в блендере намоделил 5 локаций, а модели после импорта преобразуются в формат *.uasset и их уже в юнити использовать нельзя. И переделывать мне это все совсем не хочется

#12
22:30, 20 фев. 2018

порог вхождения в UE C++ высокий из-за отсутствия норм туториалов, а не из-за сложности. Эпикам бы стоило сесть и записать норм серию для новоприбывших. А то там одна серия 2015 года, которая без танцев с бубном не заведется из-за смены api, и несколько лайвстримов, где вечно отвлекаются на что-то другое. По блюпринтам материала много, по плюсам голяк. С книгами та же хрень.

#13
23:28, 20 фев. 2018

не

MyRotator=GetOwner()->GetActorRotation();

а

if(GetOwner())
  MyRotator=GetOwner()->GetActorRotation();

для любого наследника UObject создается пустая копия, доступная, по-моему, как <ClassName>::StaticClass()->GetDefaultObject(), но это лишние уже тонкости.

#14
0:26, 21 фев. 2018

Вся суть анрила - падать из-за null-а в юзерскриптах...

Страницы: 1 2 Следующая »
Unreal EngineФорумПрограммирование

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