Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Кликер в Unity

Зинаида Лузина Ученик (158), на голосовании 1 день назад
Здравствуйте, решил сделать простенький кликер, сделал пока что счетчик клика, код:
 using UnityEngine; 
using UnityEngine.UI;

public class clicker : MonoBehaviour
{
private int num;
public Text textNum;

public void addNum()
{
num++;
textNum.text = num.ToString();
}
}
И теперь хочу сделать так, чтобы был некий "магазин", чтобы за 50 кликов клик улучшался на +2. , желательно чтобы цена дальше повышалась.И желательно чтобы картинка тапалки ( кнопки которую кликают) могла меняться.
Голосование за лучший ответ
oscrn Мастер (1564) 1 месяц назад
 using UnityEngine; 
using UnityEngine.UI;

public class Clicker : MonoBehaviour
{
private int num = 0; // Текущий счет
public Text textNum; // Текстовый объект для отображения счёта
public int clickValue = 1; // Количество очков за один клик (увеличится после апгрейда)

// Магазин улучшений
public int upgradeCost = 50; // Начальная стоимость улучшения
public float costMultiplier = 1.5f; // Множитель стоимости при последующих покупках
public int upgradeIncrement = 2; // На сколько увеличивается clickValue после покупки

// Смена изображения кнопки после апгрейда
public Button clickButton;
public Sprite upgradedSprite; // Новая картинка для кнопки после улучшения

void Start()
{
UpdateDisplay();
}

// Метод, вызываемый кнопкой клика
public void AddNum()
{
num += clickValue;
UpdateDisplay();
}

// Метод покупки улучшения
public void BuyUpgrade()
{
if (num >= upgradeCost)
{
// Снимаем очки за покупку
num -= upgradeCost;

// Улучшаем клик
clickValue += upgradeIncrement;

// Повышаем стоимость следующей покупки
upgradeCost = Mathf.RoundToInt(upgradeCost * costMultiplier);

// Обновляем экранный текст
UpdateDisplay();

// Меняем картинку у кнопки (опционально)
if (upgradedSprite != null && clickButton != null)
{
clickButton.image.sprite = upgradedSprite;
}
}
else
{
Debug.Log("Недостаточно кликов для улучшения!");
}
}

private void UpdateDisplay()
{
textNum.text = num.ToString();
}
}
Похожие вопросы