AddExplosionForce at hit.point

Hello.

I am trying to add a explosive force at the hit position of the ray(hit.point)

    var radius = 5.0;
    var power = 10.0;
    var hit : RaycastHit;
    function Update () 
    {
    if(Physics.Raycast(transform.position, transform.forward, hit, Mathf.Infinity))
    {
        var colliders : Collider[] = Physics.OverlapSphere (hit.point, radius);
        
        for (var hit : Collider in colliders) {
            if (!hit)
                continue;
            
            if (hit.rigidbody)
                hit.rigidbody.AddExplosionForce(power,hit.point, radius, 3.0);
    		}
    	}
    }

But it is exactly not going very well. It is giving me the error “point is not a member of UnityEngine.Collider”.

I do not know how to fix that. Can you your incredibly handsome person possibly help me?

I’m not entirely sure, but it looks like this line might be the problem:

    for (var hit : Collider in colliders) {

You’re essentially saying that ‘hit’ is now of type Collider. So when you call

    hit.rigidbody.AddExplosionForce(power,hit.point, radius, 3.0);

you’re now looking for ‘point’ in a Collider, which doesn’t make sense. For documentation on how to use that kind of foreach equivalent, see this doc. Just replace hit with something else in the ‘for’ statement.

could it have something to do with the fact that you have 2 hit var? I am not sure but you are declaring hit at a RaycastHit at the top and then you are making it a collider in the for loop so it might not be looking at the RaycastHit hit.