Hallo beste tweakers!
Ik ben weer na een paar maanden bezig met mijn game in Unity.
Daar doe ik nu een grote schoonmaakbeurt en heb al veel verwijderd.
Dit geeft mij de kans om een aantal systemen opnieuw uit te denken.
Nu ben ik bezig met een nieuw Entity systeem:
Entity -> ToolEntity -> HammerEntity
Entity -> BuildingEntity -> SmelteryEntity
enz...
Entity is abstract en heeft een abstracte property 'UIFriendlyName'. Dit is de naam voor de entity die geschikt is om aan de gebruiker te laten zien. Elke subclass moet dus die property implementeren en een waarde geven.
Nu wil ik een lijst in de UI maken met alle entities die je in de game dan kan spawnen.
Dus met reflection haal ik alle non-abstract types op die een subclass zijn van Entity.
Misschien zie je het probleem al. Ik wil nu dus de UIFriendlyName hebben op basis van de entity Type.
Daarvoor heb ik al wel code gevonden die werkt, maar die schrijft zelf wat IL code en maakt een null instance. Erg lelijk! http://stackoverflow.com/...without-creating-instance
Een nieuwe instance maken voor elke gevonden type zou kunnen, maar dat lijkt mij niet echt handig met de verouderde GC die Unity heeft.
Heeft één van jullie een idee wat ik kan doen in mijn situatie?
Ik weet dat het niet bestaat, en ook waarom, maar abstract static members zouden erg fijn zijn in deze situatie.
Bedankt voor het lezen,
Dion Dokter
Ik ben weer na een paar maanden bezig met mijn game in Unity.
Daar doe ik nu een grote schoonmaakbeurt en heb al veel verwijderd.
Dit geeft mij de kans om een aantal systemen opnieuw uit te denken.
Nu ben ik bezig met een nieuw Entity systeem:
Entity -> ToolEntity -> HammerEntity
Entity -> BuildingEntity -> SmelteryEntity
enz...
Entity is abstract en heeft een abstracte property 'UIFriendlyName'. Dit is de naam voor de entity die geschikt is om aan de gebruiker te laten zien. Elke subclass moet dus die property implementeren en een waarde geven.
Nu wil ik een lijst in de UI maken met alle entities die je in de game dan kan spawnen.
Dus met reflection haal ik alle non-abstract types op die een subclass zijn van Entity.
Misschien zie je het probleem al. Ik wil nu dus de UIFriendlyName hebben op basis van de entity Type.
Daarvoor heb ik al wel code gevonden die werkt, maar die schrijft zelf wat IL code en maakt een null instance. Erg lelijk! http://stackoverflow.com/...without-creating-instance
Een nieuwe instance maken voor elke gevonden type zou kunnen, maar dat lijkt mij niet echt handig met de verouderde GC die Unity heeft.
Heeft één van jullie een idee wat ik kan doen in mijn situatie?
Ik weet dat het niet bestaat, en ook waarom, maar abstract static members zouden erg fijn zijn in deze situatie.
Bedankt voor het lezen,
Dion Dokter