vladen41k Posted January 29, 2022 Share Posted January 29, 2022 (edited) Здравствуйте. Прохожу уроки из быстрого старта по программированию. На создании стрельбы столкнулся с тем, что не загружается путь к ноде пули (bullet_path). https://developer.unigine.com/en/docs/latest/start/quick_start/shooting/?rlang=cpp шаг 2, пункт 7. В итоге получаю следующую ошибку: Xml::load(): can't open "" file World::loadNode(): can't open "" file Edited January 29, 2022 by vladen41k Link to comment
fox Posted January 31, 2022 Share Posted January 31, 2022 Здравствуйте, vladen41k! Похоже, что не назначен файл с нодой пули... can't open "" file - > сигнализирует о том, что путь до файла с пулей - пустая строка... Проверьте пожалуйста, накинута ли bullet.node в поле Bullet Path компоненты PlayerController в редакторе? После назначения нужно сохранить мир (File->Save World), перейти в IDE и запустить проект. Спасибо! Link to comment
vladen41k Posted February 1, 2022 Author Share Posted February 1, 2022 Добрый день. Так в том-то и дело, что нода добавлена и проект сохранён. Но поведение такое, как будто нода не добавлена. Link to comment
fox Posted February 1, 2022 Share Posted February 1, 2022 Добрый день! Проблема похоже в лишней строчке в компоненте PlayerComponent.cpp , добавляющая компоненту Projectile к bullet (в чем нет необходимости, поскольку она была добавлена ранее в Редакторе), - соответственно, первая компонента Projectile спавнит пулю корректно, а вот вторая , добавленная через код, вызывает ошибку (поскольку в коде нет установки для этой второй компоненты соответствующих параметров, т.е. bullet_path для нее действительно пуст). Попробуйте удалить строчку из файла PlayerComponent.cpp (ошибки должны исчезнуть): ComponentSystem::get()->addComponent<Projectile>(bullet); Обновление примера в процессе, похоже не во всех версиях фиксы применились. Приносим извинения за доставленные неудобства. Со всеми обновлениями в примере постараемся закончить в самое ближайшее время. Спасибо за сообщение! Link to comment
vladen41k Posted February 2, 2022 Author Share Posted February 2, 2022 Добрый день. Спасибо за ответ! Я закомментировал три строчки: ComponentSystem::get()->addComponent<Projectile>(bullet); Destroy* destroy_component = ComponentSystem::get()->addComponent<Destroy>(bullet); destroy_component->lifeTime = 5.0f; Без них всё работает, но ошибки продолжают сыпаться в консоль при каждом выстреле и не всегда отрабатывает звук выстрела. Как я понял, проект падал на этапе выбора между левым и правым орудием, после присвоения lifeTime = 5.0f. Link to comment
fox Posted February 2, 2022 Share Posted February 2, 2022 Здравствуйте! Странно, на этом этапе ошибок быть не должно. Можете прислать архив с проектом в ЛС? Попробуем разобраться в чем проблема. Спасибо! Link to comment
fox Posted February 4, 2022 Share Posted February 4, 2022 Здравствуйте! Причину ошибок нашел: похоже, что Вы случайно дважды назначили компоненту PlayerController на одну из плиток пола floor_213. Вот протоколирование попыток загрузить пулю с указанием вызывающей ноды : И вот она эта нода с компонентами (у который пустые поля): После удаления компоненты ошибки должны уйти (у меня, по крайней мере, они исчезли). Надеюсь, что это поможет! 1 Link to comment
Recommended Posts