Plugin-Erstellung/Java/Arbeiten mit AssetBundle

Aus Rising World Wiki


Arbeiten mit AssetBundle ist ein Rising-World-Wiki-Tutorial, das zeigt, wie ein AssetBundle innerhalb eines Java-Plugins geladen, in der Spielwelt platziert, animiert und wieder entfernt werden kann. Das Tutorial baut auf dem AssetBundles Erstellung Tutorial auf, in dem beschrieben wird, wie AssetBundles in Unity erstellt und gespeichert werden. In diesem Tutorial geht es um die (Plugin) Java-Seite: das Laden über die Plugin-API, die Konfiguration und die Anzeige im Spiel.

Voraussetzungen

  • Grundlegende Java-Kenntnisse
  • Eine eingerichtete Entwicklungsumgebung, zum Beispiel Eclipse für Rising World Plugins
  • Ein bereits erstelltes Unity-AssetBundle
  • Grundkenntnisse im Umgang mit AssetBundles, siehe AssetBundles Erstellung

Übersicht der relevanten Klassen

Die wichtigsten Klassen für das Arbeiten mit AssetBundles.

Paket net.risingworld.api.assets

Paket net.risingworld.api.assets enthält die Asset-Klassen zum Laden und Verwalten von Dateien.

  • Asset – Abstrakte Basisklasse aller Assets
  • AssetBundle – Container, der mehrere Assets zusammenfasst
  • PrefabAsset – Ein Prefab aus einem AssetBundle, einer Datei oder aus dem Spiel
  • ModelAsset – Eine 3D-Modelldatei (fbx, obj, gltf, ...)
  • MeshAsset – Ein Mesh, das programmatisch aus Vertices und Indices aufgebaut wird
  • MaterialAsset – Ein Material, das einem 3D-Objekt zugewiesen werden kann
  • TextureAsset – Eine Textur (jpg, png, tga, ...)
  • SoundAsset – Eine Audiodatei (ogg, mp3, wav, ...)
  • ModelImportSettings – Erweiterte Einstellungen beim Laden von Modelldateien

Paket net.risingworld.api.worldelements

Enthält die worldelements-Klassen zum Platzieren und Anzeigen von Objekten in der Spielwelt. ...

  • GameObject – Basisklasse für alle benutzerdefinierten Weltobjekte
  • Prefab – Instanz eines PrefabAssets, das in der Welt platziert wird
  • Model – Ein 3D-Modell mit Material, das direkt in der Welt platziert wird
  • Light – Eine Lichtquelle

...

Paket net.risingworld.api.objects

...

AssetBundle laden

Der zentrale Einstiegspunkt für AssetBundles ist die Methode AssetBundle.loadFromFile(String file). Die Methode erwartet einen absoluten Pfad zur AssetBundle-Datei. In der Regel wird der Pfad aus dem Plugin-Verzeichnis zusammengesetzt, das über die Methode Plugin.getPath() geliefert wird.

//AssetBundle aus dem Plugin-Ordner laden
AssetBundle bundle = AssetBundle.loadFromFile(getPath() + "/examplebundle.bundle");

Die Methode ist unter JavaDoc: Class AssetBundle - loadFromFile zu finden.

Asset-Namen auflisten

Ein AssetBundle kann eine beliebige Anzahl von Assets enthalten. ...

AssetBundle bundle = AssetBundle.loadFromFile(getPath() + "/examplebundle.bundle");

//Alle Asset-Namen aus dem Bundle holen
String[] names = bundle.getAllAssetNames();

for(String name : names){
    System.out.println(name);
}

Die Methode ist unter JavaDoc: Class AssetBundle - getAllAssetNames zu finden.

Prefab

Ein Prefab wird über ein PrefabAsset erzeugt, das aus einem AssetBundle, aus einer Datei oder direkt aus den Spielinhalten geladen werden kann. Mit dem PrefabAsset allein ist noch nichts in der Welt sichtbar; es muss zunächst eine Prefab-Instanz erzeugt und diese mit Player.addGameObject() an einen Spieler angehängt werden.

//AssetBundle aus dem Plugin-Ordner laden
AssetBundle bundle = AssetBundle.loadFromFile(getPath() + "/assets/MyBundle.bundle");

//PrefabAsset aus dem AssetBundle laden
PrefabAsset asset = PrefabAsset.loadFromAssetBundle(bundle, "MyPrefab.prefab");

//Prefab Spielobjekt mithilfe des Assets erzeugen
Prefab prefab = new Prefab(asset);

//Layer setzen (bestimmt, wie der Spieler mit dem Prefab kollidiert)
prefab.setLayer(Layer.DEFAULT);

//Position setzen - zum Beispiel an der Spielerposition spawnen
prefab.setLocalPosition(player.getPosition());

//An Spieler anhängen (sodass es für diesen Spieler sichtbar wird)
player.addGameObject(prefab);

Die Methode ist unter JavaDoc: Class Prefab zu finden.

Siehe auch

Forum

Unity Dokumentation

API Dokumentation

Wiki Seiten: Plugin-Erstellung


Kategorien

Unity
Unity(6 S)
Keine Unterkategorien
Tutorial Kategorie
Tutorial(5 S)
Keine Unterkategorien