Пояснення Коду
Свайпніть щоб показати меню
Код гравця
Ініціалізація у методі Start
private void Start()
{
startPosition = transform.position;
}
Призначення: Зберігає початкову позицію гравця під час запуску гри.
Перезапуск позиції гравця
public void RestartPlayerPosition()
{
transform.position = startPosition;
rb.velocity = Vector2.zero;
}
Призначення: Скидає позицію гравця до початкової та зупиняє будь-який рух, встановлюючи швидкість на нуль.
Обробка введення гравця в методі Update
private void Update()
{
Vector2 oldVelocity = rb.velocity;
if (Input.GetKeyDown(KeyCode.Space))
{
oldVelocity.y = 6;
}
oldVelocity.x = 4;
rb.velocity = oldVelocity;
}
Призначення: Фіксує введення гравця (клавіша пробіл) для того, щоб змусити гравця "стрибнути", встановлюючи y-швидкість на 6, при цьому постійно рухаючи гравця вправо шляхом встановлення x-швидкості на 4.
Обробка зіткнень
OnCollisionEnter2D
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.collider.tag == "ground")
{
RestartPlayerPosition();
}
}
Призначення: Скидає позицію гравця при зіткненні з об'єктами з тегом "ground".
OnTriggerEnter2D
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "win")
{
winPanel.SetActive(true);
SoundManager.instance.PlayEffect(1);
}
}
Призначення: Активує панель перемоги та відтворює звуковий ефект при зіткненні гравця з об'єктами з тегом "win".
Підсумок
- Рух: Гравець рухається вправо безперервно та стрибає при натисканні клавіші пробіл;
- Скидання: Позиція гравця скидається при зіткненні із землею;
- Перемога: Відображає панель перемоги та відтворює звук при досягненні тригера перемоги.
Клас SoundManager
Метод Start
private void Start()
{
if (instance == null)
{
instance = this;
}
else
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
}
Призначення:
Забезпечує існування лише одного екземпляра SoundManager у грі за допомогою патерна Singleton. Використовує DontDestroyOnLoad(gameObject), щоб зберігати об'єкт при переході між різними сценами.
Метод PlayEffect
public void PlayEffect(int index)
{
if (index >= 0 && index < effects.Count)
{
source.PlayOneShot(effects[index]);
}
}
Призначення:
Приймає ціле число index для визначення, який звуковий ефект відтворити зі списку effects. Перевіряє, чи знаходиться index у допустимому діапазоні списку effects, і відтворює відповідний звуковий ефект за допомогою source.PlayOneShot(effects[index]).
Підсумок
- Патерн Singleton: Гарантує існування лише одного екземпляра
SoundManagerу грі, який зберігається між сценами; - Відтворення звукових ефектів: Використовує метод
PlayEffectдля відтворення звукових ефектів за індексом у спискуeffects; - Джерело аудіо: Використовує компонент
AudioSourceдля відтворення аудіокліпів.
Клас WinPanel
Клас WinPanel забезпечує функціональність для UI-панелі, яка з'являється при перемозі гравця. Містить методи для повернення до головного меню або перезапуску рівня, кожен з яких відтворює звуковий ефект і завантажує відповідну сцену.
Методи
Метод ReturnToMainMenu
public void ReturnToMainMenu()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene(0);
}
Призначення:
Відтворює звуковий ефект (індекс 0) за допомогою SoundManager.instance.PlayEffect(0). Завантажує сцену головного меню з індексом збірки 0 за допомогою SceneManager.LoadScene(0).
Метод RestartLevel
public void RestartLevel()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene("Game");
}
Призначення:
Відтворює звуковий ефект (індекс 0) за допомогою SoundManager.instance.PlayEffect(0). Завантажує ігрову сцену з назвою "Game" за допомогою SceneManager.LoadScene("Game").
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат