Ich habe Unity ausprobiert, bisher habe ich viel Zeit damit verbracht, eine Charakterklasse mit Statistiken und Leistungen zu erstellen, wie in Dungeons and Dragons, bisher arbeiten sie alle naja, aber jetzt kommt es mir auf den wunsch, gang für einen solchen charakter zu schaffen.Unity 5.6 und Erstellen von Objekten mit C# -Klassen
Ich habe gesehen, dass Sie Objekte aus dem Prefab-Abschnitt erstellen und dann Skript-Snippets hinzufügen können, um ihr Verhalten oder sogar ihr Aussehen zu ändern, aber es fühlt sich seltsam an, wenn ich Klassen von Grund auf neu zu erstellen bin bestehende Klasse, von der ich kaum weiß, wie sie funktioniert.
So könnte ich einfach in den Skriptordner gehen und ein neues C# -Skript mit allen Werten erstellen, die im Allgemeinen verwendet werden, zum Beispiel haben alle Rüstungen eine Rüstungsklasse und Gewicht, also könnte ich einen General machen Klasse, die Item
dann erbt seine Eigenschaften Armor
, Weapons
und Consumables
, und jeder von ihnen in spezifischere Objekte werden dann weiter spezialisiert kann nun die eigentliche Frage kommt genannt alle Eigenschaften eines Objekts hat:
Sollte es sein besser, um eine Klasse zu erstellen, die bestimmte Attribute enthält, zum Beispiel eine Klasse namens Eisenklinge, die von Waffen und von Gegenständen bis zum Spielobjekt erbt, oder sollte ich weitermachen Eine Klasse namens Waffe, die alle Werte und Namen in Listen oder Arrays enthält? Und dann ... wie instanziiere ich meine Skripte ohne die Notwendigkeit, ein Objekt im Spiel zu erstellen, das beim Löschen auch das Skript aus der Szene entfernt?
Sorry für so viele Informationen, aber ich bin nur ein bisschen überwältigt von all den Dingen, die Sie tun können und nicht mit Unity tun können.
* Nicht * das Folgen des "intended" -Musters von Unity kann zu Leistungsverbesserungen führen, da ein erheblicher Overhead beim Aufruf besteht 'Update()' auf Tausenden von MonoBehaviour-Skripten. Ein zentrales "Haupt" -Skript, das eine ähnliche Methode aufruft, funktioniert viel besser. Tatsächlich haben einige Spiele überhaupt keine anderen MonoBehaviour-Skripte! Ich neige dazu, ein Paar zu verwenden, damit ich von einer GameObject-Referenz auf eine System.Object-Referenz (von einem Typ T) auf einfache Art und Weise gehen kann. Aber dieselben Daten können auch in einem Dictionary gespeichert werden. – Draco18s