Phát, tạm dừng, dừng và lặp lại nhạc nền

Trang Cập Nhật :
Ngày tạo trang :

Môi trường xác minh

Windows
  • cửa sổ 11
Biên tập viên Unity
  • 2021.3.3F1
Gói hệ thống đầu vào
  • 1.3.0

Điều kiện tiên quyết cho mẹo này

Các cài đặt sau đây đã được thực hiện trước làm tiền đề cho mô tả về mẹo này.

Về vật liệu đi kèm với mẫu

BGM được mượn từ trang web sau.

Giới thiệu về tệp âm thanh

Các định dạng tệp âm thanh sau có thể được phát bằng các tính năng tiêu chuẩn của Unity: Vui lòng chuẩn bị trước vì nó sẽ được sử dụng trong những lời khuyên này.

  • OggVorbis (.ogg)
  • MPEG lớp 3 (.mp3)

Để biết thêm thông tin, hãy xem tài liệu chính thức của Unity.

Giới thiệu về phát lại BGM

Có một số cách để phát nhạc nền, nhưng ở đây chúng tôi muốn giải thích cách phát nó một cách đơn giản trong khi sử dụng các tính năng tiêu chuẩn.

Nội dung là sắp xếp một nút và phát, tạm dừng và dừng lại bằng cách nhấp vào nút. Trong một trò chơi thực tế, bạn có thể thực hiện quy trình tương tự ngoài các nút.

Đầu tiên, đặt một nút để phát BGM như trong hình.

Thêm tệp âm thanh đã chuẩn bị bằng cách thả nó vào dự án của bạn.

Tiếp theo, thêm "Nguồn âm thanh" vào hệ thống phân cấp.

Khi bạn chọn Nguồn âm thanh bạn đã tạo, thành phần Nguồn âm thanh có Clip âm thanh, trong đó bạn thả tệp âm thanh từ dự án của mình để định cấu hình nó.

Nhân tiện, nếu bạn bắt đầu trò chơi như hiện tại, BGM bạn đặt sẽ đột nhiên chơi. Điều này là do "Chơi khi bắt đầu trò chơi" được chọn. Nếu bạn muốn chơi nó ngay lập tức khi bắt đầu cảnh, không có vấn đề gì, nhưng lần này nó sẽ không phát ngay lập tức, vì vậy hãy bỏ chọn kiểm tra này.

Tiếp theo, tạo một tập lệnh. MusicPlayer Để tên là .

Kịch bản trông như thế này:

using UnityEngine;

public class MusicPlayer : MonoBehaviour
{
  [SerializeField] private AudioSource AudioSource;

  public void OnClickPlay()
  {
    // オーディオを再生します
    AudioSource.Play();
  }

  public void OnClickPause()
  {
    // オーディオを一時停止します
    AudioSource.Pause();
  }

  public void OnClickStop()
  {
    // オーディオを停止します
    AudioSource.Stop();
  }
}

AudioSource sẽ được đặt sau từ trình chỉnh sửa. Nguồn âm thanh này là nguồn có tệp âm thanh bạn vừa chèn.

AudioSource, và các phương thức, vì vậy bạn có thể phát, tạm dừng và PlayPauseStop dừng tương ứng.

Bạn có thể đính kèm tập lệnh vào Nguồn âm thanh, nhưng trong trường hợp này, bạn sẽ đính kèm tập lệnh vào Hệ thống sự kiện. Đảm bảo tập lệnh của bạn được điền bằng Nguồn âm thanh bạn đã tạo trước đó.

Bây giờ gán từng phương thức cho sự kiện nhấp chuột của ba nút.

Sau khi thiết lập, hãy chạy trò chơi và xem nhạc nền có phát không.

Phát, tạm dừng và dừng là những thuật ngữ thường được sử dụng, vì vậy bạn không cần phải viết chúng chi tiết, nhưng tôi nghĩ chúng hoạt động như sau.

  • Khi bạn nhấp vào nút phát, nhạc nền chỉ được phát một lần và phát đến cuối.
  • Trong khi phát lại, hãy nhấp vào nút tạm dừng để dừng phát âm thanh
  • Khi bạn nhấp vào nút phát trong khi tạm dừng, âm thanh sẽ được phát từ vị trí dừng.
  • Nhấp vào nút dừng trong khi phát lại để dừng phát âm thanh
  • Nhấp vào nút phát trong khi dừng để phát lại từ đầu
  • Nhấp vào nút dừng trong khi tạm dừng sẽ giải phóng vị trí bị tạm dừng và lần sau khi bạn chơi, nó sẽ là từ đầu.
  • Nếu bạn nhấp vào nút phát trong khi phát lại, âm thanh hiện đang phát sẽ bị dừng và phát lại từ đầu.

Phát lại vòng lặp

Nó phát nhạc nền theo mặc định và tự động dừng khi được phát đến cuối. Nếu bạn muốn lặp lại nhạc nền và tiếp tục phát, hãy kiểm tra "Vòng lặp" trong thành phần Nguồn âm thanh và nó sẽ tiếp tục phát liên tục cho đến khi bạn nhấn nút dừng.

Nội dung phát lại hiệu ứng âm thanh là như nhau

Nếu bạn đã thấy các mẹo ở phía hiệu ứng âm thanh, bạn có thể nhận thấy rằng hiệu ứng âm thanh và nhạc nền có thể được phát với cùng một cài đặt. Tùy thuộc vào khung trò chơi, việc xử lý hiệu ứng âm thanh và nhạc nền có thể riêng biệt, nhưng Unity cho phép bạn chơi cả hai với cùng một cách xử lý.

Về hiện tượng nhạc nền tạm dừng khi cửa sổ bị vô hiệu hóa

Theo mặc định, khi các cửa sổ khác đang hoạt động và màn hình trò chơi bị vô hiệu hóa, chính trò chơi sẽ bị tạm dừng. Cùng với đó, việc phát lại nhạc nền cũng bị treo.

Để tránh điều này, bạn có thể đặt nó chạy trong nền trong cài đặt dự án của mình để nhạc nền không bị gián đoạn.