Как установить количество заливки на 0 текущего изображения и перенести количество заливки текущего изображения на предыдущее изображение - PullRequest
0 голосов
/ 25 апреля 2020

Обесцвечивание: я начинающий программист, поэтому мне жаль, если код кажется неуклюжим или плохим.

Я хотел реализовать систему с несколькими подзарядками, при которой, когда заряжается первая сила, начинается зарядка второй мощности, что можно показать в игровом интерфейсе. Я попытался сделать это с помощью массива, но не смог сделать это, поэтому я прошел базовый код c, который:

public class ShockwaveChargesScript : MonoBehaviour
{

    public GameManager gameManager;
    public GameObject player;

    public Image sWCharge2;
    public Image sWCharge3;

    public float sWFillMeterTimer;

    private void Start()
    {
        sWCharge2.enabled = false;
        sWCharge3.enabled = false;
    }

    private void Update()
    {
        if(gameManager.sWFill.GetComponent<Image>().fillAmount >= 1)
        {
            sWFillMeterTimer += (1 * Time.deltaTime) / gameManager.swRechargeTime;

            if(sWFillMeterTimer > 0)
            {
                sWCharge2.enabled = true;
                sWCharge2.fillAmount += (1 * Time.deltaTime) / gameManager.swRechargeTime;

                if (sWFillMeterTimer > 1)
                {
                    sWCharge3.enabled = true;
                    sWCharge3.fillAmount += (1 * Time.deltaTime) / gameManager.swRechargeTime;

                }
            }

            if(player.GetComponent<PlayerScript>().sWButPressed && sWCharge2.fillAmount < 1)
            {
                gameManager.sWFill.GetComponent<Image>().fillAmount = sWCharge2.fillAmount;
                sWCharge2.fillAmount = 0;
                sWFillMeterTimer = 0;
            }

            if(player.GetComponent<PlayerScript>().sWButPressed && sWCharge2.fillAmount >= 1)
            {
                gameManager.sWFill.GetComponent<Image>().fillAmount = 1;
                sWCharge2.fillAmount = 0;
                sWFillMeterTimer -= 1;
            }
        }
    }

}

, который дает мне следующий вывод:

Таким образом, как вы можете видеть в левом нижнем углу, так как второй заряд не полностью заряжен и заряжается, при нажатии кнопки величина заполнения из второго заряда переходит к сумма первого и второго заряда начинается с 0.

Но проблема возникает, когда второй заряд полностью заряжен и когда я нажимаю кнопку второй заряд доходит до 0, первый заряд также идет до 0 и начинает заряжаться с 0. Мне нужно, чтобы первый заряд был полностью заряжен.

Может кто-нибудь помочь. Извините, если вопрос не совсем понятен, engli sh не мой родной язык.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...