एक ही समय में कई ध्वनियाँ चलाएँ

पेज अद्यतन :
पेज निर्माण की तारीख :

सत्यापन वातावरण

विंडोज़
  • विंडोज 11
एकता संपादक
  • 2021.3.3f1
इनपुट सिस्टम पैकेज
  • 1.3.0

इस टिप के लिए आवश्यक शर्तें

इस टिप के विवरण के लिए एक आधार के रूप में निम्नलिखित सेटिंग्स पहले से बनाई गई हैं।

नमूने के साथ शामिल सामग्री के बारे में

ध्वनि प्रभाव निम्नलिखित साइटों से उधार लिए गए हैं।

ऑडियो फ़ाइलों के बारे में

निम्नलिखित ऑडियो फ़ाइल स्वरूपों को यूनिटी की मानक सुविधाओं के साथ खेला जा सकता है: कृपया इसे पहले से तैयार करें क्योंकि इसका उपयोग इन युक्तियों में किया जाएगा।

  • WAV (.wav)
  • OggVorbis (.ogg)
  • एमपीईजी परत 3 (.mp3)

अधिक जानकारी के लिए, आधिकारिक एकता दस्तावेज़ देखें।

एक साथ एकाधिक ऑडियो प्लेबैक के बारे में

पिछले सुझावों में, हमने ऑडियो फ़ाइल चलाने के लिए ऑडियोसोर्स का उपयोग किया, लेकिन जब हमने एक ध्वनि और कई ध्वनियों को बनाने की कोशिश की, तो पिछली ध्वनि गायब हो गई। उदाहरण के लिए, यदि आपके पास एक खेल में दो विस्फोट हैं, तो पहले ध्वनि प्रभाव का गायब होना अप्राकृतिक है जब दूसरा विस्फोट ध्वनि प्रभाव उत्पन्न करता है। यह अनुभाग वर्णन करता है कि एक ही ध्वनि को एक-दूसरे के ऊपर कई बार कैसे चलाएं।

एक ही समय में ऑडियो चलाने के लिए कदम

यहां, मैं उस बिंदु से समझाऊंगा जहां मैंने एक नई परियोजना बनाई है, लेकिन यदि आप एकता को कुछ हद तक जानते हैं, तो आप केवल प्रासंगिक भागों को काट सकते हैं और उन्हें याद कर सकते हैं।

इस बार, जब भी आप बटन पर क्लिक करेंगे, ध्वनि प्रभाव चलेंगे। दिखाए गए अनुसार अपना UI बनाएँ. विवरण उपयुक्त और अच्छे हैं।

ध्वनि फ़ाइल को अपने प्रोजेक्ट में छोड़ कर जोड़ें.

पदानुक्रम में ऑडियो स्रोत जोड़ें. इस स्थिति में, आप ऑडियो क्लिप को सीधे ऑडियोसोर्स पर सेट नहीं करेंगे।

कोई स्क्रिप्ट जोड़ें. ButtonEvent नाम को इस रूप में छोड़ दें।

स्क्रिप्ट इस तरह दिखती है:

using UnityEngine;

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

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

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

AudioSource इसे ऑडियो को नियंत्रित करने के लिए एक वर्ग के रूप में सोचें, बस पिछले सुझावों की तरह।

AudioClip एक वर्ग है जो ऑडियो डेटा संग्रहीत करता है। आप यहां ऑडियो फ़ाइलें सेट कर सकते हैं।

AudioSource.PlayOneShot यदि आप इसे विधि के लिए एक तर्क के रूप में पास करते हैं, तो आप ऑडियो डेटा चला AudioClip सकते हैं। इस विधि द्वारा चलाए गए ऑडियो को स्वतंत्र रूप से नियंत्रित किया जाता है। यदि आप इस विधि को फिर से कॉल करते हैं, तो इसे पिछले से अलग एक नई आवाज के रूप में बजाया जाएगा। इसलिए, हर बार जब इस विधि को कहा जाता है तो ध्वनि को फिर से बजाना संभव है।

स्क्रिप्ट को इवेंटसिस्टम में अनुलग्न करें।

"ऑडियो स्रोत" के लिए, पदानुक्रम में जोड़े गए "ऑडियो स्रोत" सेट करें।

"ऑडियो क्लिप" के लिए, प्रोजेक्ट से एक ऑडियो फ़ाइल सेट करें।

अंत में, बटन के क्लिक ईवेंट पर विधि सेट करें।

गेम चलाएं और बटन क्लिक करें। मुझे लगता है कि ध्वनि प्रभाव खेलेंगे। इसके अलावा, यदि आप प्लेबैक के दौरान फिर से बटन क्लिक करते हैं, तो नई ध्वनि पिछली ध्वनि गायब हुए बिना खेली जाएगी।

AudioClip इस तरह, अब ऑडियो को चलाकर एक दूसरे के ऊपर एक ही ध्वनि को खेलना संभव है। यह खेल को पिछली ध्वनि के बिना खेलने की अनुमति देता है जो अस्वाभाविक रूप से गायब हो जाता है।

ऑडियोक्लिप के साथ खेलते समय नुकसान

AudioClip मैं इसे खेलकर एक दूसरे के ऊपर ऑडियो चलाने में सक्षम था, लेकिन इसके विपरीत, निम्नलिखित नुकसान होते हैं।

आवाज शोर हो जाती है।

जैसा कि आप देख सकते हैं कि यदि आप लगातार बटन पर क्लिक करते हैं, तो ध्वनियां ओवरलैप होती हैं और जो हार्मोनिक बजाया जाता है वह जोर से और तेज हो जाता है। उदाहरण के लिए, यदि आप किसी गेम में हमला होने पर ध्वनि प्रभाव खेलना चाहते हैं, यदि कोई उपाय किए बिना एक ही समय में कई हिट होते हैं, तो उन्हें असामान्य मात्रा में खेला जा सकता है।