@fasadin - dziękuje ślicznie za tyle cennych uwag i wskazówek, już się odnoszę do każdej :)
- rozpierdziel w assets. Pogrupowalbys to (prawym, utworz folder). Animation, Animator, Scripts, Materials, Sounds, Prefabs, Scenes
Do zrobienia, jak już tych obiektów zrobiło się trochę to faktycznie odszukanie konkretnego elementu zajmowało chwilę.
- Probuje otworzyc jaka kolwiek scene a tu mi sie crashuje caly projekt. Takze cos zle zrobiles. Wiec nie zobacze jak masz utworzony gameobject. Cos jest bardzo nie tak bo teraz w ogole go nie moge uruchomic. Nie uzywasz czasem jakies pirackiej wersji dla pro?
Hmm, używam normalnej wersji free, bez żadnych triali i innych cudów. Powiem więcej, u mnie się normalnie wszystko otwiera - w każdym razie poszukam w necie coś na ten temat.
- Magic numbery w ActionText. Te zmienne powinny byc publiczne zeby mozna w unity sobie je regulowac podczas play (wtedy wroca do oryginalnej wartosci po play)
Ok, czyli wniosek taki że wszystkie zmienne wpływające na rozgrywkę powinny być publiczne i dające się regulować z poziomu edytora.
- ActionTextxManager. Co jezeli Nie znajdzie Canvasu funkcja? Wtedy bedzie duzy problem (NullReferenceException). Powinno byc tam jakies sprawdzanie (najlepiej assert z czytelnym komunikatem)
Hmm, szczerze mówiąc nawet nie myślałem o obsłudze błędów. Swoją drogą pytanie w związku z tym bo teraz to jest tak wymieszane: w jaki sposób praktyczniej wrzucać obiekty do skryptów (zwłaszcza jak jest ich dużo) - poprzez edytor czy manualne ładowanie przy pomocy GameObjects.Find?
- Asteroid. Powaznie za kazdym update musisz szukac gracza? Nie lepiej OnEnable() albo Start? Albo Awake()? Nie moge znalezc (bo nie moge otworzyc unity) jak zdefiniowales Player. Ale ogolnie, teraz on jest globalny. Dlaczego Asteroid dodaje punkty playerowi? Nie powinno byc tak ze "plansza" o tym decyduje a nie obiekt ktory jest niszczony? Powinna byc jedna klasa ktora definiuje wszstkie zasady gry, ile pkt itd. Jezeli obiektow przybywa to zrobilbym polimofrizm i dla danego obiektu bylby "manager" zasad (jezeli dla asteroidy byloby 10 zasad a dla innych 3,5,7,8 itd). Tworzysz w update new Vector co moze byc zgubne. Co robisz w update to czekasz az helath bedzie ponizej 0 i wtedy wylaczasz renderer (plus jakis tam rzeczy) wiec na dobra sprawe to co sie tam dzieje nie powinno tego byc! Jezeli health jest ponizej 0 (mozesz to sprawdzac gdzies wyzej, tam gdzie definiujesz zasady) gdzies w Collider mowisz "oho uderzona wiec zmniejszam punkt, ma ponizej 0? Usuwam!". Bo teraz asteroida decyduje o swoim bycie. To bardzo zle
No właśnie, tutaj się zdecydowanie pogubiłem. Konkretnie kto kogo ma wykrywać i komu dodawać punkty. Czyli rozumiem że dobrym rozwiązaniem było by utworzenie (przykładowo dla asteroid) jakiegoś AsteroidsManager który zarządzałby czasem życia asteroid i wysyłał gdzieś wyżej "asteroida X zderzyła się z obiektem Y, zróbcie coś z tym".
- Background ciag dalszy. InitStars. Count powinien byc definiowany w insektorze w unity. Tworzysz duzo obiektow w update.
Ok, pomyślę jak to inaczej rozwiązać.
- widac ze piszesz w tym MonoDevelop. Wez unityvs.com i jedziesz. community wersja powinna pasowac do unity.
Zdecydowanie muszę to zrobić, zwłaszcza że formatowanie przy C# to jest totalna katastrofa. Część poprawiłem, część została i kod wygląda jak wygląda.
- Bullet. To samo co z astroidami, nie potrzebnie definiuje zasady gry. I szukasz jeszcze playera w kolizji. Mozesz ustawic dla jakich obiektow/tagow co ma kolidowac ze soba. Edit -> Project Settings -> Physics/physics 2d.
Czyli podobnie, jakiś BulletsManager.
- statystki trzymalbym w UserPrefs a nie w playerze. Albo w osobnej klasie Storage
oraz
- HAAAA juz widze co to jest player. Do usuniecia. Wszystko static, nie, nie, nie i jeszcze raz nie.
Programista płakał jak pisał "static" ;) W każdym razie zrobiłem to z pełną świadomością że jest źle, stąd pytanie gdzie umieszczać takie informacje jak liczba pocisków, statystyki itp. Chociaż po zastosowaniu tych managerów sprawa się ułatwia bo wystarczyło by im wrzucić tą klasę Storage.
- Jezeli uzywasz GUI system upewnij sie ze masz wersje 4.6 bo tam zmienili prawie wszystko w nim (gui jest dostepne nawet na githubie). Jest duzo lepsze od poprzednika. Nie jest super wydajne (napisalismy lepsze), ale jest w zupelnosci wystarczajace do gui.
4.6.1, sprawdzę.
@Trebuh
Nie można lecieć i strzelać jednocześnie.
Wiem że zabrzmi smutno ale... u mnie się da ;)
Dodał bym zróżnicowane asteroidy (tak, odejść od oryginału), nowe statki, amunicje itp. - ale bym grał ;3
Na początku to w ogóle miały dojść jeszcze statki kosmitów i inne dziwne rzeczy - natomiast asteroidy miały być tylko znaczącym dodatkiem. Jak wyszło tak wyszło ;)
W następnej wersji załatw lepszą grafikę to całe forum będzie grać ;p
Poszukam, te obecne były wzięte z losowych stron więc jak jest, każdy widzi.
Dzięki jeszcze raz wszystkim, tak sobie myślę że zaczynanie od 2D zamiast od razu rzucać się na 3D to był dobry pomysł... :)