Решение проблем
Пустой экран, ошибки C#, ввод, коллизии и экспорт.
Проверьте три вещи: какой документ запущен, прошла ли последняя сборка и что написано в первой ошибке. Не удаляйте кэш и не переустанавливайте движок до этих проверок.
Вместо 3D-сцены пустой экран
- Запустите нужный документ через F6. F5 может открывать другой главный документ.
- Проверьте наличие
Camera3Dи еёCurrent. - У видимого объекта должен быть назначен
Mesh. СамEntity3Dничего не рисует. - Проверьте положение камеры. В первом уроке есть готовые значения для куба около начала координат.
- Проверьте свет, свойство Visible и родительские объекты: скрытый родитель может скрывать потомков.
- Посмотрите Output и Debugger: ошибка загрузки могла остановить нужное поведение.
Если видно объект в редакторе, но не в игре, помните о двух разных камерах. Предпросмотр света редактора тоже не равен освещению игры.
Персонаж не двигается
| Проверка | Что исправить |
|---|---|
| Фокус ввода | Щёлкните по игровому окну |
| Действия Input Map | Сверьте каждое имя с кодом, включая регистр и подчёркивания |
| Прикреплённый скрипт | Файл должен быть в свойстве Script нужного персонажа |
| Сборка | Устраните ошибки, сохраните и пересоберите C# |
| Скорость в инспекторе | Значение не должно быть 0 |
| Пауза | Остановите запуск и начните снова, чтобы исключить случайную паузу |
Для урока 3D используются move_forward и move_back, а в уроке 2D — move_up и move_down. Это намеренные имена действий, а не автоматически созданные команды движка.
Персонаж проваливается сквозь пол
Видимый меш не создаёт столкновение. У персонажа и пола должны быть CollisionShape3D с назначенными ресурсами Shape. В 2D нужны соответствующие классы 2D: физические миры 2D и 3D не сталкиваются друг с другом.
Проверьте, что формы не отключены, их размеры ненулевые и они являются детьми правильных физических тел. Верните слои и маски из учебного примера к значениям по умолчанию. Для движения CharacterBody используйте MoveAndSlide(), а не прямую замену Position каждый кадр.
C# не собирается
Сначала читайте ошибку компилятора, которая указывает на ваш .cs-файл. Частые причины:
| Сообщение или симптом | Что проверить |
|---|---|
Пропущена ; или скобка | Сравните полный метод с примером; проверьте и предыдущую строку |
Неизвестны Entity3D или Reckfell | Наличие using Reckfell;, правильного .csproj и SDK Reckfell |
Требуется partial | Класс скрипта должен быть public partial class |
| Повторное определение класса | Не осталось ли двух скриптов с одинаковым именем класса |
| SDK не найден | Полностью ли распакована поставка, используется ли включённый .NET 10 и нужная версия локального пакета |
| Базовый тип не подходит объекту | CharacterBody3D-скрипт нельзя прикрепить к обычному Entity3D |
Имя файла и класса в первых уроках должны совпадать. Не вставляйте второй полный класс внутрь существующего класса: замените файл целиком, как указано в уроке. Убедитесь, что внешний редактор действительно сохранил изменения на диск.
Объект не найден или ссылка равна null
Путь GetEntity начинается от объекта со скриптом. Если камера лежит в Pivot/Camera3D, путь Camera3D не найдёт её. Проверьте имена в локальной иерархии и фактическую структуру после запуска.
Получайте обычных детей в _Ready(), а не в момент объявления поля. Если объект уже удалён через QueueFree(), не используйте сохранённую ссылку как действующий объект. NullReferenceException — повод проверить, какое значение не было получено; просто скрыть сообщение недостаточно.
Значение из C# не меняется в игре
Проверьте экспортированное свойство в инспекторе: сохранённое переопределение может отличаться от начального значения в тексте скрипта. Проверьте, тот ли экземпляр вы редактируете. Изменения дерева Remote во время запуска не следует считать постоянной правкой исходного документа.
Для изменений поведения сохраните C#-файл, остановите игру, соберите проект и запустите заново. Так вы исключите запуск старой сборки из проверки.
Ресурс потерялся после перемещения
Проверьте новый путь в Assets и строки asset:// в коде. Редактор обновляет известные ресурсные связи, но не произвольные строковые пути C#. Верните ресурс из резервной копии, если он был удалён. В дальнейшем переносите файлы через Assets.
Экспорт не открывается
Сверьте версии редактора и шаблонов, прочитайте журнал экспорта, сохраните все созданные рядом с EXE файлы. Убедитесь, что выбран Export Project, а не только пакет ресурсов. Повторите проверку экспорта.
Как описать проблему, чтобы вам помогли
Подготовьте версию Reckfell, Windows и видеокарту, точный текст первой ошибки, имя запускаемого документа и короткие шаги воспроизведения. Приложите относящуюся к проблеме иерархию и небольшой фрагмент кода. Уберите секреты и личные данные.