Ich weiß, ich habe gelesen und weiß, dass statische Abstracts nicht existieren. Dennoch würde ich gerne wissen, wie ich die Idee, alle Instanzen zu erhalten, die von einer abstrakten Klasse stammen, sicher umsetzen kann. Ich weiß, dass ich eine Hilfsmethode schreiben kann, aber ich möchte lieber eine abstrakte Klasse erstellen, die eine statische abstrakte Methode hat, die jede abstrakte Unterklasse persönlich implementieren muss. um nur einen Satz von abgeleitetenInstanzen zu haben.C# public abstrakte Methode zum Erstellen und Ableiten von Instanzen
Hier ist, was ich mit ...
public abstract class _ScriptableAbstract : ScriptableObject
{
protected static _ScriptableAbstract[] DerivedInstances;
public static abstract _ScriptableAbstract[] GetDerivedInstances();
}
und der Klasse, dass
public abstract class _EmergeAnimation : _ScriptableAbstract
{
protected GameObject gameObject;
public abstract void Setup(GameObject gameObject);
public abstract IEnumerator Execute();
public static _EmergeAnimation[] GetDerivedInstances()
{
if (DerivedInstances == null)
{
DerivedInstances = Instances created with Activator/ScriptableObject and Reflection.
}
return DerivedInstances;
}
}
für mich So wäre es am besten Gattungsgemäße Verfahren mit der _ScriptableAbstract Klasse zu benutzen, wäre die Umsetzung kam so Ich kann diese statische Zusammenfassung verwenden.
Nun, das ist das Beste, was ich erklären kann. Es ist spät und ich bin müde. Alles zu verbalisieren macht es komplizierter. Eigentlich bin ich froh, dass ich mit meinem Bauch programmiere und nicht mit meinem Kopf ^^
Ich weiß das. Ich arbeite gerade an einem ausführlichen Editor. Dort möchte ich Klassen erstellen, die von einer Elternklasse abgeleitet sind, so dass sie immer dann als Auswahl aufgeführt werden, wenn ich ein Feld mit einer abstrakten Klasse wie _EmergeAnimations habe. Wenn diese Option ausgewählt ist, wird die Setup-Methode der abgeleiteten Klasse und die nachfolgende Execute Coroutine aufgerufen. (Gibt viel mehr Freiheit als Animationen) (Ich habe die Frage aktualisiert) –