Slot Machine
Gra jest prostą aplikacją typu "Point & Click" o charakterze edukacyjnym. Gracz wchodzi w interakcję z maszyną typu "Jednoręki Bandyta". Po pociągnięciu za dźwignię, zamiast wygranej, uruchamiana jest animacja wyświetlająca kluczowy przekaz gry: "Hazard Szkodzi Zdrowiu". Zasada działania: Gracz klika przycisk/dźwignię. Skrypt podmienia grafikę maszyny (symulując ruch wajchy), odczekuje chwilę, a następnie aktywuje ukryte animacje, które wyświetlają napis ostrzegawczy.
Written By Coder Matthew
Last updated 6 months ago
1) Grafiki i Zasoby użyte w Slot Machine
Poniżej znajdują się kluczowe elementy wizualne widoczne w folderze Assets oraz na scenie.

2) Hierarchia w Unity

Oto jak zbudowana jest scena (na podstawie panelu Hierarchy):
Main Camera
Odpowiada za widok gry. Ustawiona statycznie na automat.
Global Light 2D
Zapewnia oświetlenie sceny 2D (wymagane przy użyciu Sprite'ów z materiałami reagującymi na światło).
EventSystem
Niezbędny do obsługi kliknięć i interakcji z interfejsem UI.
360_F_27629... (Tło)
Obiekt graficzny stanowiący tło całej sceny (tapeta z wzorami kart).
bandyta
Serce logiki gry. Obiekt reprezentujący maszynę losującą.
Posiada komponent
SpriteRenderer(wyświetla maszynę).Posiada przypięty skrypt Click, który steruje całą interakcją.
Text (TMP)
Element tekstowy (TextMeshPro), wyświetlający początkową kwotę lub komunikaty UI.
3) Skrypty użyte w Slot Machine
W projekcie wykorzystano jeden główny skrypt sterujący logiką.
Click
Skrypt odpowiedzialny za symulację pociągnięcia dźwigni i wywołanie efektu końcowego (pojawienie się napisu).
Zarządzanie Sprite'ami: Przechowuje dwie wersje grafiki maszyny:
normalSprite(dźwignia góra) iclickedSprite(dźwignia dół).Korekta Pozycji: Bardzo ważna funkcja – przy zamianie grafik (które mogą mieć różne rozmiary), skrypt oblicza różnicę w pozycji dolnej krawędzi (
bounds.min.y) i przesuwa obiekt, aby maszyna nie "skakała" po ekranie przy zmianie grafiki.Sekwencja Czasowa: Używa korutyny (
IEnumerator), aby odczekaćchangeTime(2 sekundy) przed przywróceniem dźwigni.Aktywacja Finału: Po zakończeniu ruchu dźwigni, włącza komponenty
Animatorna obiektachanimm1ianimm2, co powoduje wjazd/pojawienie się napisu "Hazard Szkodzi Zdrowiu".
4) Całe skrypty
Poniżej znajdziesz kompletny kod użyty w grze wraz z komentarzami wyjaśniającymi działanie poszczególnych bloków.
Exampleusing UnityEngine;
public class Click : MonoBehaviour
{
public SpriteRenderer targetSprite;
public Sprite normalSprite;
public Sprite clickedSprite;
public float changeTime = 2f;
public GameObject animm1;
public GameObject animm2;
private bool isChanging = false;
public void Trigg()
{
if (!isChanging)
StartCoroutine(ChangeSpriteTemporarily());
}
private System.Collections.IEnumerator ChangeSpriteTemporarily()
{
isChanging = true;
float bottomBefore = targetSprite.bounds.min.y;
targetSprite.sprite = clickedSprite;
yield return null;
float bottomAfter = targetSprite.bounds.min.y;
float delta = bottomBefore - bottomAfter;
targetSprite.transform.position += new Vector3(0, delta, 0);
yield return new WaitForSeconds(changeTime);
bottomBefore = targetSprite.bounds.min.y;
targetSprite.sprite = normalSprite;
yield return null;
bottomAfter = targetSprite.bounds.min.y;
delta = bottomBefore - bottomAfter;
targetSprite.transform.position += new Vector3(0, delta, 0);
isChanging = false;
animm1.GetComponent<Animator>().enabled = true;
animm2.GetComponent<Animator>().enabled = true;
}
}