В простейшей форме, если ваш Actor
может быть приведен к BP_Ladder
, он вернет приведенный объект на выходной вывод.
Просто чтобы убедиться, что вы знаете, как работает приведение, я должен указать, что вы не можете приводить данный тип к какому-либо не связанному произвольному типу; он должен быть «кастуемым» к месту назначения. Так что, если вы думаете, что объект Actor
, возвращаемый вашим перекрытием, действительно является классом BP_Ladder
или проектом, который унаследован от BP_Ladder
, то вы должны быть в порядке. Но это должно быть так; в противном случае он будет терпеть неудачу каждый раз.
https://docs.unrealengine.com/en-us/Engine/Blueprints/UserGuide/CastNodes
Извините, если я покровительствую, но если актерский состав не ' t работает 9/10, он не был использован правильно.
Хорошо, что, если вы думаете, что вы действительно приводите правильный тип, и он все еще не работает, вам нужно будет отладить проект с целью найти, какой тип передается узлу приведения, что приводит к сбою.
Object
на входной стороне литейного бокса. Он должен показывать альтернативный текст, содержащий подробную информацию о переменной. https://docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Debugging
Пример
[ 1132] Я сделал скриншот рабочей игры; в этом вы увидите:
Create Rolling Stock
DepotComponent...Depot
Есть несколько ошибок при использовании чертежей; одним из них в этом случае может быть то, что у вас может быть два класса с одинаковыми именами (хотя они могут иметь разные внутренние «имена сценариев» - фактически полный путь). Когда вы отлаживаете переменную объекта, убедитесь, что вы соответствуете всему пути к местоположению вашего ресурса в вашей папке содержимого; это гарантирует, что вы действительно пытаетесь привести к объекту, который, по вашему мнению, действительно есть.
Еще одна классическая проблема - «горячие перезагрузки». Иногда редактору необходимо перезагрузить модуль после сборки на лету, но конфликт классов происходит внутри; это приводит к тому, что новая версия класса получает другое имя (с префиксом HOTRELOADED). Остерегайтесь этого; это может привести к тому, что вы будете иметь дело с двумя различными типами при касте, и вы даже не поймете Настоящий здравомыслящий сапер. В случае сомнений закройте и снова откройте редактор; это исправляет это каждый раз.
Существует хороший ряд текстов об этом на CodeProject
Разработчик схемы WPF - часть 1
Разработчик схемы WPF - часть 2
Мне также понравилась статья WPF DrawTools о CodeProject, в которой очень хорошо отформатирован набор исходных классов. В ней приведен более простой пример контурных фигур - эллипс, прямоугольник, линия, полилиния и текст. К сожалению, она была удалена в 2015 году, как кто-то мне только что указал.
Копия статьи доступна через Wayback Machine, но связанный с ней исходный код был удален вместе с оригинальной статьей. Статья содержит диаграммы классов и достаточно подробную информацию, чтобы дать вам хорошее представление об общем дизайне.
Сейчас я думаю, что стоит взглянуть на Kimono Designer, хотя, похоже, что это было объявлено с большим волнением, и код code не обновлялся уже год. Обратите внимание, что есть порт WPF, как обсуждалось в этой статье и на примере GitHub.
.