Условие исключения в цикле массива

Программирование на Юнити.

Условие исключения в цикле массива

Сообщение piotrDevPro 24 янв 2020, 02:05

Есть массив, в нем обьекты (в моем случае машины),для того чтоб условие выполнялось один раз,обьявил переменную bool = true, при выполнении условие захлопываем bool = false, чтобы при листании обьектов в массиве (массив зациклен) попадая на обьект сново и сново, не выполнялось условие повторно, а всего лишь один раз,при перелистывание обьекта (в моем случае это переключение между машинами) захлопывается bool = false, условие выполнилось на одном обьекте и захлопнуло false, то есть мы сделали только одно перелистывание на следующий обьект,далее например при перелистывании на 3ий элемент условие не выпоолняется так как bool = false(захлопнут), вопрос: как сделать [curved_hands] чтобы при перелистывании на след обьект выполнялось условие ([currentCarNumber].carPower.speed +=***) один раз,но не выполнялось еще раз при переключении на этот обьект сново и сново,надеюсь доходчиво обьяснил #:-s спасибо)

КОД

Переключение обьектов в массиве на след/пред (висит на кнопке NEXT)
Синтаксис:
Используется csharp

public void NextCar()
    {
        currentCarNumber++;
        currentCarNumber = (int)Mathf.Repeat(currentCarNumber, carSetting.Length);

        foreach (CarSetting VSetting in carSetting)
        {

            if (VSetting == carSetting[currentCarNumber])
            {
                VSetting.car.SetActive(true);
                currentCar = VSetting;
                PlayerPrefs.SetInt("CurrentCar", currentCarNumber);
            }
            else
            {
                VSetting.car.SetActive(false);
               

            }
        }
    }


И вот эти условие должны выполняться только один раз при переключении на обьект массива

Синтаксис:
Используется csharp
 public void CarUpdate()
    {

        if (PlayerPrefs.GetInt("Nitro" + currentCarNumber.ToString()) == 1 && PlayerPrefs.GetInt("select" + currentCarNumber.ToString()) == 1)
        {
            menuGUI.carUseNos.isOn = true;
            NOSisChecked = true;
            if (_NOSisChecked)
            {
                carSetting[currentCarNumber].carPower.speed += 35;
                _NOSisChecked = false;
            }
        }
        else
        {
            menuGUI.carUseNos.isOn = false;
            NOSisChecked = false;

        }


        if (PlayerPrefs.GetInt("Turbo" + currentCarNumber.ToString()) == 1 && PlayerPrefs.GetInt("selectTurbo" + currentCarNumber.ToString()) == 1)
        {


            menuGUI.carUseTurbo.isOn = true;
            TurboisChecked = true;
            if (_TurboisChecked)
            {
                carSetting[currentCarNumber].carPower.speed += 15;
                _TurboisChecked = false;
            }
        }
        else
        {
            menuGUI.carUseTurbo.isOn = false;
            TurboisChecked = false;
        }

 
piotrDevPro
UNец
 
Сообщения: 25
Зарегистрирован: 30 май 2017, 20:36

Re: Условие исключения в цикле массива

Сообщение 1max1 24 янв 2020, 02:29

Ну так ты же сам ответил на свой вопрос. _NOSisChecked и _TurboisChecked твои булки, которые сработают 1 раз. В чем проблема-то?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Условие исключения в цикле массива

Сообщение piotrDevPro 24 янв 2020, 14:40

1max1 писал(а):Ну так ты же сам ответил на свой вопрос. _NOSisChecked и _TurboisChecked твои булки, которые сработают 1 раз. В чем проблема-то?

да,но почему то срабатывает на 2ух из 3ех машин, на 3ей условие не выполняется,в логах _NOSisChecked = false, _TurboisChecked=false, получается чтоб условие сново выполнилось нужно чтоб эти значение были true,булы обьявил как public static, в чем может быть проблемс?спасибо
piotrDevPro
UNец
 
Сообщения: 25
Зарегистрирован: 30 май 2017, 20:36

Re: Условие исключения в цикле массива

Сообщение 1max1 24 янв 2020, 15:11

static работает на все сразу, убери.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Условие исключения в цикле массива

Сообщение piotrDevPro 24 янв 2020, 15:19

1max1 писал(а):static работает на все сразу, убери.

Пробывал, тоже самое, я думаю что так, на старт у нас true - выполяем условие,листаем на след обьект - условие выполняется, и замыкается на false, далее при переходе на третий обьект так как false, то условие не выполняется, как обнулить на true и замкнуть при выполнении условие сразу на false?
piotrDevPro
UNец
 
Сообщения: 25
Зарегистрирован: 30 май 2017, 20:36

Re: Условие исключения в цикле массива

Сообщение piotrDevPro 24 янв 2020, 15:19

1max1 писал(а):static работает на все сразу, убери.

Пробывал, тоже самое, я думаю что так, на старт у нас true - выполяем условие,листаем на след обьект - условие выполняется, и замыкается на false, далее при переходе на третий обьект так как false, то условие не выполняется, как обнулить на true и замкнуть при выполнении условие сразу на false?
piotrDevPro
UNец
 
Сообщения: 25
Зарегистрирован: 30 май 2017, 20:36


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7