@salutlamort

Что добавить в код, чтобы музыка воспроизводилась согласно требованиям?

Делаю кликер, задумка такая, что при частом нажатии на кнопку кликера, должна воспроизводиться музыка
То есть юзер часто кликает (то есть жмет на мышку без остановки) - музыка играет
Перестает кликать, просто не часто кликает, вообще не кликает - музыка не играет

Сейчас же проблема в том, что при определенном количестве кликов музыка запускается, и не прекращается

Сам код:
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();
}
}
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Вы можете использовать таймер, который будет отсчитывать время с последнего "быстрого" клика. Если это время превышает определенный порог, музыка останавливается. Проверку можно организовать, например, в Update.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы