Пример #1
0
 public void deleteIcon()
 {
     if (Icon != null)
     {
         Destroy(Icon.gameObject);
     }
     Icon = null;
 }
Пример #2
0
    public void setIcon(Texture icon)
    {
        deleteIcon();

        GameObject obj = Instantiate(gameObject);

        obj.transform.SetParent(gameObject.transform);
        obj.transform.position = gameObject.transform.position;
        obj.GetComponent <RawImage>().texture = icon;
        Icon = obj.GetComponent <UI_Isle>();
    }
Пример #3
0
    public void ShowMiniMap()
    {
        if (listIsles != null)
        {
            for (int i = 0; i < listIsles.Count; i++)
            {
                Destroy(listIsles[i].gameObject);
            }
            listIsles.Clear();
        }

        if (listConnections != null)
        {
            for (int i = 0; i < listConnections.Count; i++)
            {
                Destroy(listConnections[i].gameObject);
            }
            listConnections.Clear();
        }

        // draw isles

        listIsles       = new List <UI_Isle>();
        listConnections = new List <UI_Connection>();

        levelManager          = LevelManager.getLevelManager();
        IsleAbstract[,] world = levelManager.world;

        int mapWidth  = world.GetLength(0) * Fieldwidth;
        int mapHeight = world.GetLength(1) * Fieldwidth;

        for (int x = 0; x < world.GetLength(0); x++)
        {
            for (int y = 0; y < world.GetLength(1); y++)
            {
                if (world[x, y] == null)
                {
                    continue;
                }

                IsleAbstract isle = world[x, y];

                int offset = 0;
                if (x % 2 == 1)
                {
                    offset = Fieldwidth / 2;
                }

                Vector3 pos = new Vector3(isle.Index.x * Fieldwidth, (isle.Index.y * Fieldwidth) + offset, -1);
                pos = pos - new Vector3(mapWidth, mapHeight, 0);

                UI_Isle ui_Isle = Instantiate(IsleImage);
                ui_Isle.GetComponent <RawImage>().texture = ui_Isle.Normal;

                isle.ui_Isle         = ui_Isle;
                ui_Isle.isleAbstract = isle;

                ui_Isle.transform.SetParent(MiniMap.transform, false);
                ui_Isle.transform.position = ui_Isle.transform.position + pos;

                listIsles.Add(ui_Isle);
            }
        }

        // draw connections

        List <ConnectionAbstract> connections = levelManager.connections;

        for (int i = 0; i < connections.Count; i++)
        {
            float x1 = connections[i].Portal1.isleAbstract.Index.x;
            float y1 = connections[i].Portal1.isleAbstract.Index.y;

            int offset = 0;
            if (x1 % 2 == 1)
            {
                offset = Fieldwidth / 2;
            }

            Vector3 posIsle1 = new Vector3(x1 * Fieldwidth, (y1 * Fieldwidth) + offset, 0);
            posIsle1 = posIsle1 - new Vector3(mapWidth, mapHeight, 0);

            float x2 = connections[i].Portal2.isleAbstract.Index.x;
            float y2 = connections[i].Portal2.isleAbstract.Index.y;

            offset = 0;
            if (x2 % 2 == 1)
            {
                offset = Fieldwidth / 2;
            }

            Vector3 posIsle2 = new Vector3(x2 * Fieldwidth, (y2 * Fieldwidth) + offset, 0);
            posIsle2 = posIsle2 - new Vector3(mapWidth, mapHeight, 0);

            Vector3 distanceVec    = posIsle2 - posIsle1;
            float   distanceLength = distanceVec.magnitude;

            float angle = Mathf.Atan2(distanceVec.x, distanceVec.y) * Mathf.Rad2Deg;
            angle = 360 - angle;

            UI_Connection ui_Conn = Instantiate(ConnectionImage);
            ui_Conn.transform.SetParent(MiniMap.transform, false);
            ui_Conn.transform.position = ui_Conn.transform.position + posIsle1;
            ui_Conn.GetComponent <RectTransform>().sizeDelta = new Vector2(4, distanceLength);
            ui_Conn.transform.Rotate(0f, 0f, angle);
            ui_Conn.transform.SetAsFirstSibling();

            listConnections.Add(ui_Conn);
        }

        // Add Compas
        mapCompass = Instantiate(MapCompassImage).GetComponent <RawImage>();
        mapCompass.transform.SetParent(MiniMap.transform, false);
        mapCompass.enabled = false;

        // set Background
        MiniMapBackground.GetComponent <RectTransform>().sizeDelta = new Vector2(mapWidth + Fieldwidth, mapHeight + Fieldwidth);

        UpdateMiniMap();
    }