آموزش ساخت بازی دو بعدی (جلسه ی هفتم)
برای دیدن جزئیات تمام جلسه های این دوره اینجا کلیک کنید .
کار با صداها در یونیتی
تا به حال که توانایی کار گرافیکی در یونیتی را در درس های گذشته فراگرفتیم میخواهیم روی صداها کار کنیم و تعدادی صدا و موزیک به بازی اضافه کنیم این کار در یونیتی بسیار ساده هست ولی به یاد داشته باشید که جزو مهم ترین قدم ها در بازی سازی می باشد
شما یاد میگیرید که کجا صداها را پیدا و انتخاب کنید و توسط اسکریپت درون بازی خودتان به اجرا در بیاورید
دقت کنید که در یونیتی نسخه ی ۵ به بالا قابلیت های صوتی بسیاری در یونیتی اضافه شده هست که ما فعلا قصد استفاده کردن از آنها را نداریم
پیدا کردن صدا و موزیک
بهتر هست ابتدا این لینک را کامل مطالعه کنید .
براساس اطلاعات موجود ، یک توسعه دهنده ی بازی میتواند :
- صدا یا موزیک ها را بخرد
- یک موسیقی ساز استخدام بکند
- از صداهای رایگان استفاده کند مانند FindSounds یا Freesound
- صدای خودش را ضبط بکند
شما میتوانید صدای های ۸ بیت برای بازی خود را در سایت BFXR بسازید
برای موزیک بازی بستگی دارد که شما چه نوع موزیکی نیاز دارید – Jamendo منبعی از هنرمندان هست و Bosca Ceoil یک نرم افزار ساده برای ساخت موسیقی هست
ASSET های ما برای آموزش
موارد زیر را دانلود کنید و در ادامه ی آموزش استفاده کنید
— لینک های دانلود اضافه خواهد شد —
اضافه کردن فایل صوتی به یونیتی
همانند بقیه موارد شما فقط با درگ کردن فایل های صوتی به درون یونیتی میتوانید انها را درون یونیتی ببرید کافیست تمام موسیقی های خود را به پوشه ای مثلا به نام Sounds درگ کنید .همین !
اجرای موزیک یونیتی
برای اجرا شدن صدا در یونیتی ، فایل صوتی را به Hierarchy درگ کنید به همین سادگی
در تصویر بالا چک باکس Mute را ببینید . این زمانی به درد خواهد خورد که میخواهید تست های متعدد انجام دهید.
اجرای قطعه صدا در یونیتی
شما میتوانید همانند به اجرا درآوردن موزیک ، قطعه صداهای خود را نیز پخش کنید ولی قطعه صداها باید در زمان مشخص و درستی پخش شوند نه همیشه !!!
برای این هدف ، ما راه حل ساده ای در نظر گرفته ایم درست مانند اسکریپت SpecialEffectsHelper که ساختیم
ما باید یه اسکریپت کمک کننده داشته باشیم که همه جا بتوانیم استفاده کنیم
اسکریپت جدید به نام SoundEffectsHelper بسازید و محتویات زیر را کپی کنید
using UnityEngine; using System.Collections; /// <summary> /// Creating instance of sounds from code with no effort /// </summary> public class SoundEffectsHelper : MonoBehaviour { /// <summary> /// Singleton /// </summary> public static SoundEffectsHelper Instance; public AudioClip explosionSound; public AudioClip playerShotSound; public AudioClip enemyShotSound; void Awake() { // Register the singleton if (Instance != null) { Debug.LogError("Multiple instances of SoundEffectsHelper!"); } Instance = this; } public void MakeExplosionSound() { MakeSound(explosionSound); } public void MakePlayerShotSound() { MakeSound(playerShotSound); } public void MakeEnemyShotSound() { MakeSound(enemyShotSound); } /// <summary> /// Play a given sound /// </summary> /// <param name="originalClip"></param> private void MakeSound(AudioClip originalClip) { // As it is not 3D audio clip, position doesn't matter. AudioSource.PlayClipAtPoint(originalClip, transform.position); } }
اسکریپت را به شی Scripts اضافه کنید و فیلد های صوتی را تکمیل کنید تصویر زیر را ببینید

صدا در یونیتی
سپس متدهای زیر را برای به اجرا درآوردن اسکریپت صدا در جاهای مختلف بنویسید
- SoundEffectsHelper.Instance.MakeExplosionSound(); در اسکریپت HealthScript درست قبل از اجرای particle
- SoundEffectsHelper.Instance.MakePlayerShotSound(); در PlayerScript درست بعد از weapon.Attack(false);
- SoundEffectsHelper.Instance.MakeEnemyShotSound(); را در EnemyScript بعد از weapon.Attack(true);
بازی را اجرا کنید و صداها را گوش کنید
این جلسه تمام شد
در نهایت از شما خواهشمندیم مطلب را با دوستان خود به اشتراک گذاشته و با نظرات خود ما را حمایت کنید
با احترام
عباس نیکزاد

پرسش و پاسخ این آموزش