Search…

Âm Thanh Trong Unity

29/09/20203 min read
Hướng dẫn cách phát âm thanh trong Unity.

Đối với bất kỳ game nào, âm thanh là một trong những yếu tố không thể thiếu, âm thanh như chất xúc tác nhằm kích thích các giác quan của người chơi giúp cho game trở nên thu hút và hấp dẫn hơn. Bài viết này sẽ hướng dẫn cách để phát âm thanh trong Unity.

Audio Source Component

Audio Source là 1 built-in component được Unity xây dựng sẵn để hỗ trợ phát các file âm thanh trong game.

Để sử dụng Audio Source, chọn Add Component → Audio → Audio Source, các thuộc tính của Audio Source được hiển thị trong hình sau:

ss_1

Các tính năng chính

  • AudioClip: file âm thanh sẽ được gán vào AudioClip để xử lý và phát âm thanh ra các thiết bị output.
  • Play On Awake: tùy chọn cho phép âm thanh được phát ngay khi GameObject được kích hoạt.
  • Loop: tùy chọn lặp lại liên tục âm thanh sau khi đã phát hết.
  • Mute: tùy chọn ngắt kết nối với các thiết bị output âm thanh. Âm thanh sẽ vẫn chạy bình thường nhưng sẽ không được phát ra.

Ngoài ra còn một số chức năng và tuỳ chọn không được hiển thị. Xử lý các tính năng cần thiết này với C# Script.

Các định dạng hỗ trợ

Theo thông tin từ trang chủ chính thức của Unity thì các định dạng âm thanh được hỗ trợ được thể hiện trong bảng sau:

Format Extension
MPEG Layer 3 .mp3
OGG Vorbis .ogg
Microsoft Wave .wav
Audio Interchange File Format .aiff / .aif
Ultimate Soundtracker Module .mod
Impulse Tracker Modele .it
Scream Tracker Module .s3m
Fast Tracker 2 Module .xm

Xử lý và phát âm thanh với Script

Đầu tiên, để thao tác được với Audio Source, sử dụng dòng code sau:

m_audio = GetComponent<AudioSource>();

Với C# Script, có thể thực hiện được mọi thao tác với AudioSource, nhưng bài viết sẽ chỉ hướng dẫn các thao tác đơn giản và phổ biến.

Thay đổi file âm thanh

File âm thanh sẽ được lưu trữ dưới biến clip. Do đó để thay đổi file âm thanh khác, gán file đó vào biến này. Thao tác như sau:

m_audio.clip = yourAudioFile;

yourAudioFile phải được load lên bộ nhớ trước khi thực hiện dòng code trên.

Play - Pause - Stop

3 hàm này dùng để điều khiển bật hoặc tắt nhạc theo nhu cầu của lập trình viên, các hàm này sẽ thay đổi giá trị của biến isPlaying để thể hiện được trạng thái của AudioSource.

m_audio.Play();
m_audio.Pause();
m_audio.Stop();

Hàm Pause sẽ dừng chơi nhạc và lưu trữ trạng thái hiện tại để có thể resume, trong khi hàm Stop sẽ dừng hoàn toàn và di chuyển về vị trí đầu của file âm thanh trong bộ nhớ.

isPlaying

Biến này có tác dụng như một cờ đánh dấu để AudioSource có thể kiểm tra và bật hoặc tắt âm thanh theo ý lập trình viên. Để kiểm tra giá trị của biến, có thể sử dụng hàm Debug.Log như sau:

Debug.Log(m_audio.isPlaying);

mute

Dùng để bật hoặc tắt âm thanh phát ra các thiết bị output, thao tác tương tự như hướng dẫn ở trên.

Download demo

STDIO_UnitySoundTutorial.zip

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024