Здравствуйте! У меня сразу два вопроса
Введение: я начал разработку кликера с монстрами и героями. Когда дело дошло до улучшения героя DPS (урон в секунду), начались проблемы. Я сделал bool, который означает, что персонаж уже появился и возник вопрос как сделать так, чтобы он активировался когда персонаж появляется? Я оставил эту проблему на потом тк bool публичный и я пока мог включать его вручную. И сразу столкнулся со второй проблемой, а именно той, что после того как я покупал данного персонажа, он появлялся и начинал стрелять, я включал bool UpTime и по нажатию кнопки деньги снимаются, а персонаж не улучшается! СРАЗУ ПРОШУ ПРОЩЕНИЯ ЗА КРИВОЙ КОД, Я НОВИЧОК и скидываю весь код, чтобы вам было проще разобраться
(Информацию я искал 2 дня и ничего не нашел, очень нужна ваша помощь)
Вопросы: 1. Как включать bool по нажатию кнопки?
2. Как сделать так, чтобы персонаж улучшался?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UpButtonHelper : MonoBehaviour
{
public Text DamageText;
public Text PriceText;
public int Damage = 1;
public int Price = 10;
public bool IsHero;
public bool IsRuby;
public bool UpTime;
public GameObject HeroPrefab;
public float X, Y, Z, Mult;
GameHelper _gameHelper;
HeroHelper _heroHelper;
BulletHelper _bulletHelper;
// Start is called before the first frame update
void Start()
{
_gameHelper = GameObject.FindObjectOfType<GameHelper>();
_heroHelper = GameObject.FindObjectOfType<HeroHelper>();
_bulletHelper = GameObject.FindObjectOfType<BulletHelper>();
DamageText.text = "+" + Damage.ToString();
PriceText.text = Price.ToString();
}
// Update is called once per frame
void Update()
{
DamageText.text = "+" + Damage.ToString();
PriceText.text = Price.ToString();
}
public void UpClick()
{
if (!IsRuby && _gameHelper.PlayerGold >= Price || IsRuby && _gameHelper.PlayerRuby >= Price)
{
if (!IsRuby)
{
_gameHelper.PlayerGold -= Price;
}
else
{
_gameHelper.PlayerRuby -= Price;
}
if (IsHero == false)
{
_gameHelper.PlayerDamage += Damage;
}
else
{
if (UpTime == false)
{
GameObject hero = Instantiate(HeroPrefab) as GameObject;
Vector2 heroPos = new Vector2(X, Y);
hero.transform.position = heroPos;
}
_heroHelper.Damage += Damage;
Damage = Damage * 2;
}
}
}
}