How to make this script find distance inside radius?

In this script I need to find the distance between the gameObject and the collider it’s hitting if it’s inside the radius.

#pragma strict

var wake : boolean;

var power : float = 1500;
var damage : int = 1;
var radius : float = 5;

var explodeSound : AudioClip;

function Start () {
	yield WaitForSeconds (5);
	wake = true;

function Update () {
	if(wake == true) {
		wake = false;

function Explode() {
	var colliders : Collider[] = Physics.OverlapSphere (transform.position, radius);
		for (var collider : Collider in colliders) {
			//if (collider.tag == "brick" || collider.tag == "player") {
				var hit : RaycastHit;
				if (Physics.Linecast(transform.position, collider.transform.position, hit)) {
					if (hit.collider == collider) {
						if (hit.rigidbody)
							hit.rigidbody.AddExplosionForce(power, transform.position, radius, 3.0);

It’s in hit.distance if the linecast hits the object. Note that if you are already inside the object then this may well fail. If you are inside then you have a couple of choices:

The easy one:

Get the vector from the current object to the position of the collider - start your line cast “back” away from the current object’s position in that direction (the opposite direction to the ray cast).

This doesn’t work well for concave objects or mesh colliders in all circumstances.

The hard one:

Calculate all of the contact points yourself by intersecting the triangles of the other collider which fall within the bounding box of your object.

If you can use OnCollisionEnter you get those contact points calculated for you.