Normalnie funkcje mogą używać tylko informacji, które zostały kodowane wewnątrz nich. Czasami jednak możesz nie wiedzieć z góry, jakie te informacje będą, lub chcesz być w stanie ponownie wykorzystać tę samą funkcję z wieloma podobnymi informacjami. Na przykład, jeśli chciałbyś użyć funkcji do wyświetlenia imienia osoby, która ukończyła kurs obby najszybciej, w gigantycznych litera. Nie będziesz znać imienia przyszłego zwycięzcy, dopóki wyścig się nie skończy.
Parametry to symbole zastępcze dla informacji, które chcesz przekazać funkcji w późniejszym czasie. Są jak okna, które umożliwiają ci przekazywanie informacji do funkcji.
Użyj parametrów i zdarzeń, aby ustawić pułapkę
Ten skrypt utworzy część pułapki, która niszczy wszystko, co dotyka tej części, w tym inne części. Będziesz musiał użyć parametru, aby to skonfigurować. Upewnij się, że pułapka jest zaczepiona w miejscu, gdzie nie spadnie i nie zniszczy rzeczy przypadkowo.
Utwórz nową część
Należy utworzyć część, która zniszczy wszystko, co jej dotknie.
- Utwórz nową część, która nie dotyka niczego. Jeśli dotyka czegoś, może zostać uruchomiona zbyt wcześnie.
- W Explorerze zmień nazwę części: TrapPart.
- Zakotwicz część.
Ustaw skrypt
Użyj tego, co wiesz o zmiennych i hierarchii doświadczeń, aby odwołać się do części pułapki.
Dodaj nowy skrypt do części pułapki. Zmień nazwę skryptu na TrapScript.
Usuń "Hello World" i dodaj opisowy komentarz.
Pod komentarzem utwórz nową zmienną, która znajdzie rodzica skryptu.
-- Niszczy wszystko, co dotyka rodzicalocal trap = script.Parent
Utwórz funkcję z parametrem
Pułapka użyje funkcji do zniszczenia wszystkiego, co dotknęło tę część. Aby działać, funkcja musi znać, co dotknęło część. A to oznacza użycie parametrów. Parametry są wpisywane wewnątrz (), które pojawia się po nazwie funkcji. Wyglądają tak:
local function functionName(parameterName)
end
Faktyczne informacje, które przechodzą przez parametr, nazywane są argumentem. Utworzysz nową funkcję o nazwie onTouch() z parametrem o nazwie objectTouched, który będzie śledził wszystko, co dotknęło pułapkę, a następnie zniszczy dotykającą część.
Utwórz lokalną funkcję. Może nazywać się w dowolny sposób, ale ta lekcja użyje onTouch.
local trap = script.Parentlocal function onTouch()endWewnątrz (), wpisz nazwę dla parametru. Ta lekcja użyje objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endPomiędzy local function onTouch() a end, stwórz instrukcję print. Użyjesz tego, aby sprawdzić, czy coś dotyka części w następnej sekcji.
local trap = script.Parentlocal function onTouch(objectTouched)print("Coś dotknęło pułapki")end
Użyj zdarzenia do wywołania funkcji
Chcemy, aby funkcja działała za każdym razem, gdy coś dotknie tej części. Aby to zrealizować, połącz funkcję ze zdarzeniem Touched. Zdarzenia to rzeczy, które mają miejsce w doświadczeniu. Jak na przykład gracz dotykający części lub tracący zdrowie. Gdy funkcja jest połączona ze zdarzeniem, funkcja jest wywoływana zawsze, gdy zdarzenie ma miejsce.
Zdarzenie Touched uruchamia się za każdym razem, gdy jedna część dotyka innej części i może być używane do tworzenia przycisków, pułapek i innych obiektów, z którymi gracze mogą wchodzić w interakcje.
Pod end funkcji wpisz trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Coś dotknęło pułapki")end-- Podłącz funkcję do zdarzenia Touchedtrap.Touched:Connect(onTouch)Kliknij Test i dotknij część. Sprawdź swoją testową instrukcję print: Coś dotknęło pułapki. Jeśli nie widzisz tego ciągu w oknie Output, sprawdź następujące:
- Upewnij się, że ciąg "Coś dotknęło pułapki!" znajduje się pomiędzy local function onTouch() a end.
- Sprawdź, czy Touched jest napisane z wielkiej litery.
Teraz, gdy funkcja jest prawidłowo skonfigurowana, użyj jej, aby zniszczyć wszystko, co dotyka tej części. Wewnątrz funkcji, po ciągu znaków, wpisz objectTouched:Destroy() Zakończony kod powinien wyglądać tak:
local trap = script.Parentlocal function onTouch(objectTouched)print("Coś dotknęło pułapki")-- Zniszcz dotykający obiektobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Przetestuj ponownie i zobacz, co się stanie, gdy część zostanie dotknięta. Twój avatar powinien być pozbawiony nóg lub rąk. Jeśli część dotknie głowy lub szyi avataru, może nawet zostać całkowicie zniszczona.
Podsumowanie
Parametry są używane do przekazywania informacji, które normalnie byłyby poza zakresem (gdzie funkcja ich nie widzi), do funkcji. Tymczasem zdarzenia to specjalne sygnały, które uruchamiają się wewnątrz doświadczenia, gdy coś ważnego się wydarzy. Różne obiekty mają różne zdarzenia. Funkcje mogą być łączone z zdarzeniami, aby były wywoływane za każdym razem, gdy zdarzenie jest uruchamiane. Ten mały skrypt połączył funkcję z Touched zdarzeniem pułapki i przekazał, co dotykało pułapki przez parametr.