Radar script help

Hi,

i wan’t to make a minimap like GTA 4 and Red Dead Redemption i have the script already written but i hava a qeastion,

The Blips for a MissionObjective or Missionstartingpoint i wan’t it that if the player is out of a specific range the blip will draw but on the edge of the radar.

If you don’t know what i’am talking about watch this sample video of RDR begin at min 2.20 klik the linktext below

video RDR

This is part of the script that draws the GUI blip;

enter function drawBlip(go,aTexture){

centerPos=centerObject.position;
extPos=go.transform.position;

// first we need to get the distance of the enemy from the player
dist=Vector3.Distance(centerPos,extPos);

dx=centerPos.x-extPos.x; // how far to the side of the player is the enemy?
dz=centerPos.z-extPos.z; // how far in front or behind the player is the enemy?

// what's the angle to turn to face the enemy - compensating for the player's turning?
deltay=Mathf.Atan2(dx,dz)*Mathf.Rad2Deg - 270 - centerObject.eulerAngles.y;

// just basic trigonometry to find the point x,y (enemy's location) given the angle deltay
bX=dist*Mathf.Cos(deltay * Mathf.Deg2Rad);
bY=dist*Mathf.Sin(deltay * Mathf.Deg2Rad);

if(dist>=distnce){
    bX=bX*mapScale; // scales down the x-coordinate so that the plot stays within our radar
    bY=bY*mapScale; // scales down the y-coordinate so that the plot stays within our radar

    // this is the diameter of our largest radar circle
    GUI.DrawTexture(Rect(mapCenter.x+bX,mapCenter.y+bY,25,25),aTexture);
}

If you just want to do a kind of “round clamp” in order to bring bx and by to the border of your round radar, do something like this:

  if (dist*mapScale>radarRadius){
    var k:float = radarRadius/(dist*mapScale);
    bx *= k;
    by *= k;
  }
  GUI.DrawTexture(...

where radarRadius is (obviously) the radius of your radar screen.

Thanks man!
it worked