เล่น หยุดชั่วคราว หรือหยุดเอฟเฟ็กต์เสียงเดียว
สภาพแวดล้อมการตรวจสอบ
- หน้าต่าง
-
- หน้าต่าง 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
และวิธีการเพื่อให้คุณสามารถเล่นหยุดชั่วคราวและPlay
Pause
Stop
หยุดตามลําดับ
คุณสามารถแนบสคริปต์เข้ากับแหล่งเสียงได้ แต่ในกรณีนี้ คุณจะแนบสคริปต์นั้นเข้ากับ EventSystem ตรวจสอบให้แน่ใจว่าสคริปต์ของคุณเต็มไปด้วยแหล่งเสียงที่คุณสร้างไว้ก่อนหน้านี้
ตอนนี้กําหนดแต่ละวิธีให้กับเหตุการณ์การคลิกของปุ่มสามปุ่ม
เมื่อคุณทําเสร็จแล้วให้รันเกมและดูว่าเอฟเฟกต์เสียงเล่นหรือไม่
เล่นหยุดชั่วคราวและหยุดเป็นคําที่ใช้กันทั่วไปดังนั้นคุณไม่จําเป็นต้องเขียนรายละเอียด แต่ฉันคิดว่ามันใช้งานได้ดังนี้
- เมื่อคุณคลิกปุ่มเล่นเอฟเฟกต์เสียงจะเล่นเพียงครั้งเดียวและเล่นจนจบ
- ในระหว่างการเล่น ให้คลิกปุ่มหยุดชั่วคราวเพื่อหยุดการเล่นเสียง
- เมื่อคุณคลิกปุ่มเล่นขณะหยุดชั่วคราว เสียงจะเล่นจากตําแหน่งหยุด
- คลิกปุ่มหยุดระหว่างการเล่นเพื่อหยุดการเล่นเสียงที่กําลังเล่น
- คลิกปุ่มเล่นในขณะที่หยุดเล่นตั้งแต่ต้น
- การคลิกปุ่มหยุดระหว่างการหยุดชั่วคราวจะปล่อยตําแหน่งที่หยุดชั่วคราวและในครั้งต่อไปที่คุณเล่นมันจะเป็นตั้งแต่เริ่มต้น
- หากคุณคลิกปุ่มเล่นระหว่างการเล่นเสียงที่กําลังเล่นอยู่จะหยุดและเล่นตั้งแต่ต้น
ข้อเสียของการใช้ AudioSource เพียงอย่างเดียว
มีวิธีแก้ปัญหา แต่เคล็ดลับนี้มีข้อเสียดังต่อไปนี้ เราจะกล่าวถึงวิธีแก้ปัญหาเหล่านี้ในเคล็ดลับอื่น
ไม่สามารถเล่นเสียงเดียวกันสองเสียงขึ้นไปในเวลาเดียวกันได้
คุณสามารถตรวจสอบได้โดยกดปุ่มเล่นหลายครั้ง แต่เสียงก่อนหน้าจะหายไปเมื่อคุณเล่นเสียงใหม่ เมื่อพูดถึงข้อเสียมันเป็นข้อเสีย แต่ในทางตรงกันข้ามถ้าคุณเล่นเสียงเดียวกันด้านบนของกันและกันระดับเสียงจะดังมากดังนั้นจึงเป็นข้อได้เปรียบในแง่ที่ว่ามันป้องกันได้ อย่างไรก็ตามเสียงก่อนหน้าจะยังคงหายไปดังนั้นขึ้นอยู่กับประเภทของเสียงมันจะไม่เป็นธรรมชาติ
คุณต้องมี AudioSources มากเท่าที่มีประเภทของเสียงที่จะเล่น
เนื่องจากสามารถตั้งค่าคลิปเสียงได้เพียงคลิปเดียวใน AudioSource คุณจึงต้องจัดเตรียม AudioSource ตามที่คุณต้องการด้วยเสียงมากเท่าที่คุณต้องการ คุณยังสามารถเตรียม AudioSource ได้เพียงแหล่งเดียวและเปลี่ยนคลิปเสียงเมื่อเล่นเสียงอื่น มันผิดธรรมชาติเพราะเสียงก่อนหน้าหายไปเนื่องจากปัญหาที่เสียงเดียวกันสองเสียงขึ้นไปที่เขียนก่อนหน้านี้ไม่สามารถเล่นได้ในเวลาเดียวกัน