Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections;
- public class MiniMapLocation : MonoBehaviour {
- // Use this for initialization
- public ArrayList soldierIcons;
- public ArrayList soldiers;
- public GameObject player;
- public GameObject camera;
- public Movement playerScript;
- public const float MAP_RADIUS = 80f;
- public const float RADAR_RANGE = 100f;
- void Start () {
- soldiers = new ArrayList();
- soldierIcons = new ArrayList ();
- soldiers.Add(GameObject.Find ("swat1"));
- soldiers.Add(GameObject.Find ("swat2"));
- soldiers.Add(GameObject.Find ("swat3"));
- soldierIcons.Add(GameObject.Find ("soldierIcon1").GetComponent<Image>());
- soldierIcons.Add(GameObject.Find ("soldierIcon2").GetComponent<Image>());
- soldierIcons.Add(GameObject.Find ("soldierIcon3").GetComponent<Image>());
- player = GameObject.Find("Player");
- camera = GameObject.Find("Main Camera");
- playerScript = player.GetComponent(typeof(Movement)) as Movement;
- }
- public float scaleToMap(float normalized, float distance) {
- return normalized * MAP_RADIUS * (distance/RADAR_RANGE);
- }
- public void UpdateSoldierWaypoints () {
- print (soldiers);
- for(int i = 0; i < soldiers.Count; i++) {
- GameObject soldier = soldiers[i] as GameObject;
- Image soldierIcon = soldierIcons[i] as Image;
- Vector2 distanceVec = new Vector2((soldier.transform.position - player.transform.position).x, (soldier.transform.position - player.transform.position).z);
- if (distanceVec.magnitude > RADAR_RANGE) {
- soldierIcon.rectTransform.localPosition = (new Vector3(1000f,1000f,0));
- continue;
- }
- float renderAngle = Mathf.Atan2 (distanceVec.y, distanceVec.x) +
- Mathf.Deg2Rad * player.transform.eulerAngles.y;
- float newX = scaleToMap(Mathf.Cos(renderAngle), distanceVec.magnitude);
- float newY = scaleToMap(Mathf.Sin(renderAngle), distanceVec.magnitude);
- soldierIcon.rectTransform.localPosition = (new Vector3(newX,newY,0));
- }
- }
- // Update is called once per frame
- void Update () {
- UpdateSoldierWaypoints ();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement