Зміст курсу
Бійцівська гра в Unity
Бійцівська гра в Unity
Випадково згенеровані перешкоди.
Клас Obstacle
керує перешкодами в грі, забезпечуючи їх переміщення, коли вони виходять за межі екрану, щоб підтримувати безперервний ігровий процес.
Методи
Метод Start
Призначення: Ініціалізує останню перешкоду та знаходить трансформацію гравця.
Як це працює:
lastObject = startingLastObject;
: Встановлює lastObject
на початкову перешкоду, вказану в Інспекторі;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Знаходить трансформацію гравця за допомогою методу FindAnyObjectByType
.
Метод OnBecameInvisible
Призначення: Переміщує перешкоду, коли вона зникає з екрану і відповідає певним умовам.
Як це працює:
Скрипт перевіряє, чи існує гравець перед продовженням (if (player == null) return;
), перевіряє, чи перешкода розташована позаду гравця (if (transform.position.x >= player.position.x) return;
), і запобігає повторному переміщенню (if (transform == lastObject) return;
).
Він отримує поточну позицію перешкоди (Vector2 position = transform.position;
), генерує випадкове число (float random = Random.Range(0, 100);
) і коригує y-позицію перешкоди на основі випадкового числа.
Потім він оновлює x-позицію відносно останньої перешкоди (position.x = lastObject.position.x + Random.Range(6f, 10f);
) і оновлює lastObject
, щоб посилатися на поточну перешкоду (lastObject = transform;
).
Підсумок
- Ініціалізація: Встановлює початкову останню перешкоду та знаходить гравця;
- Переміщення: Коли перешкода зникає з екрану і відповідає певним умовам, вона переміщується на випадкову відстань попереду останньої перешкоди з випадковою висотою;
- Умови: Забезпечує переміщення перешкод лише якщо вони позаду гравця, і не є тією ж самою перешкодою повторно.
Ця установка дозволяє забезпечити безперервний потік перешкод у грі, підтримуючи виклик та різноманітність для гравця.
Дякуємо за ваш відгук!