unity3d小地图代码

  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.     }  

本文来自:http://blog.csdn.net/zhulinpptor/article/details/5882835

你可能感兴趣的:(vector,Go)