Danro/Assets/Scripts/UI/LevelButton.cs
Danil Iarosh 5bafc385da feat(audio): increase SFX pool size and preload audio data
- Increased SFX pool size from 8 to 16 in AudioManager
- Enabled preloadAudioData for multiple SFX files
- Removed unused VisualScripting import from Checkpoint script
- Reordered using statements in several scripts for consistency
- Added CoinCollectible component to Coin prefab with pickup effects
- Updated sorting layers and mesh LOD settings in Coin prefabs
- Fixed typo in Interfaces.cs: optionaAttachPoint to optionalAttachPoint
- Modified AddCoin method to accept count parameter and handle coin overflow
- Moved projectile scripts (BasicProjectile, EnemyBasicProjectile, PhysicsProjectile, PickableProjectile)
- Cleaned up unused namespaces and imports across various scripts
2025-10-30 16:39:15 +03:00

48 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using TMPro;
using RR.Game2D.Core.Managers;
namespace RR.Common.UI
{
public class LevelButton : MonoBehaviour
{
[SerializeField] TextMeshProUGUI title;
[SerializeField] Button btn;
private int _world;
private int _stage;
public void Setup(string levelSceneName, int levelWorld, int levelStage)
{
_world = levelWorld;
_stage = levelStage;
if (title) title.text = levelSceneName; // "1-3, 1-1 и т.д."
if (btn) { btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(OnClick); }
}
public void SetColor(Color newColor)
{
ColorBlock newColors = btn.colors;
newColors.normalColor = newColor;
newColors.highlightedColor = Darken(newColor, 0.90f);
newColors.selectedColor = Darken(newColor, 0.85f);
newColors.pressedColor = Darken(newColor, 0.80f);
btn.colors = newColors;
}
void OnClick()
{
// через GameManager (предпочтительно)
GameManager.Instance.LoadLevel(_world, _stage);
// Фоллбэк, если нужно:
// UnityEngine.SceneManagement.SceneManager.LoadScene(sceneName);
}
private static Color Darken(Color c, float factor)
=> new Color(c.r * factor, c.g * factor, c.b * factor, c.a);
}
}