Зміст курсу
Бійцівська гра в Unity
Бійцівська гра в Unity
Звуки для Гри
Аудіослухач
Audio Listener
— це компонент у Unity, який виконує роль вух гри. Зазвичай прикріплюється до основної камери або персонажа гравця та сприймає всі звуки у сцені. У кожній сцені повинен бути лише один Audio Listener
.
Функція: Слухає всі аудіоджерела та визначає, що чує гравець, захоплюючи просторовий 3D-звук, що дозволяє гравцеві відчувати напрямок і відстань до джерел звуку.
Фонова музика з Audio Source
Компонент Audio Source
використовується для відтворення аудіокліпів у Unity. Його можна прикріпити до будь-якого об'єкта (GameObject
), наприклад, до спеціального об'єкта для фонової музики або до об'єктів у сцені, які відтворюють звукові ефекти.
Функція: Audio Source
відтворює аудіокліпи та може керуватися й налаштовуватися за допомогою різних параметрів.
Основні параметри компонента Audio Source
AudioClip: Аудіофайл, який буде відтворювати цей Audio Source
.
Output: Audio Mixer Group
, через яку цей аудіоджерело буде передавати звук. Якщо не вказано, використовується стандартний аудіовихід.
Mute: Якщо позначено, цей параметр вимикає звук аудіоджерела, не дозволяючи йому відтворювати звук.
Bypass Effects: Ігнорує будь-які ефекти, застосовані до цього аудіоджерела, тобто звук буде відтворюватися без жодних аудіоефектів.
Bypass Listener Effects: Ігнорує ефекти, застосовані до Audio Listener
.
Bypass Reverb Zones: Запобігає впливу зон реверберації на аудіоджерело у сцені.
Play On Awake: Якщо позначено, аудіоджерело почне відтворювати призначений аудіокліп одразу після запуску сцени.
Loop: Якщо позначено, аудіоджерело буде зациклювати аудіокліп, безперервно повторюючи його до зупинки.
Priority: Визначає пріоритет аудіоджерела. Менші значення означають вищий пріоритет, що корисно, коли одночасно відтворюється багато аудіоджерел.
Volume: Контролює гучність аудіоджерела. Наприклад: 0.263 означає, що звук буде відтворюватися приблизно на 26% від початкової гучності.
Pitch: Регулює висоту тону аудіокліпу. Значення за замовчуванням — 1. Менші значення сповільнюють і знижують тон, більші — прискорюють і підвищують тон.
Stereo Pan: Контролює стереопанораму звуку. Значення -1 повністю зміщує звук вліво, 1 — вправо, 0 — по центру.
Spatial Blend: Визначає співвідношення між 2D та 3D звуком. Значення 0 робить звук повністю 2D (не залежить від положення слухача), а 1 — повністю 3D (залежить від положення слухача).
Reverb Zone Mix: Регулює, наскільки аудіоджерело буде змішане із зонами реверберації у сцені. Значення за замовчуванням — 1.
Підсумок
Audio Listener: Захоплює весь звук у сцені й зазвичай прикріплюється до головної камери;
Audio Source: Відтворює аудіокліпи та може бути налаштований різними параметрами для контролю відтворення та сприйняття звуку;
Основні параметри: Містять AudioClip, Output, Mute, Bypass Effects, Play On Awake, Loop, Priority, Volume, Pitch, Stereo Pan, Spatial Blend та Reverb Zone Mix.
Ці компоненти працюють разом для керування та контролю звукового супроводу в Unity, забезпечуючи захопливе та динамічне звукове середовище для ігор.
Відтворення звуку атаки
private void Update()
{
if (isAttacking)
{
RaycastHit2D rayCastHit = Physics2D.Raycast(transform.position, Vector2.right * transform.localScale.x, range, enemyLayer);
if (rayCastHit)
{
if(rayCastHit.transform.TryGetComponent(out IGetAttacked getAttacked))
{
// Play attack sound
attackAudioSource.Play();
// Apply damage to the enemy
getAttacked.GetAttacked(damage);
// Play attack effect
attackEffect.transform.position = rayCastHit.point;
attackEffect.Play();
// Stop attacking
isAttacking = false;
}
}
}
}
Пояснення використання AudioSource
Виявлення за допомогою Raycast: Використовується raycast для визначення, чи влучає атака гравця у ворога. Raycast виконується з позиції гравця у напрямку, в якому він дивиться, з діапазоном, визначеним attackRange
.
Перевірка влучання: Якщо raycast потрапляє в об'єкт у межах шару enemyLayer
, скрипт перевіряє, чи реалізує цей об'єкт інтерфейс IGetAttacked
.
Відтворення звуку атаки: Коли влучання зафіксовано і ворог може бути атакований (реалізовано інтерфейс IGetAttacked
), відтворюється звук атаки: attackAudioSource.Play()
.
Підсумок
У класі PlayerAttack
компонент AudioSource
відтворює звуковий ефект, коли гравець успішно атакує ворога. Це відбувається за допомогою виклику attackAudioSource.Play()
у методі Update
після влучання raycast. Такий підхід забезпечує миттєвий аудіовідгук, підвищуючи занурення у гру.
Дякуємо за ваш відгук!