Почему коллайдер Character Controller ведет себя так странно и можно ли это исправить
скорее всего в том что это неправильно работает виноват я, но все же хочу разобраться в том, где я допустил ошибку?
Проблема в том что коллайдер CC в юнити ведет себя странно, то есть почему то когда его Height равен 1.7 то игрок не проходит сквозь пол и коллайдер не совпадает с капсулой:
Зеленым границы коллайдера, а красным ошибки и примечания
А если Height = 2, то игрок левитирует над землей, но при этом коллайдер совпадает с размерами капсулы:
Вот скрипт, может он как то влияет :/
{
[SerializeField] private float Speed;
[SerializeField] private float JumpForce;
[SerializeField] private float gravity;
[SerializeField] private Vector3 moveVector;
[SerializeField] private CharacterController _CC;
private void Update()
{
CharacterMove();
GamingGravity();
}
private void CharacterMove()
{
moveVector = Vector3.zero;
moveVector.x = Input.GetAxis("Horizontal") * Speed;
if(Vector3.Angle(Vector3.forward, moveVector) > 1f || Vector3.Angle(Vector3.forward, moveVector) == 0)
{
Vector3 direct = Vector3.RotateTowards(transform.forward, moveVector, Speed, 0.0f);
transform.rotation = Quaternion.LookRotation(direct);
}
moveVector.y = gravity;
_CC.Move(moveVector * Time.deltaTime);
}
private void GamingGravity()
{
if (!_CC.isGrounded) gravity -= 20f * Time.deltaTime;
else gravity = -1f;
if (Input.GetKeyDown(KeyCode.Space) && _CC.isGrounded) gravity = JumpForce;
}
}
Я конечно могу просто забить на это, но боюсь что когда я добавлю в игру модель лисы то я капец запарюсь с поиском точного размера, а во вторых возможно в будущем это приведет к каким-либо ошибкам и костыля, а я не хочу чтобы так случилось