Переменная TruckController объявлена, но ей не присвоено значение(конкретный экземпляр класса). Это наверное самая распространённая ошибка при использовании кастов. Костыль есть, но предлагать не буду(пока).
При создании любого проекта в котором предполагается обмен данными между разными бп - важно изначально построить иерархическую модель.
Что это значит: нужен один основной бп который будет отвечать за все(иногда не всеми) другие бп. Можно использовать свой вариант, но в UE4 предусмотрены несколько спец классов для этого:GameMode, GameState, GameInstance. Если кратко и не вдаваясь в теорию GameMode это серверный, GameState реплицируемый. Это означает что в случае сетевой игры средствами UE4 изменения внесённые сервером в GameState отразятся у всех клиентов. И наоборот GameMode является в случае сетевого решения классом только для сервера. GameInstance создан для хранения информации о текущей игре и не сбрасывается при смене уровня. Почитайте более подробно и более правильно тут
http://shootertutorial.com/2015/05/30/configuring-new-project-ue4-main-classes-explanation/ пользователь Snake как то линковал у нас.
А теперь к практике - как это всё использовать. (всё это как частный случай и не является нерушимой истиной)
В большинстве случаев удобно использовать объект GameInstance. В нём мы определяем все нужные нам бп, т.е. создаём переменные типов наших бп которые планируют общаться. В самих бп в бегин плей получаем через каст доступ к GameInstance и заполняем созданную там переменную именно этого бп типа. Теперь у нас есть не просто переменная а непосредственно ссылка на конкретный бп. Так делаем для всех нужных бп(те которые будут передавать данные друг другу) Второй шаг это получение ссылки на нужный нам бп что бы передать или получить данные. Опять кастом к GameInstance и теперь достаём нужную нам переменную.
Знаю что тут на сайте были люди сильно возмущавшиеся данным подходом как некорректным и костыльным. Костыльным он не является так как данный метод рекомендуют сами эпики. Не корректным да может быть, хранить там всё подряд просто не стоит. Например актора которого создаёт родитель и использовать его кроме него ни кто не будет нет смысла там прописывать, а хранить ссылку в самом родителе этого достаточно. И наоборот когда есть множество экторов или объектов которые постоянно взаимодействуют с друг другом - в этом случае гораздо правильнее использовать интерфейсы. В общем и целом способ удобный и рабочий, когда вы будете достаточно бучены архитектуре движка, то сможе и сами без проблем подобрать нужный вариант.
P.S при создании собственного не забудьте его указать в WorldSettings вашего текущего уровня(указывается в selected GameMode)
кастовать к гейинстанс просто: getGameInstace - castto(нужно указать непосредственно ваш гейм инстанс).
P.S 2 )) Про ошибку. Когда вы объявляете перемененную то вы говорите вот переменная класс машина. Ничего не работает!? А какая именно машина должна ехать или бибикать? Т.е. переменной должна быть присвоена именно та нужная машина. как-то так.
_________________
Project SKIT