У тебя будет объект с Rigidbody2d, назовём его Player. Два дочерних объекта, у одного будет коллайдер обычный, у второго коллайдер для подката. Коллайдер для подката изначально выключен. На объект Player вешаем скрипт обработки. В скрипте пишешь:
Код
void Update() {
if(Input.GetKeyUp("R")) {
EnableTackleCollider();
StartCoroutine(EbableStayCollider(1f)); // 1f - длительность подката в секундах
}
}
IEnumerator EbableStayCollider(float delay) {
yield return new WaitForSeconds(delay);
EnableStayCollider();
}
void EnableStayCollider() {
transform.Find("StayCollider").gameObject.SetActive(true);
transform.Find("TackleCollider").gameObject.SetActive(false);
}
void EnableTackleCollider() {
transform.Find("StayCollider").gameObject.SetActive(false);
transform.Find("TackleCollider").gameObject.SetActive(true);
}
*Код приведён без нужных проверок, флагов и кеширования объектов.
Структура объекта:
Player
- StayCollider
- TackleCollider