Memainkan, menjeda atau menghentikan satu kesan bunyi

Laman dikemaskini :
Tarikh penciptaan halaman :

Persekitaran pengesahan

Windows
  • Windows 11
Penyunting Perpaduan
  • 2021.3.3F1
Pakej Sistem Input
  • 1.3.0

Prasyarat untuk petua ini

Tetapan berikut telah dibuat terlebih dahulu sebagai premis untuk penerangan petua ini.

Mengenai bahan yang disertakan dengan sampel

Kesan bunyi dipinjam dari laman web berikut.

Perihal fail audio

Format fail audio berikut boleh dimainkan dengan ciri standard Unity: Sila sediakannya terlebih dahulu kerana ia akan digunakan dalam petua ini.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG lapisan 3 (.mp3)

Untuk maklumat lanjut, lihat dokumentasi Unity rasmi.

Mengenai memainkan kesan bunyi

Terdapat beberapa cara untuk memainkan kesan bunyi, tetapi di sini kami ingin membimbing anda melalui cara yang mudah untuk memainkannya semasa menggunakan ciri standard.

Kandungannya adalah untuk mengatur butang dan bermain, berhenti seketika, dan berhenti dengan mengklik butang. Dalam permainan sebenar, anda boleh melaksanakan proses yang sama selain daripada butang.

Pertama, letakkan butang untuk memainkan kesan bunyi seperti yang ditunjukkan dalam gambar.

Tambah fail bunyi yang disediakan dengan menjatuhkannya ke dalam projek anda.

Seterusnya, tambah "Sumber Audio" pada hierarki.

Apabila anda memilih Sumber Audio yang anda cipta, komponen Sumber Audio mempunyai Klip Audio, yang mana anda melepaskan fail audio daripada projek anda untuk mengkonfigurasinya.

Dengan cara ini, jika anda memulakan permainan seperti itu, kesan bunyi yang anda tetapkan akan tiba-tiba bermain. Ini kerana "Main pada permulaan permainan" diperiksa. Tidak mungkin kesan bunyi akan dimainkan secara tiba-tiba, jadi biarkan cek ini tidak diperiksa.

Seterusnya, buat skrip. SoundPlayer Tinggalkan nama sebagai .

Skrip kelihatan seperti ini:

using UnityEngine;

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

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

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

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

AudioSource akan ditetapkan kemudian daripada editor. AudioSource ini adalah yang mempunyai kesan bunyi yang ditetapkan sebelum ini.

AudioSource, , dan kaedah, supaya anda boleh bermain, menjeda, dan PlayPauseStop berhenti masing-masing.

Anda boleh melampirkan skrip pada Sumber Audio, tetapi dalam kes ini anda akan melampirkannya pada EventSystem. Pastikan skrip anda diisi dengan Sumber Audio yang anda cipta sebelum ini.

Sekarang berikan setiap kaedah untuk acara klik tiga butang.

Sebaik sahaja anda selesai, jalankan permainan dan lihat sama ada kesan bunyi dimainkan.

Main, jeda dan berhenti adalah istilah yang biasa digunakan, jadi anda tidak perlu menulisnya secara terperinci, tetapi saya fikir ia berfungsi seperti berikut.

  • Apabila anda mengklik butang main, kesan bunyi dimainkan sekali sahaja dan dimainkan hingga akhir.
  • Semasa main semula, klik butang jeda untuk menghentikan bunyi dimainkan
  • Apabila anda mengklik butang main semasa dijeda, bunyi dimainkan dari kedudukan berhenti.
  • Klik butang berhenti semasa main balik untuk menghentikan bunyi dimainkan
  • Klik butang main semasa berhenti untuk bermain dari awal
  • Mengklik butang berhenti semasa jeda akan melepaskan kedudukan yang dijeda dan kali seterusnya anda bermain, ia akan dari awal.
  • Jika anda mengklik butang main balik semasa main balik, bunyi yang sedang dimainkan dihentikan dan dimainkan dari awal.

Kelemahan menggunakan AudioSource sahaja

Terdapat penyelesaian, tetapi Petua ini mempunyai kelemahan berikut. Kami akan membincangkan penyelesaian ini dalam petua lain.

Tidak dapat memainkan dua atau lebih bunyi yang sama pada masa yang sama

Anda boleh menyemaknya dengan menekan butang main beberapa kali, tetapi bunyi sebelumnya hilang apabila anda memainkan bunyi baru. Bercakap tentang keburukan, ia adalah kelemahan, tetapi sebaliknya, jika anda memainkan bunyi yang sama di atas satu sama lain, kelantangannya akan menjadi sangat kuat, jadi ia adalah kelebihan dalam erti kata bahawa ia menghalangnya. Walau bagaimanapun, bunyi sebelumnya masih akan hilang, jadi bergantung kepada jenis bunyi, ia akan menjadi tidak wajar.

Anda mesti mempunyai seberapa banyak AudioSumber kerana terdapat jenis bunyi untuk dimainkan

Memandangkan hanya satu klip audio boleh disetkan dalam AudioSource, anda perlu menyediakan AudioSource kerana anda mempunyai seberapa banyak bunyi yang anda inginkan. Anda juga boleh menyediakan hanya satu AudioSource dan mengubah klip audio apabila memainkan bunyi yang berbeza. Ia tidak wajar kerana bunyi sebelumnya hilang kerana masalah bahawa dua atau lebih bunyi yang sama ditulis sebelum tidak dapat dimainkan pada masa yang sama.