Well, I understand that you want to detect a unit close to a shell fly in the air, inside a given area.
You will want to detect a unit within a seeker area.
So:
_unit = nearestObject [_shell, "Man"]
This will detect the unit nearest the shell who is type man (any walking unit). If you are looking for a unit inside a specified area, change _shell to the name of the trigger, or change the class type to something other than man.
Then, using setPos or another method, you can steer the shell into the target because you know the direction and distance to the target. For instance:
_unit = _this select 0;
_unitPos = getPos _unit;
_shell = _this select 1;
_shellPos = getPos _shell;
// Find the direction to a detected unit
_dir = (_unitPos select 0 - _shellPos select 0) atan2 (_unitPos select 1 - _shellPos select 1);
_shell setDir _dir;
_distance = sqrt((_unitPos select 0 - _shellPos select 0)^2 + (_unitPos select 1 - _shellPos select 1)^2);
// Make a step every 50 meters
_steps = _distance / 50;
// At this point, guide the shell in on the target using the above information
I hope that gives you some help. If you are looking for something more/else, just say the word.