@script ExecuteInEditMode() public var blip : Texture; //定義一個指針文件代表角色 public var radarBG : Texture; //地圖背景圖片,我直接用場景里我創建的render texture public var centerObject : Transform; //選擇角色的物體的位置信息 public var mapScale = 0.3; //地圖縮放 public var mapCenter = Vector2(50,50); //地圖中心 function OnGUI () { bX=centerObject.transform.position.x * mapScale; bY=centerObject.transform.position.z * mapScale; bX=centerObject.transform.position.x * mapScale; bY=centerObject.transform.position.z * mapScale; GUI.DrawTexture(Rect(mapCenter.x-32,mapCenter.y-32,64,64),radarBG); // 上面的mapCenter.x-32是地圖的x位置,mapCenter.y-32是y位置,64,64是地圖的大小 DrawBlipsForEnemies(); } function DrawBlipsForCows(){ var gos : GameObject[]; gos = GameObject.FindGameObjectsWithTag("Cow"); var distance = Mathf.Infinity; var position = transform.position; for (var go : GameObject in gos) { drawBlip(go,blip); } } function drawBlip(go,aTexture){ centerPos=centerObject.position; extPos=go.transform.position; dist=Vector3.Distance(centerPos,extPos); dx=centerPos.x-extPos.x; dz=centerPos.z-extPos.z; deltay=Mathf.Atan2(dx,dz)*Mathf.Rad2Deg - 270 - centerObject.eulerAngles.y; bX=dist*Mathf.Cos(deltay * Mathf.Deg2Rad); bY=dist*Mathf.Sin(deltay * Mathf.Deg2Rad); bX=bX*mapScale; bY=bY*mapScale; if(dist<=200){ GUI.DrawTexture(Rect(mapCenter.x+bX,mapCenter.y+bY,2,2),aTexture); } } function DrawBlipsForEnemies(){ var gos : GameObject[]; gos = GameObject.FindGameObjectsWithTag("Enemy"); var distance = Mathf.Infinity; var position = transform.position; for (var go : GameObject in gos) { drawBlip(go,blip); } }