Scratch To Unity: Sound

Beginner Scratch Tutorial Unity

This post provides a handy reference guide to go from Scratch’s “Sound” category of code blocks to C# with Unity.

COM” Bảng xếp hạng Ly kỳ diệu – Magic Cup
Tuesday September 08, 2020

Game Ly kỳ diệu – Magic Cup. Bạn đang chơi trò chơi Ly kỳ diệu – Magic Cup là một game online hay tại chuyên mục Game Vui nhộn của Trò Chơi Việt. Hiện tại đang có cao thủ đang trực tuyến 24h chơi game vui này cày điểm và cùng vì nó quá hay. […]

The post COM” Bảng xếp hạng Ly kỳ diệu – Magic Cup appeared first on Dua xe moto.

Code Blocks
Click on the picture of any of these Scratch code blocks to see how to write similar code statements in C#.

COM” Bảng xếp hạng Cuộc chiến với zombie
Tuesday September 08, 2020

Game Cuộc chiến với zombie. Bạn đang chơi trò chơi Cuộc chiến với zombie là một game online hay tại chuyên mục Game Hành động của Trò Chơi Việt. Hiện tại đang có cao thủ đang trực tuyến 24h chơi game vui này cày điểm và cùng vì nó quá hay. Thật khủng và đông […]

The post COM” Bảng xếp hạng Cuộc chiến với zombie appeared first on Dua xe moto.

You program over time using a Coroutine. Unfortunately there is no “Wait For Sound” statement that is built-in, but you have a few ways to simulate something similar. Let’s assume you are able to obtain a reference to an “AudioSource” component which already is assigned the “AudioClip” you want to play.
You can begin the playback of the sound like this:

audioSource.Play();

And you could yield based on the clip’s length:

COM” Bảng xếp hạng Bể bơi ngày hè
Wednesday September 09, 2020

Game Bể bơi ngày hè. Bạn đang chơi trò chơi Bể bơi ngày hè là một game online hay tại chuyên mục Game Vui nhộn của Trò Chơi Việt . Hiện tại đang có cao thủ đang trực tuyến 24h chơi game vui này cày điểm và cùng vì nó quá hay. Thật khủng và […]

The post COM” Bảng xếp hạng Bể bơi ngày hè appeared first on Dua xe moto.

yield return new WaitForSeconds(audioSource.clip.length);

Or yield each frame that the audio source is still playing:

while (audioSource.isPlaying)
{
yield return null;
}

You can also use a “WaitWhile” command like this:

yield return new WaitWhile(() => audioSource.isPlaying);

Suppose you have a reference to an “AudioSource” component which will play the sound as well as the “AudioClip” that you want to have played. You can obtain them through code or through the Unity Inspector:

public AudioClip clip;
public AudioSource source;

You assign the clip to the source in code like this:

source.clip = clip;

You begin playing the sound like this:

source.Play();

If you have a convenient reference to all of your audio sources, then you could loop over them and call the “Pause” or “Stop” method on each:

AudioSource[] sources = GetAudioSources();
foreach (AudioSource source in sources)
{
source.Stop();
}

But in many cases if you want to Stop all sounds, it might be simpler to modify the “AudioListener”:

AudioListener.pause = true; // Pause all sounds
AudioListener.pause = false; // Resume all sounds

var audioSource = GetComponent<AudioSource>();
audioSource.pitch += 0.1f;

var audioSource = GetComponent<AudioSource>();
audioSource.pitch = 1f;

There is no equivalent for this code block. You can obtain a similar result by simply setting all effect variables to their default values, whether they had been modified or not.

var audioSource = GetComponent<AudioSource>();
audioSource.pitch = 1f;
audioSource.panStereo = 0f;
// etc

var audioSource = GetComponent<AudioSource>();
audioSource.volume -= 0.1f;

var audioSource = GetComponent<AudioSource>();
audioSource.volume = 1f;

var audioSource = GetComponent<AudioSource>();
var volume = audioSource.volume;

Summary
This should cover all of the code blocks in Scratch’s “Sound” category. If you have any questions about this reference guide feel free to ask below.
If you find value in my blog, you can support its continued development by becoming my patron. Visit my Patreon page here. Thanks!