Я строю платформер с появлением ящиков.Коробка отображается как только игрок попадает в нее.Это работает очень хорошо, например так:
public class AppearingBoxes : MonoBehaviour
{
public GameObject Block, RageFace;
bool showBlock = false;
void Start()
{
showBlock = false;
}
void OnCollisionEnter(Collision2D col)
{
if (col.gameObject.name == "Birdy")
{
showBlock = true;
}
}
void FixedUpdate()
{
Block.GetComponent<Renderer>().enabled = showBlock;
RageFace.GetComponent<Renderer>().enabled = showBlock;
}
}
Этот скрипт прикреплен ко всем этим блокам.Каждый блок представляет собой отдельный блок, но все с тем же сценарием, свойствами и именем:

Но здесь возникает проблема.Только первый HIT запускает окно.Как вы можете себе представить, игрок прыгает поверх этих невидимых ящиков и затем запускает тот, который ударил.Игрок теперь перемещается вперед над другими невидимыми ящиками и вводит туда хитбоксы.Однако они не появляются.Я полагаю, что это связано с тем, что игрок все еще находится в «том же» хранилище, хотя это другой сборный объект.Если я прыгаю на невидимую платформу и падаю к ней (я ушел, а затем снова нажал на спусковой крючок), ящик, на котором я приземляюсь, сразу же появляется, как и должен.
Итак, что я могу сделать, чтобы окно появилось, как только игрок коснулся его, даже если он не покинул поле попадания коробки раньше?
Спасибо!:)