Phát nhiều âm thanh cùng một lúc

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

Hiệu ứng âm thanh được mượn từ các 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.

  • WAV (.wav)
  • 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 nhiều âm thanh đồng thời

Trong các mẹo trước, chúng tôi đã sử dụng AudioSource để phát tệp âm thanh, nhưng khi chúng tôi cố gắng tạo ra một âm thanh duy nhất và nhiều âm thanh, âm thanh trước đó đã biến mất. Ví dụ: nếu bạn có hai vụ nổ trong một trò chơi, việc hiệu ứng âm thanh đầu tiên biến mất khi vụ nổ thứ hai tạo ra hiệu ứng âm thanh là điều không tự nhiên. Phần này mô tả cách phát cùng một âm thanh nhiều lần chồng lên nhau.

Các bước phát âm thanh cùng một lúc

Ở đây, tôi sẽ giải thích từ điểm mà tôi đã tạo ra một dự án mới, nhưng nếu bạn biết Unity ở một mức độ nhất định, bạn chỉ có thể cắt bỏ các phần có liên quan và ghi nhớ chúng.

Lần này, hiệu ứng âm thanh sẽ phát mỗi khi bạn nhấp vào nút. Tạo giao diện người dùng của bạn như được hiển thị. Các chi tiết là phù hợp và tốt.

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

Thêm Nguồn âm thanh vào hệ thống phân cấp. Trong trường hợp này, bạn sẽ không đặt clip âm thanh trực tiếp vào Nguồn âm thanh.

Thêm tập lệnh. ButtonEvent Để tên là .

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

using UnityEngine;

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

  /// <summary>音声データ。</summary>
  [SerializeField] private AudioClip AudioClip;

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

AudioSource Hãy nghĩ về nó như một lớp để kiểm soát âm thanh, giống như các mẹo trước.

AudioClip là một lớp lưu trữ dữ liệu âm thanh. Bạn có thể đặt tệp âm thanh tại đây.

AudioSource.PlayOneShot Nếu bạn chuyển nó làm đối số cho phương thức, bạn có thể phát AudioClip dữ liệu âm thanh. Âm thanh được phát bằng phương pháp này được điều khiển độc lập. Nếu bạn gọi lại phương thức này, nó sẽ được phát dưới dạng giọng nói mới tách biệt với giọng nói trước. Do đó, có thể phát lại âm thanh mỗi khi phương pháp này được gọi.

Đính kèm tập lệnh vào EventSystem.

Đối với "Nguồn âm thanh", hãy đặt "Nguồn âm thanh" được thêm vào hệ thống phân cấp.

Đối với "Clip âm thanh", hãy đặt tệp âm thanh từ dự án.

Cuối cùng, đặt phương thức thành sự kiện nhấp chuột của nút.

Chạy trò chơi và nhấp vào nút. Tôi nghĩ rằng các hiệu ứng âm thanh sẽ phát. Ngoài ra, nếu bạn nhấp lại vào nút trong khi phát lại, âm thanh mới sẽ được phát mà không có âm thanh trước đó biến mất.

AudioClip Bằng cách này, giờ đây có thể phát cùng một âm thanh chồng lên nhau bằng cách phát âm thanh qua . Điều này cho phép trò chơi chơi mà không có âm thanh trước đó biến mất một cách không tự nhiên.

Nhược điểm khi chơi bằng AudioClip

AudioClip Tôi đã có thể phát âm thanh chồng lên nhau bằng cách phát nó bằng cách sử dụng , nhưng ngược lại, những nhược điểm sau đây xảy ra.

Âm thanh trở nên ồn ào

Như bạn có thể thấy nếu bạn nhấp vào nút liên tục, âm thanh chồng chéo lên nhau và sóng hài được phát ngày càng to hơn. Ví dụ: nếu bạn muốn phát hiệu ứng âm thanh khi một cuộc tấn công xảy ra trong trò chơi, Nếu nhiều lần truy cập xảy ra cùng một lúc mà không thực hiện bất kỳ biện pháp nào, chúng có thể được phát ở âm lượng bất thường.