Jedność - wprowadzenie do audio
Jest powód, dla którego gry kładą nacisk na dźwięk; bardzo ważne jest dodanie do gry wartości estetycznej. Od samego początkuPong, słychać brzęczenie i buczenie piłki uderzającej naprzemiennie o wiosła. W tamtym czasie była to naprawdę prosta próbka krótkiej fali prostokątnej, ale czego chcieć więcej od dziadka wszystkich gier wideo?
W prawdziwym życiu wiele rzeczy wpływa na sposób, w jaki odbierasz dźwięk; prędkość obiektu, w jakim scenariuszu się znajduje i z jakiego kierunku nadchodzi.
Istnieje wiele czynników, które mogą powodować niepotrzebne obciążenie naszego silnika. Zamiast tego staramy się stworzyć wyobrażenie o tym, jak nasz dźwięk będzie działał w naszej grze i budować wokół tego. Staje się to szczególnie widoczne w grach 3D, w których trzeba sobie poradzić z 3 osiami.
W Unity mamy dedykowane komponenty do percepcji i odtwarzania dźwięku. Te komponenty współpracują ze sobą, tworząc wiarygodny system dźwiękowy, który jest naturalny w grze.
Unity zapewnia nam szereg przydatnych narzędzi i efektów, takich jak pogłos, efekt Dopplera, miksowanie i efekty w czasie rzeczywistym itp. Dowiemy się o nich w kolejnych rozdziałach.
Komponenty audio
W tej sekcji poznamy 3 podstawowe komponenty związane z dźwiękiem w Unity.
Źródło dźwięku
Składnik AudioSource jest głównym składnikiem, który należy dołączyć do GameObject, aby odtwarzał dźwięk. Odtworzy plikAudioClip po uruchomieniu przez mikser, przez kod lub domyślnie, po przebudzeniu.
AudioClip to po prostu plik dźwiękowy, który jest ładowany do AudioSource. Może to być dowolny standardowy plik audio, taki jak .mp3, .wav i tak dalej. AudioClip jest również komponentem samym w sobie.
AudioListener
AudioListener to składnik, który listensdo całego dźwięku odtwarzanego w scenie i przenosi go do głośników komputera. Działa jakearsgry. Cały dźwięk, który słyszysz, jest zgodny z pozycją tego AudioListener. Aby scena działała prawidłowo, powinien znajdować się tylko jeden AudioListener. Domyślnie kamera główna ma dołączony Listener. Listener nie ma żadnych ujawnionych właściwości, o które projektant chciałby się troszczyć.
Filtry audio
Wyjście źródła audio lub wejście AudioListener można modyfikować za pomocą filtrów audio. Są to określone komponenty, które mogą zmienić pogłos, chorus, filtrowanie i tak dalej. Każdy konkretny filtr ma swój własny komponent z wyeksponowanymi wartościami, aby dostosować jego brzmienie.
Odtwarzanie dźwięku
Spróbujmy stworzyć przycisk, który po kliknięciu odtwarza dźwięk. Aby rozpocząć, będziemyCreate sprite Circle i zmień go na czerwony.
Teraz dołączmy plik Audio Source do tego duszka.
Aby obiekt zagrał dźwięk, musimy mu go nadać. Wykorzystajmy ten efekt dźwiękowy do naszego celu.
http://www.orangefreesounds.com/ding-sfx/
Pobierz efekt dźwiękowy i przeciągnij go do zasobów.
Gdy Unity importuje ten zasób jako plik dźwiękowy, jest on automatycznie konwertowany na plik AudioClip. Dlatego możesz przeciągnąć ten klip dźwiękowy z zasobów bezpośrednio do gniazda klipu audio w źródle audio naszego duszka.
Po przeciągnięciu klipu dźwiękowego z zasobów bezpośrednio do gniazda klipu audio w źródle audio naszego duszka, pamiętaj, aby usunąć zaznaczenie opcji „Odtwórz po przebudzeniu” we właściwościach źródła dźwięku; jeśli tego nie zrobisz, dźwięk będzie odtwarzany w momencie rozpoczęcia gry.
Przejdźmy teraz do naszego kodu. Utwórz nowy skrypt o nazwie „BellSound” i otwórz go.
Ponieważ nasze źródło dźwięku jest kontrolowane za pomocą kodu, chcemy najpierw uzyskać do niego odniesienie. Jak poprzednio użyjemy metody GetComponent.
public class BellSound : MonoBehaviour {
AudioSource mySource;
// Use this for initialization
void Start () {
mySource = GetComponent<AudioSource>();
}
Teraz skonfigurujmy metodę wykrywania klikanego obiektu. MonoBehaviour daje nam tylko metodę, której potrzebujemy, o nazwie OnMouseDown. Metoda jest wywoływana za każdym razem, gdy klikniemy myszą w zakresie acollider tego gameObject.
Ponieważ nie dołączyliśmy jeszcze zderzacza do naszego przycisku, zróbmy to teraz.
Do tego nie będziemy potrzebować sztywnego nadwozia; nie musimy też uzyskiwać dostępu do tego zderzacza za pomocą kodu. Po prostu musi tam być, aby metoda zadziałała.
Przetestujmy metodę i zobaczmy, czy działa. Napisz następujący kod w swoim skrypcie i dołącz go do przycisku.
void OnMouseDown() {
Debug.Log(“Clicked!”);
}
Po zapisaniu i dołączeniu skryptu zagraj w grę. Kliknięcie przycisku powinno spowodować wyświetlenie komunikatu w konsoli.
Jesteś teraz o krok od odtworzenia dźwięku. Teraz wystarczy zadzwonić pod numerPlay w instancji Audio Source.
void OnMouseDown() {
mySource.Play();
}
Zapisz swój skrypt i uruchom go w grze. Kliknij przycisk, a powinieneś usłyszeć odtwarzanie dźwięku!
Note- Rozważ zrobienie przycisku, który zwiększa tonację za każdym razem, gdy go klikniesz. Posługiwać sięmySource.pitch i licznik i zobacz, czy możesz to rozgryźć.)