เล่น หยุดชั่วคราว หรือหยุดเอฟเฟ็กต์เสียงเดียว

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สภาพแวดล้อมการตรวจสอบ

หน้าต่าง
  • หน้าต่าง 11
บรรณาธิการ Unity
  • ปี 2021.3.3f1
แพ็คเกจระบบอินพุต
  • 1.3.0

ข้อกําหนดเบื้องต้นสําหรับเคล็ดลับนี้

การตั้งค่าต่อไปนี้ได้ทําไว้ล่วงหน้าเพื่อเป็นหลักฐานสําหรับคําอธิบายของเคล็ดลับนี้

เกี่ยวกับวัสดุที่มาพร้อมกับตัวอย่าง

เอฟเฟกต์เสียงยืมมาจากไซต์ต่อไปนี้

เกี่ยวกับไฟล์เสียง

รูปแบบไฟล์เสียงต่อไปนี้สามารถเล่นได้ด้วยคุณสมบัติมาตรฐานของ Unity: โปรดเตรียมล่วงหน้าเพราะจะใช้ในเคล็ดลับเหล่านี้

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG เลเยอร์ 3 (.mp3)

สําหรับข้อมูลเพิ่มเติม โปรดดูเอกสาร Unity อย่างเป็นทางการ

เกี่ยวกับการเล่นเอฟเฟ็กต์เสียง

มีหลายวิธีในการเล่นเอฟเฟกต์เสียง แต่ที่นี่เราต้องการแนะนําคุณผ่านวิธีง่ายๆในการเล่นในขณะที่ใช้คุณสมบัติมาตรฐาน

เนื้อหาคือการจัดเรียงปุ่มและเล่นหยุดชั่วคราวและหยุดโดยคลิกที่ปุ่ม ในเกมจริงคุณสามารถใช้กระบวนการเดียวกันนอกเหนือจากปุ่ม

ขั้นแรกให้วางปุ่มเพื่อเล่นเอฟเฟกต์เสียงดังที่แสดงในรูป

เพิ่มไฟล์เสียงที่เตรียมไว้โดยวางลงในโครงการของคุณ

จากนั้นเพิ่ม" แหล่งเสียง" ในลําดับชั้น

เมื่อคุณเลือกแหล่งเสียงที่คุณสร้างขึ้นส่วนประกอบแหล่งเสียงจะมีคลิปเสียงซึ่งคุณจะวางไฟล์เสียงจากโครงการของคุณเพื่อกําหนดค่า

อย่างไรก็ตามหากคุณเริ่มเกมตามที่เป็นอยู่เอฟเฟกต์เสียงที่คุณตั้งไว้จะเล่นทันที นี่เป็นเพราะมีการตรวจสอบ "เล่นเมื่อเริ่มเกม" ไม่น่าเป็นไปได้ที่เอฟเฟกต์เสียงจะเล่นอย่างกะทันหันดังนั้นอย่าปล่อยให้การตรวจสอบนี้ไม่ถูกเลือก

จากนั้นสร้างสคริปต์ SoundPlayer ทิ้งชื่อไว้เป็น .

สคริปต์มีลักษณะดังนี้:

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 จะถูกตั้งค่าในภายหลังจากตัวแก้ไข AudioSource นี้เป็นเวอร์ชันที่มีเอฟเฟกต์เสียงที่ตั้งไว้ก่อนหน้านี้

AudioSourceและวิธีการเพื่อให้คุณสามารถเล่นหยุดชั่วคราวและPlayPauseStopหยุดตามลําดับ

คุณสามารถแนบสคริปต์เข้ากับแหล่งเสียงได้ แต่ในกรณีนี้ คุณจะแนบสคริปต์นั้นเข้ากับ EventSystem ตรวจสอบให้แน่ใจว่าสคริปต์ของคุณเต็มไปด้วยแหล่งเสียงที่คุณสร้างไว้ก่อนหน้านี้

ตอนนี้กําหนดแต่ละวิธีให้กับเหตุการณ์การคลิกของปุ่มสามปุ่ม

เมื่อคุณทําเสร็จแล้วให้รันเกมและดูว่าเอฟเฟกต์เสียงเล่นหรือไม่

เล่นหยุดชั่วคราวและหยุดเป็นคําที่ใช้กันทั่วไปดังนั้นคุณไม่จําเป็นต้องเขียนรายละเอียด แต่ฉันคิดว่ามันใช้งานได้ดังนี้

  • เมื่อคุณคลิกปุ่มเล่นเอฟเฟกต์เสียงจะเล่นเพียงครั้งเดียวและเล่นจนจบ
  • ในระหว่างการเล่น ให้คลิกปุ่มหยุดชั่วคราวเพื่อหยุดการเล่นเสียง
  • เมื่อคุณคลิกปุ่มเล่นขณะหยุดชั่วคราว เสียงจะเล่นจากตําแหน่งหยุด
  • คลิกปุ่มหยุดระหว่างการเล่นเพื่อหยุดการเล่นเสียงที่กําลังเล่น
  • คลิกปุ่มเล่นในขณะที่หยุดเล่นตั้งแต่ต้น
  • การคลิกปุ่มหยุดระหว่างการหยุดชั่วคราวจะปล่อยตําแหน่งที่หยุดชั่วคราวและในครั้งต่อไปที่คุณเล่นมันจะเป็นตั้งแต่เริ่มต้น
  • หากคุณคลิกปุ่มเล่นระหว่างการเล่นเสียงที่กําลังเล่นอยู่จะหยุดและเล่นตั้งแต่ต้น

ข้อเสียของการใช้ AudioSource เพียงอย่างเดียว

มีวิธีแก้ปัญหา แต่เคล็ดลับนี้มีข้อเสียดังต่อไปนี้ เราจะกล่าวถึงวิธีแก้ปัญหาเหล่านี้ในเคล็ดลับอื่น

ไม่สามารถเล่นเสียงเดียวกันสองเสียงขึ้นไปในเวลาเดียวกันได้

คุณสามารถตรวจสอบได้โดยกดปุ่มเล่นหลายครั้ง แต่เสียงก่อนหน้าจะหายไปเมื่อคุณเล่นเสียงใหม่ เมื่อพูดถึงข้อเสียมันเป็นข้อเสีย แต่ในทางตรงกันข้ามถ้าคุณเล่นเสียงเดียวกันด้านบนของกันและกันระดับเสียงจะดังมากดังนั้นจึงเป็นข้อได้เปรียบในแง่ที่ว่ามันป้องกันได้ อย่างไรก็ตามเสียงก่อนหน้าจะยังคงหายไปดังนั้นขึ้นอยู่กับประเภทของเสียงมันจะไม่เป็นธรรมชาติ

คุณต้องมี AudioSources มากเท่าที่มีประเภทของเสียงที่จะเล่น

เนื่องจากสามารถตั้งค่าคลิปเสียงได้เพียงคลิปเดียวใน AudioSource คุณจึงต้องจัดเตรียม AudioSource ตามที่คุณต้องการด้วยเสียงมากเท่าที่คุณต้องการ คุณยังสามารถเตรียม AudioSource ได้เพียงแหล่งเดียวและเปลี่ยนคลิปเสียงเมื่อเล่นเสียงอื่น มันผิดธรรมชาติเพราะเสียงก่อนหน้าหายไปเนื่องจากปัญหาที่เสียงเดียวกันสองเสียงขึ้นไปที่เขียนก่อนหน้านี้ไม่สามารถเล่นได้ในเวลาเดียวกัน