Normalnie funkcje mogą używać tylko informacji, które są w nich zakodowane. Czasami jednak możesz nie wiedzieć z góry, jakie te informacje będą, lub chcesz móc ponownie używać tej samej funkcji 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 wielkich literach dla wszystkich. Nie będziesz znać imienia przyszłego zwycięzcy, dopóki wyścig się nie zakończy.
Parametry to miejsca na informacje, które chcesz przekazać funkcji w późniejszym czasie. Są jak okna, które pozwalają ci przekazać informacje do funkcji.
Użyj parametrów i zdarzeń, aby ustawić pułapkę
Ten skrypt stworzy część pułapki, która zniszczy wszystko, co dotknie tej części, w tym inne części. Będziesz musiał użyć parametru, aby to skonfigurować. Uważaj, aby zakotwiczyć pułapkę w miejscu, gdzie nie spadnie i nie zniszczy rzeczy przypadkowo.
Utwórz nową część
Należy skonfigurować część, która zniszczy wszystko, co jej dotknie.
- Utwórz nową część, która nie dotyka niczego. Jeśli dotyka czegoś, może zadziałać zbyt wcześnie.
- W Eksploratorze zmień nazwę części na: TrapPart.
- Zakotwicz część.
Skonfiguruj skrypt
Użyj tego, co wiesz o zmiennych i hierarchii gry, 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.
-- Zniszczy wszystko, co dotknie rodzicalocal trap = script.Parent
Utwórz funkcję z parametrem
Pułapka użyje funkcji do zniszczenia wszystkiego, co dotknie części. Aby to działało, funkcja musi wiedzieć, co dotknęło części. A to oznacza użycie parametrów. Parametry są wpisywane w (), które pojawiają się po nazwie funkcji. Wyglądają tak:
local function functionName(parameterName)
endRzeczywiste informacje, które są przekazywane przez parametr, nazywane są argumentem. Utworzysz nową funkcję o nazwie onTouch(), z parametrem o nazwie objectTouched, który będzie śledził wszystko, co dotknie pułapki, a następnie zniszczy dotykającą część.
Utwórz lokalną funkcję. Może być nazwana dowolnie, ale w tej lekcji użyjemy onTouch.
local trap = script.Parentlocal function onTouch()endWewnątrz (), wpisz nazwę dla parametru. W tej lekcji użyjemy objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endPomiędzy local function onTouch() a end, utwó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, aby wywołać funkcję
Chcemy, aby funkcja działała za każdym razem, gdy coś dotknie części. Aby to osiągnąć, połącz funkcję z zdarzeniem Touched. Zdarzenia to rzeczy, które dzieją się w grze. Jak dotknięcie części przez gracza lub utrata zdrowia. Gdy funkcja jest połączona z zdarzeniem, funkcja uruchamia się za każdym razem, gdy zdarzenie występuje.
Zdarzenie Touched wyzwala się za każdym razem, gdy jedna część dotyka drugiej części i może być używane do tworzenia przycisków, pułapek i innych obiektów, z którymi gracze wchodzą w interakcje.
Pod end funkcji, wpisz trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Coś dotknęło pułapki")end-- Połącz funkcję z zdarzeniem Touchedtrap.Touched:Connect(onTouch)Kliknij Test i dotknij części. Sprawdź, czy widzisz swój testowy komunikat: Coś dotknęło pułapki. Jeśli nie widzisz tego ciągu w oknie Wyjścia, sprawdź następujące:
- Upewnij się, że ciąg "Coś dotknęło części!" znajduje się pomiędzy local function onTouch() a end.
- Sprawdź, czy Touched jest napisane z wielkiej litery.
Teraz, gdy funkcja jest poprawnie skonfigurowana, użyj jej do zniszczenia wszystkiego, co dotknie części. Wewnątrz funkcji, po ciągu, wpisz objectTouched:Destroy(). Ukoń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 awatar powinien stracić stopy lub ramiona. Jeśli część dotknie głowy lub szyi awatara, może nawet zostać całkowicie zniszczona.
Podsumowanie
Parametry są używane do przekazywania informacji, które normalnie byłyby poza zasięgiem (gdzie funkcja ich nie widzi), do funkcji. Tymczasem zdarzenia to specjalne sygnały, które uruchamiają się w grze, gdy coś ważnego się dzieje. Różne obiekty mają różne zdarzenia. Funkcje mogą być połączone z zdarzeniami, aby były wywoływane za każdym razem, gdy zdarzenie zostanie uruchomione. Ten mały skrypt połączył funkcję z zdarzeniem Touched pułapki i przekazał, co dotyka pułapki przez parametr.