Beispiel #1
0
        void RecalculateUnitsVisibilityInFOW()
        {
            for (int i = 0; i < unitsToShowInFOW.Count; i++)
            {
                if (i >= FogOfWar.unitsLimit)
                {
                    break;
                }

                var icon = minimap.GetUnitIcon(unitsToShowInFOW[i]);

                if (!icon)
                {
                    continue;
                }

                var pos           = minimap.GetUnitOnMapPoint(unitsToShowInFOW[i]);       // all positions being setted to the positions texture.
                var positionColor = new Color(pos.x / 1024f, pos.y / 1024f, 0f, 1f);      // Decreasing size to fit it in color and left free space for maps up to 1024 meters.

                positionsTexture.SetPixel(i, 0, positionColor);
            }

            positionsTexture.Apply();

            Shader.SetGlobalTexture(positionsTextureId, positionsTexture);
        }
Beispiel #2
0
        public void ShowFor(Unit unit)
        {
            if (attackedUnits.Find(ut => ut.unit == unit) != null)
            {
                return;
            }

            attackedUnits.Add(new UnitTimer(unit, 5f));

            var positionOnMap = minimap.GetUnitOnMapPoint(unit, true);
            var spawnedSignal = Instantiate(GameController.instance.MainStorage.minimapSignalTemplate, minimap.IconsPanel);

            spawnedSignal.GetComponent <RectTransform>().anchoredPosition = positionOnMap;

            if (soundTimer <= 0)
            {
                soundTimer = soundWaitTime;
                audioSource.Play();
            }
        }