Sprawdzam Sudoku - Kurs Unity - 3. Szkielet aplikacji
W poprzednim kroku skonfigurowaliśmy Unity oraz GitHub. W tym kroku stworzymy szkielet aplikacji, która posiada stronę główną, panel z ustawieniami, pusty panel z grą, itp.:
Implementacja
Ponieważ widać, że przez ostanie lata sporo się w Unity zmieniło (np. teraz używa się
TextMeshPro zamiast zwykłego tekstu) rozpoczynamy od przerobienia prostego samouczka:Zacznijmy od strony głównej. Chcemy aby w tle znajdowało się zdjęcie Sudoku, ale nie chcemy płacić za zdjęcia "stockowe", dlatego też drukujemy jedną stronę z zadań z WSPC 2021 i robimy zdjęcie samodzielnie:
Pierwszym wyzwaniem jest sprawienie, aby strona tytułowa wyglądała dobrze zarówno w orientacji pionowej jak i poziomej telefonu. Osiągamy to wykorzystując
AspectRatioFitter dla tła jak opisane tutaj.Po przeczytaniu tego dodajemy tytuł zakotwiczony do lewego górnego narożnika oraz panel z przyciskami zakotwiczonymi do prawego dolnego narożnika.
Otrzymujemy następujące UI:
Dodajemy lecącą w tle muzykę z pixabay.com.
Podążając za Creative Core UI : Add toggles and sliders, pod przyciskiem "Settings" stronę z ustawieniami audio.
Przełączanie pomiędzy stronami implementujemy w edytorze Unity, bez pisania żadnego kodu. Przykładowo, obsługa kliknięcia na przycisk "Settings" to trzy akcje:
- aktywowanie panelu z ustawieniami
- dezaktywacja tytułu
- dezaktywacja panelu z przyciskami
Nieco więcej problemu sprawia stworzenie planszy z grą, oraz takie jej ustawienie, aby wyglądała dobrze przy każdej orientacji telefonu lub tabletu.
Korzystając z symulatora Unity sprawdzamy czy efekt jest zadowalający:
Udało się uzyskać w miarę dobry wygląd przy wykorzystaniu jedynie
GridLayout i odpowiedniego zakotwiczenia paneli.Na koniec dodajemy obsługę przycisku "Quit". Jest to jedyne miejsce, gdzie musimy napisać parę linijek kodu. Tworzymy więc obiekt
GameManager i pod kliknięcie przycisku "Quit" podpinamy metodę menadżera o tej samej nazwie. Następnie implementujemy metodę Quit i upewniamy się, że będzie zawołana również wtedy, kiedy użytkownik naciśnie klawisz "Escape":public class GameManager : MonoBehaviour
{
...
// Update is called once per frame
void Update()
{
if(Input.GetKey("escape"))
{
Quit();
}
}
public void Quit()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit()
#endif
}
}Już teraz widać rzeczy które można poprawić, ale zostawiamy je sobie na później:
- tłumaczenie aplikacji na inne języki (np. polski)
- zapisywanie / wczytywanie ustawień aplikacji (teraz np. czy odtwarzać muzykę i jak głośno, w przyszłości zapisywanie stanu gry)
- ładniejsze przyciski (wyglądające jak np. komórki z planszy do sudoku), do zrobienia np. w GIMP'ie.
GitHub
Zmiany związane z tym krokiem znajdują się tutaj:
Kolejne kroki
W następnym kroku zaimplementujemy ustawianie wartości w komórkach planszy.
Polski | Angielski












Komentarze
Prześlij komentarz