Oprócz muzyki tła, w grze audio może ulepszyć doświadczenie gracza. Ten samouczek pokrywa dwa rodzaje dźwięków w grze: pozycjonalne i opinii dźwięki.
Dla pierwszego przykładu stworzysz pozycyjny dźwięk dla wodospadu. W drugim przykładzie zostanie użyty skrypt, aby odtwarzać dzwonek, gdy gracze dotykają zbieralnego.
Dźwięki pozycjonalne
Gdy obiekt Dźwięk jest powiązany z częścią lub załącznikiem, staje się pozycyjny. Dźwięk będzie emitować z jego lokalizacji i będzie rosło głośniej, gdy gracze zbliżają się, jak w przypadku tego wodospadu.
Utwórz Dźwięk
W dowolnej pożądanej części, utwórz nowy obiekt Dźwięk o nazwie WaterfallSound .
W właściwościach znajdź SoundId i zmień go na tę wodną ambientę: rbxassetid://6564308795 .
Dla ciągłego odtwarzania, gdy gra się uruchamia, przełącz Graszenie i Pętanie aby być na .
Sprawdź grę, aby potwierdzić, że słyszysz atmosferę wodnego upadku.
Dostosuj dystans dźwiękowy
Zauważ, gdy testujesz, grający dźwięk natychmiastowo, nawet jeśli gracz jest daleko od obiektu. Używając właściwości roll-off, możesz zmienić dystans, w którym słucha dźwięku gracz, aby stworzyć efekty zanikania.
Zmień RollOffMaxDistance na 30 . Ta wartość jest mierzona w studs.
Dla gładszego zanikania zmień RollOffMode na InverseTapered . To sprawia, że podejście do dźwięku czuje się mniej niespodziewane.
Zacznij projekt. Zauważ, jak dźwięk słyszalny jest tylko w pobliżu obiektu.
Doskonała optymalizacja zatrzymania
W zależności od potrzeb możesz dostosować różne właściwości do efektów specjalnych lub zwiększonej rzeczywistości. Zobacz następujące właściwości:
- RollOffMinDistance - Minimalna odległość (w studs) zmniejsza wolumen dźwięku.
- SoundGroup - Używany do dostosowania i zrównoważenia głośności pomiędzy grupami dźwięków, takimi jak muzyka tła i efekty w grze.
Dźwięki zwrotów
Dźwięki można odtwarzać przy użyciu skryptów. Możesz powiązać dźwięki z wydarzeniami, takimi jak dotykanie części lub interakcja z menu. Tutaj stworzysz skrypt, który odtwarza dzwonek, gdy gracze dotykają zbieralnych przedmiotów.
Ustaw kolekcjonatki
Pozostała część tego samouczka używa gotowego modelu. Ten model zawiera części i skrypcje, aby gracze mogli zbierać klejnoty.
- W przeglądarkaotwórz stronę Model klejnotów do zbierania i kliknij przycisk Zdobądź.
- W Studio, przejdź do zakładki Zobacz i kliknij na Skrzynię narzędzi.
- W oknie Skrzynki narzędzi, kliknij na przycisk Inventar. Następnie upewnij się, że menu rozwinięte jest na Mój model.
- Wybierz model Kolczyki do zbierania , aby dodać go do gra.
W SoundService utwórz nowy Dźwięk o nazwie FeedbackSound .
W FeedbackSound ustaw SoundId na rbxassetid://4110925712 - SoundId prostego dzwonu z modelu.
Konfiguruj Skrypt
W StarterPlayer > StarterPlayerScripts , utwórz nowy lokalny skrypt nazyający się CollectableSounds .
Poniżej kod będzie wykonywał funkcję partTouched, gdy gracz dotknie zbieralnego. Kopiuj kod w swoim skrypcie.
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")if humanoid and objectPart.CanCollide == true thenendend-- Związuje każdą część obiektu z funkcją dotykową, aby działał na wszystkich częściachfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Odtwarzanie dźwięku
Utwórz zmienne dla SoundService , a następnie inną zmienną do przechowywania dźwięku zwrotnego .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Aby grać na dzwoneczku, znajdź funkcję partTouched. W feedbackSound:Play() wezwij feedbackSound:Play() , aby odtwarzyć dźwięk.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Zagraj dźwięk, po zakończeniu, zniszcz obiektif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendSprawdź grę, aby potwierdzić, że gdy gracz dotyka zbieralnego, zniknie i odtwarza dźwięk.