Zaczynam więc wprowadzać atak na naszą przestrzeń 2D RTS (jest to Unity, więc jest sterowane komponentowo). Początkowo było tak proste, jak „wróg w zasięgu, zadane obrażenia”. Będzie jednak wiele „rodzajów” broni / ataków związanych z ich konkretnym statkiem lub strukturą. Jak również inne czynniki związane z przeszłymi obrażeniami, takie jak rodzaj obrażeń i ewentualnie bezwładność w przyszłości.
Czy mielibyście każdy typ jednostki i struktury, który ma swój własny typ ataku? Oznacza to, że tworzysz skrypt dla każdej jednostki / struktury, która określa jego typ ataku, obrażenia, efekty, zasięg, cząstki, duszki ... itd. I dołączasz jako element?
Lub stwórz skrypt, który definiuje typ ataku, skrypt dla typu pocisku powiązanego z tym ... itd. A następnie rozszerz je i zmodyfikuj dla każdej jednostki, dołączając każdy skrypt do jednostki / struktury.
Mam nadzieję, że mam jakiś sens, tak długo się nad tym zastanawiam. Nie jestem pewien, czy rozwiązuję problem, czy po prostu wymyślam własne problemy i wkopuję się w dziurę.
Jeśli masz grę, która może mieć wiele rodzajów ataków, które mogą, ale nie muszą ograniczać się do konkretnej jednostki / struktury, w jaki sposób projektujesz strukturę, która łączy ją z konkretnymi jednostkami / strukturami w środowisku projektowania opartym na komponentach ?
Jeśli nie jest to wystarczająco jasne, daj mi znać.
Edycja: Świetne odpowiedzi, dziękuję.
Rozszerzone pytanie:
Wydaje się, że odpowiedzi różnią się od „każdy obiekt może mieć własny skrypt atakujący” do „Mają typy ataków jako własne skrypty i przypisują je do każdego obiektu, aby uzyskać rozwiązanie wielokrotnego użytku”. Powiedzmy, że mam atak „blasterowy”, strzela on z pewnym czerwonym pociskiem z określoną prędkością. Obrażenia, szybkostrzelność i rozmiar pocisku zależą od tego, czy jednostka go wystrzeli. Czy lepiej jest po prostu wykonać skrypt ataku dla tej jednostki, czy spróbować zmodyfikować „atak blasterowy”, tak aby pasował do celu każdej jednostki, która chce z niej skorzystać?