Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine SDK: Документация
            Разработки для jMonkeyEngine SDK
                Проект и Игровые ресурсы

Проект и Игровые ресурсы

Опубликованно: 17.10.2017, 7:46
Последняя редакция, Andry: 18.10.2017 13:24

SDK активно использует системы, обеспечиваемые базовой платформой для обработки игровых ресурсов и проектов, и расширяет систему с помощью специальных функций jME3.

ProjectAssetManager

Все объекты AssetDataObjects и SceneExplorerNodes позволяют получить доступ к ProjectAssetManager проекта, из которого они были загружены.

ProjectAssetManager pm = node.getLookup().lookup(ProjectAssetManager.class)

ProjectAssetManager по большей части является обычным DesktopAssetManager для каждого проекта с добавленной функциональностью:

  • Доступ к файлу FileObject в папке assets проекта для загрузки и сохранения данных
  • Преобразование полных путей файлов в пути относительных игровых ресурсов и наоборот
  • Получение списков всех текстур, материалов и.т.п. в проекте
  • И более удобный вещи.. :)

AssetDataObject

Большинство «файлов», с которыми вы сталкиваетесь в SDK, поступают в виде объектов AssetDataObjects. Все узлы, с которыми вы сталкиваетесь, содержат объект AssetDataObject, из которого они были загружены. Он обеспечивает не только доступ к FileObject конкретного файла, но и объект AssetData, который позволяет получить доступ к конкретным свойствам и данным jME. Объект AssetData также позволяет загружать объект через jME3 assetManager. Он доступен через поиск Узла или объекта AssetDataObject:

assetDataObject.getLookup().lookup(AssetData.class)

Новые типы файлов Asset

Когда вы добавляете новый тип файла для формата модели или другой тип файлов игровых ресурсов, который может быть загружен в jME3, вы можете начать с использования шаблона нового типа файла (Создать файл ▸ Разработка модулей ▸ Тип файла). Измените объект DataObject, чтобы расширить AssetDataObject (общий), SpatialAssetDataObject (некоторый тип модели) или BinaryModelDataObject (в основном j3o сохраняемый файл). И, возможно, переопределите методы loadAsset и saveAsset, которые используются объектом AssetData, чтобы вернуть правильный AssetKey тип (необходимый для работы импорта свойств).

public class BlenderDataObject extends SpatialAssetDataObject {
    public BlenderDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {
        super(pf, loader);
    }
}

Класс AssetManagerConfigurator может быть создан, чтобы настроить assetManager проектов и импортера модели для использования нового типа игрового ресурса:

@org.openide.util.lookup.ServiceProvider(service = AssetManagerConfigurator.class)
public class BlenderAssetManagerConfigurator implements AssetManagerConfigurator {
    public void prepareManager(AssetManager manager) {
        manager.registerLoader(com.jme3.scene.plugins.blender.BlenderModelLoader.class, "blend");
    }
}

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.