Plugin-Erstellung/Java/AssetBundle Klasse
|
* Diese Seite ist in Bearbeitung * This page is in progress *
Bitte schaue später noch einmal vorbei, um weitere Änderungen zu erfahren.
Please check back later for additional changes.
|
AssetBundle Klasse
stellt ein in Unity erstelltes Asset-Bündel dar. Ein AssetBundle ist eine Sammlung mehrerer Assets, zum Beispiel Texturen, Sound-Assets, Models, Shader usw.
Es ist außerdem möglich, Prefabs mit nahezu beliebigen Unity-Komponenten zu speichern (zum Beispiel Partikeleffekte, Lichter, Physikkomponenten).
Werden Materialien oder eigene Shader verwendet, muss sichergestellt sein, dass diese HDRP-kompatibel sind.
Die AssetBundle Klasse erbt von Asset und wird innerhalb der Java Plugin-API verwendet,
um eigene Unity-Asset-Bündel in Plugins zu laden.
Dieser Artikel dokumentiert einige wichtige Methoden der AssetBundle Klasse und zeigt anhand ausgewählter Java-Beispiele, wie diese zu verwenden sind.
Hier sind nicht alle Methoden aufgeführt.
Die vollständige API-Dokumentation mit allen Methoden, Feldern und Konstruktoren ist im JavaDoc zu finden.
Für Plugin-Programmierung und Unity-Bündel ist es ratsam, die gleiche Unity 6000.0.60 Version wie das Spiel zu verwenden.
Dokumentation
Die AssetBundle Klasse ist unter JavaDoc: Class AssetBundle zu finden.
Die vollständige API-Dokumentation mit allen Paketen, Klassen, Methoden, Feldern und Konstruktoren ist im JavaDoc und im Assets Paket zu finden.
Java Paket
In der Java Plugin-API bezeichnet der Begriff "Package" (Paket) eine Gruppierung von zusammengehörigen Klassen, Interfaces und anderen Paketen. Die AssetBundle Klasse befindet sich im Package net.risingworld.api.assets.
Oberklasse
Die Klasse AssetBundle erbt von der abstrakten Klasse Asset, welche die Basisklasse für sämtliche Asset-Referenzen in der Plugin-API darstellt. Über die Oberklasse stehen allen AssetBundles die folgenden geerbten Methoden zur Verfügung: dispose(), equals(), getChecksum(), getDependency(), getExtension(), getHandle(), getPath(), getSource(), getType(), hashCode() und isDisposed().
Geerbte Nested Klassen
Eine Nested Class (geschachtelte Klasse) ist eine Klasse, die innerhalb einer anderen Klasse definiert wird. Aus der Oberklasse Asset werden die folgenden geschachtelte Klassen (Nested Classes) an AssetBundle vererbt:
- Asset.Source – Enum-Klasse, die die Quelle eines Assets beschreibt. Die möglichen Werte sind:
- Game – Asset is loaded from a built-in game file
- Plugin – Asset is loaded from a plugin
- PluginAssetBundle – Asset is loaded from a plugin asset bundle
- Custom – Asset is loaded from a custom source
- Internal – Asset is internal
- Asset.Type – Enum-Klasse, die den Typ eines Assets beschreibt (zum Beispiel SOUND, TEXTURE, MODEL, MATERIAL, MESH, PREFAB, STYLE_SHEET).
Geerbtes Feld
Aus der Oberklasse Asset wird das folgende Feld an AssetBundle vererbt:
DEFAULT_EXTENSION– die Standard-Dateiendung für Asset-Dateien.
Hinweise zu AssetBundles
Beim Erstellen eines AssetBundles in Unity ist zu beachten, dass Shader oder Effekte, die mit dem VFX Graph erstellt wurden, bei einem Unity-Versionswechsel des Spiels inkompatibel werden können. Dies geschieht in der Regel nur bei größeren Versionsupdates und ist vom verwendeten Unity-Setup abhängig. Ob ein Unity-Versionswechsel stattgefunden hat, ist dem Changelog zu entnehmen.
Weitere Informationen zur Erstellung von AssetBundles sind im Forum-Thread "Create Asset Bundles" zu finden.
Methoden
Dieser Abschnitt listet alle direkt in der Klasse AssetBundle definierten Methoden auf. Geerbte Methoden aus Asset und Object sind nicht enthalten; eine vollständige Liste steht im JavaDoc.
Statische Methoden
AssetBundle.loadFromFile(String file)– Lädt ein AssetBundle von einer Datei auf der Festplatte. Der Parameterfileerwartet den absoluten Pfad zur AssetBundle-Datei.
Instanzmethoden
String[ AssetBundle.getAllAssetNames()]– Liefert ein Array mit allen Asset-Namen (inklusive ihrer Pfade) innerhalb dieses AssetBundles.String AssetBundle.loadTextAsset(String assetName)– Lädt ein Text-Asset aus dem AssetBundle und gibt es als String zurück.byte[ AssetBundle.loadTextAssetBytes(String assetName)]– Lädt ein Text-Asset aus dem AssetBundle und gibt es als Byte-Array zurück.
Beispiel loadFromFile
Lädt das AssetBundle "examplebundle.bundle" aus dem Plugin-Ordner. Die Methode loadFromFile erwartet einen absoluten Pfad zur AssetBundle-Datei auf der Festplatte.
AssetBundle bundle = AssetBundle.loadFromFile(getPath() + "/examplebundle.bundle");
//Etwas mit dem AssetBundle machenDie Methode loadFromFile() mit Codeschnipsel ist unter javadoc RW: Class AssetBundle - loadFromFile(String) zu finden.
Wichtige Methoden in diesem Beispiel
AssetBundle.loadFromFile()– Lädt ein AssetBundle von einer Datei auf der Festplatte. Der Pfad wird absolut angegeben;getPath()liefert den Pfad zum Plugin-Ordner.Plugin.getPath()– Liefert den Pfad zum Plugin-Ordner, in der Regel als Basispfad für eigene Asset-Dateien verwendet.
Beispiel getAllAssetNames
Erstellt ein AssetBundle, listet alle enthaltenen Asset-Namen auf und gibt sie im Konsolen-Log aus. Das Codebeispiel zeigt zusätzlich, wie sich alle Asset-Namen als Java-Array zurückgeben und durchlaufen lassen.
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 getAllAssetNames() mit Codeschnipsel ist unter javadoc RW: Class AssetBundle - getAllAssetNames() zu finden.
Wichtige Methoden in diesem Beispiel
AssetBundle.loadFromFile()– Lädt ein AssetBundle von einer Datei auf der Festplatte.AssetBundle.getAllAssetNames()– Liefert alle Asset-Namen (inklusive ihrer Pfade) im AssetBundle als String-Array.Plugin.getPath()– Liefert den Pfad zum Plugin-Ordner, in der Regel als Basispfad für eigene Asset-Dateien verwendet.
Siehe auch
- Unity AssetBundles Erstellung für Rising World PlugIns
- Erstellung eines JAVA Plugin-Projekts für Rising World in Eclipse
- Wiki Kategorie: "Java"
- Wiki Kategorie: "Plugin-API"
- Plugin Klasse
- Wiki Kategorie: "Unity"
API Dokumentation
- JavaDoc RW: API Package summary
- JavaDoc RW: Package net.risingworld.api.assets
- JavaDoc RW: Class AssetBundle
- JavaDoc RW: Class Asset (Oberklasse)
- JavaDoc RW: Enum Class Asset.Source
Forum
- Rising World Forum: Create Asset Bundles
- Rising World Forum: Getting started
- Rising World Forum: Create a Plugin
- Rising World Forum: Code Schnipsel
Kategorien
| Tutorial Kategorien
Tutorial (3 S) |
Plugin-Erstellung
|