Detect collisions without messages?

Hello. Anyone have a method to detect collisions without using messages functions?

In other words, do something like:

void Update()
{
    this.Move(movement);

    if (rigidbody.enterCollision)
        this.Move(-movement);    
}

Instead:

void Update()
{
    Move(movement);
}

void OnCollisionEnter(Collision collision)
{
    Move(-movement);
}

I know that Update has more calls per second that the physics engine, but, maybe exist a elegant solution for implement the first code. Cheers!

PD: Im testing this with a Pong remake, thus, CharacterController dont work for me because his collider isnt a box.

You don’t need a character controller, just a rigid body. Collider can be any shape. I don’t see any good reason to remake the collision system except as an academic exercise.

i have a simulor qution if you can help “detect colision without coliders”