В одном из скриптов я создал публичную булевую статическую переменную inDamage, потом, в зависимости от значения, выполняю определённые действия с ней.
В другом скрипте я делаю RayCast, если луч сталкивается с коллайдером, то переменная inDamage становится true, если нет - false. Этот скрипт есть на нескольких объектах. Но даже если я удалю все копии, кроме одной, он всё равно не заработает.
Итак, почему значение inDamage не меняется?
Код RayCast'а:
Ray2D ray2D = new Ray2D(transform.position, transform.right);
RaycastHit2D hitInfo = Physics2D.Raycast(ray2D.origin, ray2D.direction, 10);
if (hitInfo.collider.CompareTag("Player"))
{
ScriptName.inDamage = true;
}
else
{
ScriptName.inDamage = false;
}
Я плохо знаком со статическими переменными, поэтому ошибка может быть в чём угодно.
К слову, если inDamage будет нестатической и если изменять её в том же скрипте, где она была объявлена, то всё работает, поэтому проблема либо где-то на сцене, либо в RayCast'е.