Przyciski można używać przez graczy do odblokowania nowych obszarów, podarowanie punktów i ujawnienie skarbów. Zawsze, gdy gracz dotyka przycisku, powinien dać kilka opinii, aby pozwolić graczom wiedzieć, z którym się interaguje, takich jak zmiana kolorów lub wykonanie dźwięków.
W tym przykładzie przycisk zostanie użyty do aktywacji moста. Gdy przycisk zostanie naciśnięty, będzie zielony i gracze będą mogli używać mostu. Jeśli gracz nie naciśnie przycisku, spadnie przez most, gdy spróbuje chodzić po nim.
Zbuduj Most
Zacznij od ustawienia moста.
Utwórz obszar w swojej grze, w którym gracze będą potrzebować mostu.
Utwórz część dla mostu i zmień ją na Most.
Wybierz most w oknie Właściwości:
- Zmień Przezroczystość na .5. Dla Przezroczystości, 0 jest widoczne, 1 jest niewidoczne.
- Sprawdź Zakotwiczone .
- Odznacz Możliwość kolidy .
Zbadaj gra, most powinien wyglądać mętny i ludzie nie powinni na nim jeszcze chodzić.
Utwórz Przycisk
Teraz, gdy most jest ustawiony, stwórz przycisk.
- Utwórz nową część o nazwie Przycisk.
- Zmień kolor przycisku na czerwony.
- Zakoruj przycisk.
- Przenieś przycisk, aby był nieco pływający i nie dotykając niczego. To jest, aby upewnić się, że wydarzenie Touched nie przypadkowo nie spali.
Uczynienie przycisku interaktywnego
Tym razem, zamiast używać wydarzenia Touched, aby stworzyć pułapkę, będziesz używał go do stworzenia przycisku, który uczyni most możliwym do użycia. Aby uczynić most możliwym do użycia, użyj kodu bridge.CanCollide = true w niestandardowej funkcji
Spróbuj rozwiązać go sam przed podjęciem próby z rozwiązaniem kodu.
- Wprowadź nowy skrypt do przycisku nazyjącego się AktywujPonadPróg.
- Usuń Hello World .
- Twórz zmienne dla mostu i przycisku.
- Utwórz lokalną funkcję , która robi następujące, gdy przycisk jest dotykany:
- Drukuje "button touched".
- Zmienia kolor przycisku z czerwonego na zielony po dotknięciu.
- Zmienia przejrzystość mostu do 0, aby go zobaczyć.
- Umożliwia użycie mostu, używając kodu bridge.CanCollide = true
- Połącz funkcję z wydarzeniem Touched przycisku.
- Zacznij testować skrypt i upewnij się, że most pojawi się, gdy przycisk zostanie dotknięty.
Poniżej przedstawiono jeden możliwy kod rozwiązania
-- Umieść ten skrypt w przycisku
-- Zwraca zielony przycisk, gdy ktoś dotyka przycisku.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)
Rozwiązywanie problemów z twoim kodem
Problem: Mosty są już solidne, gdy gra się uruchamia. Upewnij się, że części są zatrzymane i nie dotykają nic. Części mogą dotykać czegoś, jak teren lub inna część, i spowodować, że przyciskNaciśnij() wypadnie nieumyślnie. Problem: Pojawia się błąd w oknie wyjścia mówiący: "Bridge nie jest ważnym członkiem Workspace" Sprawdź obserwuje:
- Nazwa twojego mostu. Most w twoim skrypcie musi być nazwany dokładnie tak, jak w Explorerze.
- To part.Touched:Connect(buttonPressed) jest poza funkcją buttonPressed().
Opcjonalne wyzwanie kodowe
Skrypt w tej lekcji można również używać do utrzymywania drzwi, które trzymają graczy z dala od określonych obszarów. Ćwicz swoje umiejętności kodowania i zrób obserwuje:
- Utwórz część drzwi.
- Utwórz przycisk znajdujący się dalej od drzwi.
- Zmień skrypt w tej lekcji, aby uczynić drzwi nieszkodliwymi i tak, aby gracz nie mógł z nimi kolidować.
Twoja wersja może wyglądać tak:
local button = script.Parent
-- Pamiętaj: Zastąp nazwę części, bramy, przez jedną w Twoim projekcie
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Zmień przycisk zmiany na czerwony, aby dać graczowi opinie
button.BrickColor = BrickColor.Red() -- Zmień to
-- Uczyn Gate Invisible
gate.Transparency = 1
-- Umożliwia graczom przechodzenie przez bramę
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)