Тема жизней : убывания и прибавления !!!

Новичок
Статус
Оффлайн
Регистрация
4 Мар 2021
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Всем доброго времени суток дорогие программисты )))
и сразу к сути и небольшой проблеме )))
(((Игра 2D)))
У меня есть 10 image для полосок жизней и два скрипта для взаимодействия с этой полоской жизней
первое убывания жизней
с ним все ОК и работает как надо (1) первый скрипт
при атаке врага полоска image уменьшается и Color работает как надо


C#:
public int Life_points;   //  количество здоровья (настоящее время)
    public Image[] lifePoints; // картинка жизни  хп
    public Color[] lifeColors; // картинка цвета жизни ибо если у нас одна полоска жизни пропала то за место сгоревший полоски будет другая умершая
 
void ChsngeLife() //  изменить количество жизней // вызываться этот метод будет тогда когда нам будет наноситься урон
    {
        for (int l = 0; l < lifePoints.Length; l++) //  делаем проверку (((это Л [l] )))
        {
            if (l < Life_points)  //  если наша жизнь меняется к текущей жизни которая у нас есть 
            {
                lifePoints[l].color = lifeColors[0];  // меняем свет с одного 0 на другой это  индекс будет обозначать зелёный цвет
 
            }
 
            else // в противном случи
            {
                lifePoints[l].color = lifeColors[1]; // меняем цвет с одного 0 на другой
            }
 
        }               
 
    }
public void Damage(int dmg)  // урон
    {
        Life_points -= dmg;  // урона сколько мы хотим нанести
 
        if (Life_points < 0)  //если у нас осталось (1 единица жизней)  Life_points)
        {
            Life_points = 0; 
        }
        ChsngeLife();// отнимания жизней  изменения жизни
    }
(2)Второй же скрипт для прибавления жизней
при подбирания аптечки полоска image не шевелиться верх а при следующем ударе полоска реагирует столько сколько я взял аптечек жизней и подстраивается к данному результату
в зависимости каким врагом был нанесён урон

C#:
// ВЕСЬ СКРИПТ
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class BonusLife : MonoBehaviour
{
    //  что должно происходить после того как мы подберём  аптечку
 
    public ShipController Ship;  //  будет обозначать наш корабль  (1 скрипт)
  
 private void Start()
    {
        Ship = GameObject.Find("ShipPlayer").GetComponent<ShipController>();//  для того что бы пополнять наше здоровья  корабля
    }
    private void OnCollisionEnter2D(Collision2D coll) // как будет аптечка взаимодействовать с нашим кораблём
    {
        if (coll.gameObject.CompareTag("Ship")) // с чем будет взаимодействовать наша Аптечка
        {//ИМЕННО ТУТ НУЖНО ВСТАВИТЬ ((( COLOR))) КАК МНЕ КАЖЕТЬСЯ НО Я НЕ ЗНАЮ КАК ПРАВИЛЬНО РАСПИСАТЬ
            Destroy(gameObject);// удаляем аптечку
            Ship.Life_points += 2;           
            if (Ship.Life_points < 9) //  сначала делаем проверку сколько у нас жизней если меньше  < 9
            {
                Ship.Life_points += 2;  // делаем что бы за пределы 10 жизней некогда не выходила
            }
            else
            {
                Ship.Life_points = 10;  // делаем что бы за пределы 10 жизней некогда не выходила
            }
        }
    }
}
Проблема в самом Colore в скрипте втором (2) Color не реагирует на прибавления...
int реагирует на аптечку но не реагирует Color
тут его как бы нет но я понятия не имею куда его добавить и как все правильно расписать


Как прибавления так и убавления ячейки типа Сердечек)))
на убывание норм а на прибавления не показывается но int считывается ))) цвет не меняется в том и проблема )))



буду очень рад помощи за ранее спасибо )))
 
Новичок
Статус
Оффлайн
Регистрация
4 Мар 2021
Сообщения
2
Реакции[?]
0
Поинты[?]
0
теперь все ок ))) помог хороший человек )))
//Ship.Life_points += 2; это удалить
if (Ship.Life_points < 9) // сначала делаем проверку сколько у нас жизней если меньше < 9
{
Ship.Life_points += 2; // делаем что бы за пределы 10 жизней некогда не выходила
}
else
{
Ship.Life_points = 10; // делаем что бы за пределы 10 жизней некогда не выходила
}
Ship.ChsngeLife();
Destroy(gameObject);// удаляем аптечку
 
Сверху Снизу