Czy marzysz o tym, by Twój świat w Roblox ożył pod dotykiem gracza? Pierwsza interakcja w Luau to moment, który zmienia początkującego w pewnego siebie developera. Wyobraź sobie: gracz podchodzi do obiektu, klika – i bum! Coś się dzieje. To czysta magia Luau scripting, języka Roblox, który jest szybki, bezpieczny i idealny dla gier. W tym przewodniku skupimy się na ProximityPrompt – nowoczesnym narzędziu do interakcji, łatwiejszym niż stary ClickDetector. Gotowy? Zaczynamy! ⭐
1️⃣ Przygotowanie Środowiska: Roblox Studio w Akcji
Zanim zanurzysz się w kod, upewnij się, że masz najnowszą wersję Roblox Studio. Pobierz ją z oficjalnej strony Roblox – to Twoje centrum dowodzenia.
- Otwórz Studio i utwórz nowy projekt (Baseplate).
- W Explorerze znajdź Workspace.
- Dodaj Part (Insert Object > Part). Nazwij go "InteractablePart". Ustaw Position na (0, 5, 0), by był widoczny.
Pro Tip: Użyj Anchor = true, by obiekt nie spadał. Teraz dodaj ProximityPrompt do Parta (Insert Object > ProximityPrompt). To on wykryje gracza w zasięgu! 📍
2️⃣ Tworzenie Skryptu: Gdzie i Jak?
Interakcje najlepiej obsługiwać po stronie serwera dla bezpieczeństwa. W ServerScriptService utwórz nowy Script (nie LocalScript!). Nazwij go "InteractionScript".
Oto Twój pierwszy kod Luau. Skopiuj i wklej:
local part = workspace.InteractablePart
local prompt = part.ProximityPrompt
prompt.Triggered:Connect(function(player)
print(player.Name .. " aktywował interakcję! 🎉")
-- Tutaj dodasz akcje, np. dać monetę graczowi
end)
Wyjaśnienie linijka po linijce:
| Linia | Kod | Co robi? |
|---|---|---|
| 1-2 | local part = ... local prompt = ... |
Pobiera Part i jego ProximityPrompt. |
| 4 | prompt.Triggered:Connect(...) | Podłącza funkcję na event "Triggered" (gdy gracz interaktuje). |
| 5 | function(player) | Otrzymuje gracza, który kliknął. |
Testuj! Naciśnij Play (F5), podejdź do Parta – zobaczysz prompt "Hold E to interact". Przytrzymaj E i sprawdź Output (View > Output). Magia! 😎
3️⃣ Ulepszamy Interakcję: Dodajemy Efekty i Nagrody
Podstawy za Tobą? Czas na fun! Rozwijamy skrypt, by gracz dostał nagrodę – np. +1 punkt.
local Players = game:GetService("Players")
local part = workspace.InteractablePart
local prompt = part.ProximityPrompt
prompt.Triggered:Connect(function(player)
local leaderstats = player:FindFirstChild("leaderstats")
if leaderstats then
local points = leaderstats:FindFirstChild("Points")
if points then
points.Value = points.Value + 1
print(player.Name .. " zdobył punkt! 🏆")
end
end
end)
Co nowego?
- Używamy Players service dla leaderstats.
- Sprawdzamy, czy gracz ma leaderstats (utwórz je wcześniej w StarterPlayerScripts).
- Inkrementujemy Points – gracz widzi zmianę!
Bonus: Dostosuj prompt: prompt.ActionText = "Zbierz monetę", prompt.HoldDuration = 1.5. Eksperymentuj! Dla cooldown użyj debounce:
local debounce = {}
prompt.Triggered:Connect(function(player)
if debounce[player.UserId] then return end
debounce[player.UserId] = true
-- Twoja akcja tutaj
wait(3) -- Cooldown 3s
debounce[player.UserId] = nil
end)
4️⃣ Najczęstsze Błędy i Jak Ich Unikać ⚠️
Unikaj pułapek początkujących:
- Błąd: Script w złym miejscu (LocalScript na interakcje multiplayer).
- Rozwiązanie: Zawsze ServerScript dla zmian globalnych.
- Błąd: Nil reference – dodaj проверки jak if part then.
- Pro Tip: Użyj Studio's debugger (F9) do breakpointów.
Dla zaawansowanych: Sprawdź dokumentację ProximityPrompt na devforum Roblox – złoto dla devów!
5️⃣ Następne Kroki: Od Interakcji do Epickiej Gry 🎮
Gratulacje! Masz działającą pierwszą interakcję w Luau. Teraz skaluj: Dodaj GUI, efekty cząsteczkowe (ParticleEmitter), dźwięki (SoundService). Wyobraź sobie drzwi otwierane hasłem czy NPC z dialogami via DialogueKit.
Ćwicz codziennie – Twój pierwszy skrypt to dopiero początek. Dołącz do Roblox DevForum, dziel się projektami i inspiruj innych. Co zbudujesz jako następne? Podziel się w komentarzach! 👇
Podsumowanie w punktach:
- Part + ProximityPrompt = baza interakcji.
- ServerScript z Triggered:Connect() = serce kodu.
- Debounce i leaderstats = pro level.
- Testuj, debuguj, powtarzaj! 👍
Teraz wypróbuj i stań się mistrzem Luau scripting. Powodzenia, przyszły game dev! 🚀