Почему после столкновения переменная collis становится true, НО в следующем Update снова false? Ничего не понимаю, прошелся отладкой, нигде нет переприсваивания, да и эта переменная только в этой части кода присутствует
bool collis = false;
// Update is called once per frame
void Update ()
{
if (collis == false)
{
this.transform.position += this.transform.right * speed * Time.deltaTime;
}
else Debug.Log(collis);
}
void OnCollisionEnter2D(Collision2D collision)
{
collis = true;
Debug.Log(collis);
}
Тоесть из Debug.Log выполнение перескакивает на Update и там уже переменная collis равна false.
Если для вашей игры критично выполнение кода в методе Update() сразу же после метода OnCollisionEnted2D() воспользуйтесь методом LateUpdate()
Документация.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости