@Zieroo

C# код улучшения персонажа в Unity. Поможете?

Здравствуйте! У меня сразу два вопроса
Введение: я начал разработку кликера с монстрами и героями. Когда дело дошло до улучшения героя 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;
            }
        }
    }
}
  • Вопрос задан
  • 438 просмотров
Пригласить эксперта
Ответы на вопрос 1
UpClick() выглядит сложно)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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