/
darov
/
Platformer
Обзор
Документация
Войти
/
darov
/
Platformer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/Scripts/EnemyCollisionBehaviour.cs
56 строк
1 KB
Roman Danilov
Module18_1
28 июл 2025, 15:05
28 июл 2025, 15:05
5d4cab1
Код
Авторство
О чём код?
using UnityEngine; public class EnemyCollisionBehaviour : MonoBehaviour { private IStompFunction[] _stompFunctions; private ICollisionFunction[] _collisionFunctions; private void Start() { _stompFunctions = GetComponents<IStompFunction>(); _collisionFunctions = GetComponents<ICollisionFunction>(); } private void OnCollisionEnter2D(Collision2D collision) { CheckIsStomp(collision.gameObject, out bool isStomp); if (isStomp) { EnableStompingFunction(collision.gameObject); } else { EnableCollisionFunction(collision.gameObject); } } private void CheckIsStomp(GameObject other, out bool isStomp) { isStomp = false; if (other.TryGetComponent(out Rigidbody2D otherRigidbody)) { if (otherRigidbody.velocity.y < -0.01f) { isStomp = true; } } } private void EnableStompingFunction(GameObject gameObject) { foreach (var function in _stompFunctions) { function.EnableFunction(gameObject); } } private void EnableCollisionFunction(GameObject gameObject) { foreach (var function in _collisionFunctions) { function.EnableFunction(gameObject); } } }