Jump to content

Не загружается путь к файлу.


photo

Recommended Posts

Здравствуйте.
 

Прохожу уроки из быстрого старта по программированию.
На создании стрельбы столкнулся с тем, что не загружается путь к ноде пули (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 by vladen41k
Link to comment

Здравствуйтеvladen41k

Похоже, что не назначен файл с нодой пули...

can't open "" file - > сигнализирует о том, что путь до файла с пулей - пустая строка...

Проверьте пожалуйста, накинута ли bullet.node в поле Bullet Path компоненты PlayerController в редакторе? После назначения нужно сохранить мир (File->Save World), перейти в IDE и запустить проект. 

Спасибо!

Link to comment

Добрый день.

Так в том-то и дело, что нода добавлена и проект сохранён. Но поведение такое, как будто нода не добавлена.

bollet.PNG

Link to comment

Добрый день!

Проблема похоже в лишней строчке в компоненте PlayerComponent.cpp , добавляющая компоненту Projectile к bullet (в чем нет необходимости, поскольку она была добавлена ранее в Редакторе), - соответственно, первая компонента Projectile спавнит пулю корректно, а вот вторая , добавленная через код, вызывает ошибку (поскольку в коде нет установки для этой второй компоненты соответствующих параметров, т.е. bullet_path для нее действительно пуст).

Попробуйте удалить строчку из файла PlayerComponent.cpp (ошибки должны исчезнуть):

ComponentSystem::get()->addComponent<Projectile>(bullet);

Обновление примера в процессе, похоже не во всех версиях фиксы применились. Приносим извинения за доставленные неудобства.

Со всеми обновлениями в примере постараемся закончить в самое ближайшее время.

Спасибо за сообщение!

Link to comment

Добрый день.

Спасибо за ответ! Я закомментировал три строчки:

ComponentSystem::get()->addComponent<Projectile>(bullet);
Destroy* destroy_component = ComponentSystem::get()->addComponent<Destroy>(bullet);
destroy_component->lifeTime = 5.0f;

Без них всё работает, но ошибки продолжают сыпаться в консоль при каждом выстреле и не всегда отрабатывает звук выстрела. Как я понял, проект падал на этапе выбора между левым и правым орудием, после присвоения lifeTime = 5.0f.

Link to comment

Здравствуйте!

Странно, на этом этапе ошибок быть не должно. Можете прислать архив с проектом в ЛС? Попробуем разобраться в чем проблема.

Спасибо!

Link to comment

Здравствуйте!

Причину ошибок нашел: похоже, что Вы случайно дважды назначили компоненту PlayerController на одну из плиток пола floor_213.

Вот протоколирование попыток загрузить пулю с указанием вызывающей ноды :

image.png

И вот она эта нода с компонентами (у который пустые поля):

image.png

После удаления компоненты ошибки должны уйти (у меня, по крайней мере, они исчезли).

Надеюсь, что это поможет!

  • Like 1
Link to comment
×
×
  • Create New...