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); }
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(); } }