Wether gravity or collision is working, but not both

Hi together,

I have a problem with the collision for my enemies. I already tried RigidBody and CharacterController, but nothing works.

With Rigidbody the enemies move correct but glitch into each (no collision) For rigidbody i set “Use gravity = true” and freeze postion + rotation complitely (but shouldn´t have anything todo with the collision), so gravity works, bot collision doesn´t:
6379164--710559--upload_2020-10-3_20-18-44.png
No collision, so they glitch into each other

  // If the target is in pull distance and the mob doesn´t walk back to the start point
if (distanceToPlayer <= PullDistance && !_turn && !_playerCharacter.IsDead)
{
    _animation.Play(GlobalConstants.Walk);

    _turn = false;

   // Rotate/look to the target
   Vector3 direction = _target.position - _mob.position;
   direction.y = 0;          
    _rigidbody.MoveRotation(Quaternion.Slerp(_mob.rotation, Quaternion.LookRotation(direction), RotationSpeed * Time.deltaTime));

    if (distanceToPlayer > MinDistanceToPlayer)
    {
        // Move to the target
        _rigidbody.MovePosition(_mob.forward * MovementSpeed);
    }
}

If i use a CharacterController, the collision works, but it looks like the gravity doesn´t work. As soon as they turn to the player, the their position moves on the y axe (so they “fly”) and if they collide with another enemy or the player, they “jump” over it (values of the character controller are all default):
6379164--710535--upload_2020-10-3_20-12-34.png
(The left spider is 0.8f over the ground and the right spider “jumps” over the player cause of collision), so i guess, the gravity doesn´t work. I actually thought with SimpleMove cares on gravity ?!

  // If the target is in pull distance and the mob doesn´t walk back to the start point
if (distanceToPlayer <= PullDistance && !_turn && !_playerCharacter.IsDead)
{
    _animation.Play(GlobalConstants.Walk);

    _turn = false;

    // Rotate/look to the target
    Vector3 direction = _target.position - _mob.position;
    direction.y = 0;
    _mob.rotation = Quaternion.Slerp(_mob.rotation, Quaternion.LookRotation(direction), RotationSpeed * Time.deltaTime);
           
    if (distanceToPlayer > MinDistanceToPlayer)
    {            
        // Move to the target
        _cC.SimpleMove(_mob.forward * MovementSpeed);            
     }
}

Do i have to set anything else ? Does my terrain needs anything special or do i have something in the code ?
I know that´s actually very basic, but i really don´t get it. I already wasted a lot of hours for this with google and trying different things and coulnd´t get any result…

*To be clear, i just want that the enemies don´t glitch into each other, but don´t jump away or anything if they collide.

Kind regards,
Sphinks

6379164--710535--upload_2020-10-3_20-12-34.png

Has no1 an idea how i can fix that ? As far as i know should rigidbody actually handle collisions and CharacterController.SimpleMove should handle gravity ?!
It´s not important for me if i use a rigidbody or CharacterController, i just want it to work.
So please, if any1 knows what the problem is with the missing collision on rigidbody or the “jumping” by using CharacterController let me know.

Did you add colliders to your objects?
For collisions to work both object must have a collider and at least one a rigidbody.

According to the documentation, it seems like SimpleMove does indeed apply gravity: Unity - Scripting API: CharacterController.SimpleMove
Maybe you need to increase gravity? Cant really help with that, as i normally prefer to handle my own velocity vector.

Thanks for your reply.
Yes, both have colliders and the enemies (spiders) have a Rigidbody. I already tried to increase the gravity, but they still ran over other colliders. I will have another try tomorrow, if it doesn´t work, i maybe try to handle the velocity by my own too.