-
Автор темы
- #1
Всем доброго времени суток дорогие программисты )))
и сразу к сути и небольшой проблеме )))
(((Игра 2D)))
У меня есть 10 image для полосок жизней и два скрипта для взаимодействия с этой полоской жизней
первое убывания жизней
с ним все ОК и работает как надо (1) первый скрипт
при атаке врага полоска image уменьшается и Color работает как надо
(2)Второй же скрипт для прибавления жизней
при подбирания аптечки полоска image не шевелиться верх а при следующем ударе полоска реагирует столько сколько я взял аптечек жизней и подстраивается к данному результату
в зависимости каким врагом был нанесён урон
Проблема в самом Colore в скрипте втором (2) Color не реагирует на прибавления...
int реагирует на аптечку но не реагирует Color
тут его как бы нет но я понятия не имею куда его добавить и как все правильно расписать
Как прибавления так и убавления ячейки типа Сердечек)))
на убывание норм а на прибавления не показывается но int считывается ))) цвет не меняется в том и проблема )))
буду очень рад помощи за ранее спасибо )))
и сразу к сути и небольшой проблеме )))
(((Игра 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();// отнимания жизней изменения жизни
}
при подбирания аптечки полоска 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 жизней некогда не выходила
}
}
}
}
int реагирует на аптечку но не реагирует Color
тут его как бы нет но я понятия не имею куда его добавить и как все правильно расписать
Как прибавления так и убавления ячейки типа Сердечек)))
на убывание норм а на прибавления не показывается но int считывается ))) цвет не меняется в том и проблема )))
буду очень рад помощи за ранее спасибо )))