شما در حال خواندن بخش سوم تنظیمات صدا در یونیتی هستید، برای دسترسی به بخشهای اول از لینکهای زیر استفاده کنید.
تنظیمات صدا در یونیتی – بخش اول
در بخشهای قبلی به نحوهی اضافه کردن کامپوننت منبع صدا و کلیپ صدا اشاره کردیم و تنظیمات صدای سه بعدی و برخی عملیات خاص یونیتی را هم آموزش دادهایم. قبل از اینکه به کدنویسی صدا در یونیتی بپردازیم قابلیت Loop را هم معرفی میکنیم که صدا را به صورت مداوم تکرار میکند، یعنی وقتی فایل صدای شما تمام شد مجددا آن را پخش میکند. این قابلیت برای تراکتور بسیار ضروری است چون صدای تراکتور مداوم است. پس در حین اضافه کردن کلیپ تراکتور گزینهی Loop را هم فعال کنید.
اضافه کردن صدای برخورد
در فایل پکیج یونیتی که در پایین لینک دانلود آن قرار داده شده است و مربوط به یک بازی تراکتور حیوانات است وقتی تراکتور به حیوانات برخورد میکند صدایی از حیوانات شنیده میشود که به معنی کشته شدن حیوانات است. هنوز این صدا را به آن اضافه نکردهایم. در ضمن چگونه باید تعیین کنیم که دقیقا در لحظهی برخورد این صدا شنیده شود؟ این کار از طریق کدنویسی برای صدا در یونیتی انجام میشود.
قبل از هر چیز باید شما باید فایل مربوط به death را روی کامپوننت تراکتور اضافه کنید. برای انجام این کار مطابق فایل گیف پایین عمل کنید. دقیقا همانند اضافه کردن صدای تراکتور، هر سه تراکتور را انتخاب کنید و فایل مربوطه را در قسمت AudioClip درگ کنید.
کدنویسی صدا در یونیتی
حالا نوبت کدنویسی برای صدا در یونیتی است. یونیتی تنها یک ادیتور نیست بلکه متصل به یک سیستم برنامهنویسی است که با زبانهای مختلفی کوپل میشود. اما بهتر است از زبان C# استفاده کنید. چون هم راحتتر است و هم نزدیک به زبان انسان است و خطایابی آن راحتتر انجام میشود.
روی تراکتور دابل کلیک کنید تا وارد محیط کدنویسی سی شارپ یونیتی شوید.
حالا کد زیر را قبل از بسته شدن براکت if statement قرار دهید:
audioSource.PlayOneShot(deathSound);
نتیجه نهایی به این شکل در میآید:
حالا این کد را ذخیره کنید. (CTRL+S)
PlayOneShot() صدا را یک بار پخش میکند. شما تعیین کردهاید. اما یک سوال؟ چرا این کد را برای تراکتور نوشتهایم؟ مگر این صدا قرار نیست توسط حیوانات ایجاد شود؟
جواب واضح است. برای اینکه GameObject حیوانات پس از برخورد حذف میشود و چون دیگر وجود ندارد پس نمیتواند صدایی ایجاد کند و کد نوشتن برای آن بهگونهای که مجددا صدا را پخش کند بسیار سختتر و پیچیدهتر است. در حالی که تراکتور همیشه در صحنه وجود دارد و با هر برخورد میتواند صدا تولید کند.
مزیت استفاده از PlayOneShot() این است که صدا هر بار به صورت کامل پخش میشود حتی اگر در حین پخش یک بار دیگر برخورد صورت بگیرد باز هم فراخوانی میشود و صدا به صورت کامل پخش میشود، در غیر این صورت صداها همدیگر را قطع میکردند و تجربهی ناخوشایندی برای کاربران به وجود میآید.
حالا نوبت تست است. به حالت Play بروید و سعی کنید حیوانات را به سمت تراکتور ببرید تا به آن برخورد کنند. خواهید دید که پس از هر برخورد صدای death پخش میشود و به این معناست که کدهای شما به درستی کار میکنند.
اضافه کردن صدای برد یا موفقیت
تنها صدایی که در حال حاضر به پروژه اضافه نشده صدای پیروزی و موفقیت است. یعنی وقتی حیوانات به انبار میرسند.
قبل از اینکه ادامه آموزش را بخوانید به این سوال جواب دهید:
صدای برد را باید به کدام آبجکت اضافه کنیم تا بتواند برای تمام حیوانات جوابگو باشد؟
خوب فکر کنید و سعی کنید خودتان جواب دهید.
صدا باید به انبار اضافه شود چون آبجکتی است که همواره در صحنه حضور دارد و حذف نمیشود و میتوانید یک صدا را برای تمام حیوانات روی انبار قرار دهید.
حالا صدا را به انبار اضافه میکنیم.
- انبار را انتخاب کنید.
- در قسمت Inspector یک AudioSource اضافه کنید.
- صدای win را از مسیر Assets > RW > Sounds در قسمت AudioClip درگ کنید.
- Play On Awake را فعال کنید.
- روی انبار غله دابل کلیک کنید و در if statement کد زیر را وارد کنید.
if(col.gameObject.GetComponent<Animal>())
نتیجه نهایی باید به شکل زیر باشد:
به این معناست که وقتی آبجکت حیوانات به آبجکت انبار برخورد میکند کامپوننت AudioSource صدا را پخش میکند. حالا اگر به حالت Play بروید و بازی کنید میبینید که پس از رسیدن حیوانات به انبار صدای برد پخش میشود.
تمام، حالا تمام المانهای بازی صدای خاص خودشان را دارند و پروژه با موفقیت تکمیل شده است.
مرحلهی بعدی چیست؟
مرحلهی بعدی این است که پروژه یونیتی زیر که شامل بازی کامل تراکتور و حیوانات است را دانلود کنید و خودتان سعی کنید تمام مراحل گفته شده را روی آن پیاده کنید و هر جا که به مشکل خوردید از آموزشهای گفته شده استفاده کنید.
فراموش نکنید ما یک فروشگاه صدای بازی هم داریم که میتوانید پکیجهای صدای رایگان و پولی برای بازیسازی را دانلود کنید و از آنها در بازیهای خود استفاده کنید. کافیست روی لینک زیر کلیک کنید تا وارد فروشگاه شوید:
تنها صداست که میماند. به صدا ایمان بیاور.