小地图

来源:互联网 发布:数据魔方的作用 编辑:程序博客网 时间:2024/05/02 03:21
  1. @script ExecuteInEditMode()   
  2. public var blip : Texture; //定義一個指針文件代表角色  
  3. public var radarBG : Texture; //地圖背景圖片,我直接用場景里我創建的render texture  
  4. public var centerObject : Transform; //選擇角色的物體的位置信息  
  5. public var mapScale = 0.3//地圖縮放  
  6. public var mapCenter = Vector2(50,50); //地圖中心  
  7. function OnGUI () {   
  8.       
  9.     bX=centerObject.transform.position.x * mapScale;   
  10.     bY=centerObject.transform.position.z * mapScale;   
  11.           
  12.     bX=centerObject.transform.position.x * mapScale;   
  13.     bY=centerObject.transform.position.z * mapScale;   
  14.           
  15.     GUI.DrawTexture(Rect(mapCenter.x-32,mapCenter.y-32,64,64),radarBG);   
  16.    // 上面的mapCenter.x-32是地圖的x位置,mapCenter.y-32是y位置,64,64是地圖的大小  
  17.     DrawBlipsForEnemies();   
  18. }   
  19. function DrawBlipsForCows(){   
  20.       
  21.     var gos : GameObject[];   
  22.     gos = GameObject.FindGameObjectsWithTag("Cow");   
  23.     var distance = Mathf.Infinity;   
  24.     var position = transform.position;   
  25.     for (var go : GameObject in gos)  {   
  26.         drawBlip(go,blip);   
  27.     }   
  28. }   
  29. function drawBlip(go,aTexture){   
  30.       
  31.     centerPos=centerObject.position;   
  32.     extPos=go.transform.position;   
  33.       
  34.     dist=Vector3.Distance(centerPos,extPos);   
  35.        
  36.     dx=centerPos.x-extPos.x;    
  37.     dz=centerPos.z-extPos.z;    
  38.       
  39.     deltay=Mathf.Atan2(dx,dz)*Mathf.Rad2Deg - 270 - centerObject.eulerAngles.y;   
  40.       
  41.     bX=dist*Mathf.Cos(deltay * Mathf.Deg2Rad);   
  42.     bY=dist*Mathf.Sin(deltay * Mathf.Deg2Rad);   
  43.       
  44.     bX=bX*mapScale;    
  45.     bY=bY*mapScale;    
  46.       
  47.     if(dist<=200){   
  48.        GUI.DrawTexture(Rect(mapCenter.x+bX,mapCenter.y+bY,2,2),aTexture);   
  49.     }   
  50. }   
  51. function DrawBlipsForEnemies(){   
  52.       
  53.     var gos : GameObject[];   
  54.     gos = GameObject.FindGameObjectsWithTag("Enemy");   
  55.     var distance = Mathf.Infinity;   
  56.     var position = transform.position;   
  57.     for (var go : GameObject in gos)  {   
  58.     drawBlip(go,blip);   
  59.     }   
  60. }  
原创粉丝点击