Делаю кликер, задумка такая, что при частом нажатии на кнопку кликера, должна воспроизводиться музыка
То есть юзер часто кликает (то есть жмет на мышку без остановки) - музыка играет
Перестает кликать, просто не часто кликает, вообще не кликает - музыка не играет
Сейчас же проблема в том, что при определенном количестве кликов музыка запускается, и не прекращается
Сам код:
using UnityEngine;
using UnityEngine.UI;
public class ClickerGame : MonoBehaviour
{
public Button mainButton;
public Button levelUpClickButton;
public Image backgroundImage;
public Text scoreText;
public Text levelUpClickCostText;
public AudioSource clickSound;
private int score = 0;
private int clickMultiplier = 1;
private int levelUpClickCost = 300;
private float clickCooldown = 0.5f;
private float lastClickTime;
private int rapidClickCount = 0;
private int requiredRapidClicks = 5;
void Start()
{
mainButton.onClick.AddListener(OnClickMainButton);
levelUpClickButton.onClick.AddListener(OnClickLevelUpClickButton);
UpdateUI();
clickSound.Stop(); // Останавливаем воспроизведение музыки при старте
}
void OnClickMainButton()
{
Debug.Log("Button Clicked!");
if (Time.time - lastClickTime < clickCooldown)
{
LeanTween.scale(mainButton.gameObject, new Vector3(0.9f, 0.9f, 0.9f), 0.1f).setOnComplete(() => {
LeanTween.scale(mainButton.gameObject, Vector3.one, 0.1f);
});
backgroundImage.transform.localScale = new Vector3(backgroundImage.transform.localScale.x * -1f, 102.1255f, 1f);
rapidClickCount++;
if (rapidClickCount >= requiredRapidClicks && !clickSound.isPlaying)
{
clickSound.Play();
}
}
else
{
rapidClickCount = 0;
}
lastClickTime = Time.time;
score += clickMultiplier;
UpdateUI();
}
void OnClickLevelUpClickButton()
{
if (score >= levelUpClickCost)
{
clickMultiplier *= 2;
score -= levelUpClickCost;
levelUpClickCost += 300;
UpdateUI();
}
}
void UpdateUI()
{
scoreText.text = "Score: " + score.ToString();
levelUpClickCostText.text = levelUpClickCost.ToString();
}
}