Oltre alla musica di sottofondo, l'audio in gioco può migliorare l'esperienza di un Giocatore. Questo tutorial tratterà due forme di suoni in gioco: posizione e feedback suoni.
Per il primo esempio, creerai un suono posizionale per una cascata. Nel secondo esempio, uno script verrà utilizzato per riprodurre un jingle quando i giocatori toccano un oggetto da collezione.
Suoni posizionali
Quando un oggetto Suono è parented a part orattachment, diventa posizionale. L'audio emette dalla sua posizione e cresce più forte man mano che i giocatori si avvicinano, come nel caso di questa cascata.
Crea un Suono
In qualsiasi parte desiderata, crea un nuovo oggetto Suono chiamato WaterfallSound .
Nelle proprietà, trova SoundId e cambialo in questa ambientazione waterfall: rbxassetid://6564308795 .
Per il riproduzione continua quando il gioco inizia, attiva Giocando e Looped per essere su .
Prova il gioco per confermare di sentire l'ambiente della cascata.
Regola la distanza del suono
Nota quando testi, l'audio viene riprodotto immediatamente, anche se il giocatore è lontano dall'oggetto. Usando le proprietà di avvolgimento, puoi modificare la distanza in cui un giocatore ascolta un suono per creare effetti di scomparsa.
Cambia il RollOffMaxDistance in 30 . Questa proprietà è misurata in studs.
Per un passaggio più morbido, cambia il RollOffMode in InverseTapered . Ciò rende l'avvicinamento al suono meno improvviso.
Esegui il progetto. Nota come il suono viene ascoltato solo vicino all'oggetto.
Ottimizzazione fine della rollement
A seconda delle tue esigenze, potresti voler regolare diverse proprietà per effetti speciali o realismo aumentato. Vedi le seguenti proprietà:
- RollOffMinDistance - La distanza minima (in studs) una sona diminuisce in volume.
- SoundGroup - Usato per regolare il volume tra i gruppi di suoni, come la musica di sottofondo e gli effetti di gioco.
Risposte di feedback
I suoni possono essere riprodotti utilizzando gli script. Puoi collegare i suoni a eventi, come i giocatori che toccano una parte o interagiscono con un menu. Qui, creerai uno script che riproduce un campanello ogni volta che i giocatori toccano oggetti preziosi da toccare.
Configora i collezionabili
Il resto di questo tutorial usa un modello pre-made. Questo modello include parti e script in modo che i giocatori possano raccogliere gemme.
- In un browser, apri la pagina Modelli di gemme da collezione e fai clic sul pulsante Ottieni .
- Nello Studio, vai alla scheda Visualizza e fai clic sulla Toolbox .
- Nella finestra InToolbox, fai clic sul pulsante Inventario . Quindi, assicurati che il menu a discesa sia selezionato I miei modelli .
- Seleziona il modello Gemme da collezione per aggiungerlo al Gioco.
In SoundService , crea un nuovo Sound chiamato FeedbackSound .
In FeedbackSound, imposta il SoundId a rbxassetid://4110925712 - il SoundId del semplice chime scaricato dalla pagina del modello.
Configura lo script
In StarterPlayer > StarterPlayerScripts , crea uno script locale nuovo chiamato CollezionabiliSuoni .
Il codice seguente eseguirà la funzione partTouched ogni volta che il giocatore tocca un oggetto da collezione. Copia il codice nel tuo script.
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-- Abbina ogni parte dell'oggetto alla funzione di tocco in modo che funzioni su tutte le partifor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Riproduci un suono
Crea una variabile per SoundService , quindi un'altra variabile per memorizzare il feedback sound .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Per suonare il campanello, trova la funzione partTouched . All'interno della dichiarazione if, chiama feedbackSound:Play() per suonare il suono.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Riproduci il suono, una volta terminato, distruggi l'oggettoif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendProva il gioco per confermare che quando il giocatore tocca un oggetto da collezione, scompare entrambe e riproduce un suono.