void OnCollisionEnter(Collision other)
{
var ground = other.gameObject.GetComponentInParent<Ground>();
if (ground)
this.isGrounded = true;
anim.SetBool("InAir", false);
runTrue = true;
}
void OnCollisionExit(Collision other)
{
var ground = other.gameObject.GetComponentInParent<Ground>();
if (ground)
this.isGrounded = false;
anim.SetBool("InAir", true);
runTrue = false;
}
Видимо тот скат не является Ground, по тому твой же код и делает isGounded=false;
Как вариант - проверяй как-нибудь, что нижняя часть ног касается хоть чего-то, на чём можно стоять.
PS: только сейчас заметил, но у тебя криво расставлены отступы.
Вы выходе из коллизии с чем-либо у тебя всегда будет включаться анимация полёта, а при входе в коллизию - она будет выключаться, не зависимо от того, с чем произошла коллизия.