Зміст курсу
Бійцівська гра в Unity
Бійцівська гра в Unity
Випадково Згенеровані Перешкоди.
Клас Obstacle
керує перешкодами у грі, забезпечуючи їх повторне розміщення після виходу за межі екрану для підтримки безперервного ігрового процесу.
Методи
Метод Start
csharp
Призначення: Ініціалізує останню перешкоду та знаходить трансформ гравця.
Як працює:
lastObject = startingLastObject;
: Встановлює lastObject
на початкову перешкоду, вказану в Інспекторі;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Знаходить трансформ гравця за допомогою методу FindAnyObjectByType
.
Метод OnBecameInvisible
csharp
Призначення: Змінює розташування перешкоди, коли вона виходить за межі екрану та відповідає певним умовам.
Як це працює:
Скрипт перевіряє наявність гравця перед виконанням (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;
).
Підсумок
Ініціалізація: Встановлює початкову останню перешкоду та знаходить гравця;
Переміщення: Коли перешкода виходить за межі екрану та відповідає певним умовам, вона переміщується на випадкову відстань попереду останньої перешкоди з випадковою висотою;
Умови: Забезпечує переміщення перешкод лише якщо вони знаходяться позаду гравця і не є тією ж самою перешкодою повторно.
Ця конфігурація забезпечує безперервний потік перешкод у грі, підтримуючи виклик і різноманітність для гравця.
Дякуємо за ваш відгук!