{"id":526,"date":"2010-04-13T12:03:58","date_gmt":"2010-04-13T12:03:58","guid":{"rendered":""},"modified":"2013-02-27T12:05:21","modified_gmt":"2013-02-27T04:05:21","slug":"526","status":"publish","type":"post","link":"https:\/\/1vr.cn\/?p=526","title":{"rendered":"Unity\u4e2d\u96f7\u8fbe\u6548\u679c\u7684\u5236\u4f5c"},"content":{"rendered":"<p>\u60f3\u7ed9\u4f60\u6e38\u620f\u4e2d\u589e\u52a0\u4e2a\u96f7\u8fbe\u4e48?Unity\u4e2d\u53ef\u4ee5\u5f88\u5bb9\u6613\u589e\u52a0\u4e00\u4e2a\u96f7\u8fbe.\u5c31\u50cf\u4e0b\u9762\u8fd9\u6837.\u5f53\u7136.\u4f60\u53ef\u4ee5\u8ba9\u7f8e\u672f\u628a\u96f7\u8fbe\u505a\u7684\u66f4\u597d\u770b\u4e00\u4e9b.<\/p>\n<div align=\"center\"><img decoding=\"async\" src=\"wp-content\/uploads\/attachments\/month_1004\/20100413120128h.jpg\" \/><\/div>\n<p>\u5c06\u4e0b\u9762\u7684\u811a\u672c\u653e\u5728\u4e00\u4e2a\u6e38\u620f\u5bf9\u8c61\u4e0a,\u7ed9&#8221;blip&#8221;\u8bbe\u7f6e\u4e00\u4e2a\u7eb9\u7406.\u76f8\u5f53\u4e8e\u96f7\u8fbe\u7684\u4fe1\u53f7\u6548\u679c.\u9009\u62e9\u4e00\u4e2a\u7eb9\u7406\u4f5c\u4e3a\u96f7\u8fbe\u7684\u80cc\u666f(radarBG),\u8bbe\u7f6e\u5730\u56fe\u5728\u5c4f\u5e55\u4e0a\u7684\u4f4d\u7f6e,\u8bbe\u7f6e\u4e00\u4e2a\u6e38\u620f\u5bf9\u8c61\u7528\u4e8e\u4f60\u96f7\u8fbe\u7684centerObject(\u901a\u5e38\u662f\u76ee\u524d\u7684\u73a9\u5bb6\u5bf9\u8c61).\u786e\u4fdd\u6240\u6709\u7684&#8221;\u654c\u4eba&#8221;\u7684\u6807\u7b7etag\u90fd\u662f&#8221;Enemy&#8221;.\u4e4b\u540e\u4f60\u5c31\u53ef\u4ee5\u5728\u4f60\u7684\u6e38\u620f\u4e2d\u770b\u5230\u96f7\u8fbe\u4e86.<\/p>\n<p>\u4e24\u79cd\u8bed\u8a00\u4efb\u9009\u5176\u4e00.<\/p>\n<p><code><br \/>@script ExecuteInEditMode()<br \/>\/\/ radar! by PsychicParrot, adapted from a Blitz3d script found in the public domain online somewhere ..<\/p>\n<p>\/\/Modified by Dastardly Banana to add radar size configuration, different colors for enemies in different states (patrolling or chasing), ability to move radar to either one of 9 preset locations or to custom location.<\/p>\n<p>\/\/some lines are particular to our AI script, you will need to change \"EnemyAINew\" to the name of your AI script, and change \"isChasing\" to the boolean within that AI script that is true when the enemy is active\/can see the player\/is chasing the player.<\/p>\n<p>var blip : Texture; \/\/ texture to use when the enemy isn't chasing<br \/>var blipChasing : Texture; \/\/When Chasing<br \/>var radarBG : Texture;<\/p>\n<p>var centerObject : Transform;<br \/>var mapScale = 0.3;<br \/>var mapSizePercent = 15;<\/p>\n<p>var checkAIscript : boolean = true;<br \/>var enemyTag = \"Enemy\";<\/p>\n<p>enum radarLocationValues {topLeft, topCenter, topRight, middleLeft, middleCenter, middleRight, bottomLeft, bottomCenter, bottomRight, custom}<br \/>var radarLocation : radarLocationValues = radarLocationValues.bottomLeft;<\/p>\n<p>private var mapWidth : float;<br \/>private var mapHeight : float;<br \/>private var mapCenter : Vector2;<br \/>var mapCenterCustom : Vector2;<\/p>\n<p>function Start () {<br \/>&nbsp;&nbsp;&nbsp;&nbsp;setMapLocation();&nbsp;&nbsp; <br \/>}<\/p>\n<p>function OnGUI () {<br \/>\/\/&nbsp;&nbsp;GUI.matrix = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, Vector3(Screen.width \/ 600.0, Screen.height \/ 450.0, 1));<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw player blip (centerObject)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;bX=centerObject.transform.position.x * mapScale;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;bY=centerObject.transform.position.z * mapScale;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;GUI.DrawTexture(Rect(mapCenter.x - mapWidth\/2,mapCenter.y-mapHeight\/2,mapWidth,mapHeight),radarBG);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw blips for Enemies<br \/>&nbsp;&nbsp;&nbsp;&nbsp;DrawBlipsForEnemies();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>}<br \/>&nbsp;&nbsp;<br \/>function drawBlip(go,aTexture){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;centerPos=centerObject.position;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;extPos=go.transform.position;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ first we need to get the distance of the enemy from the player<br \/>&nbsp;&nbsp;&nbsp;&nbsp;dist=Vector3.Distance(centerPos,extPos);<br \/>&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;dx=centerPos.x-extPos.x; \/\/ how far to the side of the player is the enemy?<br \/>&nbsp;&nbsp;&nbsp;&nbsp;dz=centerPos.z-extPos.z; \/\/ how far in front or behind the player is the enemy?<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ what's the angle to turn to face the enemy - compensating for the player's turning?<br \/>&nbsp;&nbsp;&nbsp;&nbsp;deltay=Mathf.Atan2(dx,dz)*Mathf.Rad2Deg - 270 - centerObject.eulerAngles.y;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ just basic trigonometry to find the point x,y (enemy's location) given the angle deltay<br \/>&nbsp;&nbsp;&nbsp;&nbsp;bX=dist*Mathf.Cos(deltay * Mathf.Deg2Rad);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;bY=dist*Mathf.Sin(deltay * Mathf.Deg2Rad);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;bX=bX*mapScale; \/\/ scales down the x-coordinate so that the plot stays within our radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;bY=bY*mapScale; \/\/ scales down the y-coordinate so that the plot stays within our radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;if(dist&lt;=mapWidth*.5\/mapScale){ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ this is the diameter of our largest radar circle<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GUI.DrawTexture(Rect(mapCenter.x+bX,mapCenter.y+bY,4,4),aTexture);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>}<\/p>\n<p>function DrawBlipsForEnemies(){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/You will need to replace isChasing with a variable from your AI script that is true when&nbsp;&nbsp;&nbsp;&nbsp; the enemy is chasing the player, or doing watever you want it to be doing when it is red on&nbsp;&nbsp;&nbsp;&nbsp;the radar.<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/You will need to replace \"EnemyAINew with the name of your AI script<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Find all game objects tagged Enemy<br \/>&nbsp;&nbsp;&nbsp;&nbsp;var gos : GameObject[];<br \/>&nbsp;&nbsp;&nbsp;&nbsp;gos = GameObject.FindGameObjectsWithTag(enemyTag); <\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;var distance = Mathf.Infinity; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;var position = transform.position; <\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Iterate through them and call drawBlip function<br \/>&nbsp;&nbsp;&nbsp;&nbsp;for (var go : GameObject in gos)&nbsp;&nbsp;{ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var blipChoice : Texture = blip;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(checkAIscript){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var aiScript : EnemyAI = go.GetComponent(\"EnemyAI\");<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(aiScript.isChasing)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blipChoice = blipChasing;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawBlip(go,blipChoice);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>}<\/p>\n<p>function setMapLocation () {<br \/>&nbsp;&nbsp;&nbsp;&nbsp;mapWidth = Screen.width*mapSizePercent\/100.0;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;mapHeight = mapWidth;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/sets mapCenter based on enum selection<br \/>&nbsp;&nbsp;&nbsp;&nbsp;if(radarLocation == radarLocationValues.topLeft){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(mapWidth\/2, mapHeight\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.topCenter){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(Screen.width\/2, mapHeight\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.topRight){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(Screen.width-mapWidth\/2, mapHeight\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.middleLeft){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(mapWidth\/2, Screen.height\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.middleCenter){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(Screen.width\/2, Screen.height\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.middleRight){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(Screen.width-mapWidth\/2, Screen.height\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.bottomLeft){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(mapWidth\/2, Screen.height - mapHeight\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.bottomCenter){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(Screen.width\/2, Screen.height - mapHeight\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.bottomRight){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = Vector2(Screen.width-mapWidth\/2, Screen.height - mapHeight\/2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} else if(radarLocation == radarLocationValues.custom){<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapCenter = mapCenterCustom;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>} <\/code><\/p>\n<p><code>using UnityEngine;<br \/>using System.Collections;<\/p>\n<p>public class Radar : MonoBehaviour<br \/>{<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;public enum RadarTypes : int {Textured, Round, Transparent};<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public enum RadarLocations : int {TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight, Left, Center, Right, Custom};<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Display Location<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public RadarLocations radarLocation = RadarLocations.BottomCenter;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Vector2 radarLocationCustom;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public RadarTypes radarType = RadarTypes.Round;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color radarBackgroundA = new Color(255, 255, 0);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color radarBackgroundB = new Color(0, 255, 255);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Texture2D radarTexture;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public float radarSize = 0.20f;&nbsp;&nbsp;\/\/ The amount of the screen the radar will use<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public float radarZoom = 0.60f;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Center Object information<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public bool&nbsp;&nbsp; radarCenterActive;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color&nbsp;&nbsp;radarCenterColor = new Color(255, 255, 255);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public string radarCenterTag;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Blip information<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public bool&nbsp;&nbsp; radarBlip1Active;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color&nbsp;&nbsp;radarBlip1Color = new Color(0, 0, 255);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public string radarBlip1Tag;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;public bool&nbsp;&nbsp; radarBlip2Active;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color&nbsp;&nbsp;radarBlip2Color = new Color(0, 255, 0);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public string radarBlip2Tag;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;public bool&nbsp;&nbsp; radarBlip3Active;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color&nbsp;&nbsp;radarBlip3Color = new Color(255, 0, 0);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public string radarBlip3Tag;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;public bool&nbsp;&nbsp; radarBlip4Active;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public Color&nbsp;&nbsp;radarBlip4Color = new Color(255, 0, 255);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public string radarBlip4Tag;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Internal vars<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private GameObject _centerObject;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarWidth;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarHeight;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private Vector2&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private Texture2D&nbsp;&nbsp;_radarCenterTexture;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private Texture2D&nbsp;&nbsp;_radarBlip1Texture;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private Texture2D&nbsp;&nbsp;_radarBlip2Texture;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private Texture2D&nbsp;&nbsp;_radarBlip3Texture;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;private Texture2D&nbsp;&nbsp;_radarBlip4Texture;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Initialize the radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void Start ()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Determine the size of the radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarWidth = (int)(Screen.width * radarSize);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarHeight = _radarWidth;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Get the location of the radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setRadarLocation();<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Create the blip textures<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenterTexture = new Texture2D(3, 3, TextureFormat.RGB24, false);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarBlip1Texture = new Texture2D(3, 3, TextureFormat.RGB24, false);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarBlip2Texture = new Texture2D(3, 3, TextureFormat.RGB24, false);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarBlip3Texture = new Texture2D(3, 3, TextureFormat.RGB24, false);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarBlip4Texture = new Texture2D(3, 3, TextureFormat.RGB24, false);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateBlipTexture(_radarCenterTexture, radarCenterColor);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateBlipTexture(_radarBlip1Texture, radarBlip1Color);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateBlipTexture(_radarBlip2Texture, radarBlip2Color);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateBlipTexture(_radarBlip3Texture, radarBlip3Color);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateBlipTexture(_radarBlip4Texture, radarBlip4Color);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Setup the radar background texture<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarType != RadarTypes.Textured)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radarTexture = new Texture2D(_radarWidth, _radarHeight, TextureFormat.RGB24, false);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateRoundTexture(radarTexture, radarBackgroundA, radarBackgroundB);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Get our center object<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GameObject[] gos;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gos = GameObject.FindGameObjectsWithTag(radarCenterTag);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_centerObject = gos[0];<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Update is called once per frame<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void OnGUI ()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GameObject[] gos;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw th radar background<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarType != RadarTypes.Transparent)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rect radarRect = new Rect(_radarCenter.x - _radarWidth \/ 2, _radarCenter.y - _radarHeight \/ 2, _radarWidth, _radarHeight);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GUI.DrawTexture(radarRect, radarTexture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw blips<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarBlip1Active)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Find all game objects<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gos = GameObject.FindGameObjectsWithTag(radarBlip1Tag); <br \/>&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Iterate through them and call drawBlip function<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (GameObject go in gos)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawBlip(go, _radarBlip1Texture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarBlip2Active)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gos = GameObject.FindGameObjectsWithTag(radarBlip2Tag); <br \/>&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (GameObject go in gos)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawBlip(go, _radarBlip2Texture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarBlip3Active)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gos = GameObject.FindGameObjectsWithTag(radarBlip3Tag); <br \/>&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (GameObject go in gos)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawBlip(go, _radarBlip3Texture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarBlip4Active)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gos = GameObject.FindGameObjectsWithTag(radarBlip4Tag); <br \/>&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (GameObject go in gos)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawBlip(go, _radarBlip4Texture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw center oject<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (radarCenterActive)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rect centerRect = new Rect(_radarCenter.x - 1.5f, _radarCenter.y - 1.5f, 3, 3);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GUI.DrawTexture(centerRect, _radarCenterTexture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw a blip for an object<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void drawBlip(GameObject go, Texture2D blipTexture)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (_centerObject)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector3 centerPos = _centerObject.transform.position;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector3 extPos = go.transform.position;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Get the distance to the object from the centerObject<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float dist = Vector3.Distance(centerPos, extPos);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Get the object's offset from the centerObject<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float bX = centerPos.x - extPos.x;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float bY = centerPos.z - extPos.z;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Scale the objects position to fit within the radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bX = bX * radarZoom;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bY = bY * radarZoom;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ For a round radar, make sure we are within the circle<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dist &lt;= (_radarWidth - 2) * 0.5 \/ radarZoom)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rect clipRect = new Rect(_radarCenter.x - bX - 1.5f, _radarCenter.y + bY - 1.5f, 3, 3);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GUI.DrawTexture(clipRect, blipTexture);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Create the blip textures<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void CreateBlipTexture(Texture2D tex, Color c)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color[] cols = {c, c, c, c, c, c, c, c, c};<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tex.SetPixels(cols, 0);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tex.Apply();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Create a round bullseye texture<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void CreateRoundTexture(Texture2D tex, Color a, Color b)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color c = new Color(0, 0, 0);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int size = (int)((_radarWidth \/ 2) \/ 4);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Clear the texture<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int x = 0; x &lt; _radarWidth; x++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int y = 0; y &lt; _radarWidth; y++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tex.SetPixel(x, y, c);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int r = 4; r &gt; 0; r--)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (r % 2 == 0)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c = a;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c = b;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DrawFilledCircle(tex, (int)(_radarWidth \/ 2), (int)(_radarHeight \/ 2), (r * size), c);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tex.Apply();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Draw a filled colored circle onto a texture<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void DrawFilledCircle(Texture2D tex, int cx, int cy, int r, Color c)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int x = -r; x &lt; r ; x++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int height = (int)Mathf.Sqrt(r * r - x * x);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int y = -height; y &lt; height; y++)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tex.SetPixel(x + cx, y + cy, c);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Figure out where to put the radar<br \/>&nbsp;&nbsp;&nbsp;&nbsp;void setRadarLocation()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Sets radarCenter based on enum selection<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(radarLocation == RadarLocations.TopLeft)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(_radarWidth \/ 2, _radarHeight \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.TopCenter)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(Screen.width \/ 2, _radarHeight \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.TopRight)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(Screen.width - _radarWidth \/ 2, _radarHeight \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.Left)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(_radarWidth \/ 2, Screen.height \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.Center)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(Screen.width \/ 2, Screen.height \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.Right)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(Screen.width - _radarWidth \/ 2, Screen.height \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.BottomLeft)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(_radarWidth \/ 2, Screen.height - _radarHeight \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.BottomCenter)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(Screen.width \/ 2, Screen.height - _radarHeight \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.BottomRight)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = new Vector2(Screen.width - _radarWidth \/ 2, Screen.height - _radarHeight \/ 2);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(radarLocation == RadarLocations.Custom)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_radarCenter = radarLocationCustom;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;} <\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>}<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u60f3\u7ed9\u4f60\u6e38\u620f\u4e2d\u589e\u52a0\u4e2a\u96f7\u8fbe\u4e48?Unity\u4e2d\u53ef\u4ee5\u5f88\u5bb9\u6613\u589e\u52a0\u4e00\u4e2a\u96f7\u8fbe.\u5c31\u50cf\u4e0b\u9762\u8fd9\u6837.\u5f53\u7136.\u4f60\u53ef\u4ee5\u8ba9\u7f8e\u672f\u628a\u96f7\u8fbe\u505a\u7684\u66f4\u597d\u770b &hellip; <a href=\"https:\/\/1vr.cn\/?p=526\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Unity\u4e2d\u96f7\u8fbe\u6548\u679c\u7684\u5236\u4f5c<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-526","post","type-post","status-publish","format-standard","hentry","without-featured-image"],"_links":{"self":[{"href":"https:\/\/1vr.cn\/index.php?rest_route=\/wp\/v2\/posts\/526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/1vr.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/1vr.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/1vr.cn\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/1vr.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=526"}],"version-history":[{"count":1,"href":"https:\/\/1vr.cn\/index.php?rest_route=\/wp\/v2\/posts\/526\/revisions"}],"predecessor-version":[{"id":744,"href":"https:\/\/1vr.cn\/index.php?rest_route=\/wp\/v2\/posts\/526\/revisions\/744"}],"wp:attachment":[{"href":"https:\/\/1vr.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/1vr.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/1vr.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}