Вторник, 23 Апреля 2024, 18:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Сложение переменных с одинаковым названием в одном скрипте.
Сложение переменных с одинаковым названием в одном скрипте.
SrJeonnyДата: Воскресенье, 25 Февраля 2018, 21:19 | Сообщение # 1
был не раз
Сейчас нет на сайте
Добрый вечер господа. Столкнулся с глупой проблемой. Предположим на персонажа можно одеть броню, да разбитую на части (ака Скайрим: шляпа, костюм, наручи, сапоги) и каждый из них будет иметь переменную типа int отвечающая за защиту, предположим она будет снижать урон и предельно просто, передавая суммарное значение int def со всех элементов одеяния куда-либо, все они сложатся и получится одна цифра, благодаря которой рассчитается снижение урона.
Я бы залез в гугл, перекопал всю документацию по юнити, но я даже не знаю как четко сформулировать это всё.
Есть вариант наплодить hatDef,armourDef,legsDef и т.дef... Но жутко не эстетично, уверен есть решение проще. Мудрецы, отзовитесь! lovegcup
VostruginДата: Воскресенье, 25 Февраля 2018, 21:39 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Добавь на каждый предмет экипировки какой-то компонент ArmorItem, у которых будет поле ArmorValue. У персонажа будет список одетых на нём предметов, для вычисления общего показателя брони пробегай по списку и суммируй ArmorValue. Это решение в лоб.
Ещё как вариант хранить в объекте только id предмета экипировки, а его данные вытаскивать уже с централизованного хранилища.




SrJeonnyДата: Воскресенье, 25 Февраля 2018, 21:46 | Сообщение # 3
был не раз
Сейчас нет на сайте
Проблема как раз в суммировании. Как? Плюсиками? Или команда? Команда убрала бы у меня все вопросы.
VostruginДата: Воскресенье, 25 Февраля 2018, 21:49 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
м?
Код
var totalArmor = 0;
foreach(var item in equippedItems) // equippedItems список одетых преметов
{
  totalArmor += item.ArmorValue;
}


Или вариант с Linq
Код
var totalArmor = equippedItems.Sum(x => x.ArmorValue);




SrJeonnyДата: Воскресенье, 25 Февраля 2018, 21:53 | Сообщение # 5
был не раз
Сейчас нет на сайте
Оба варианты интересны и хороши. Спасибо большое!
P.S: замечательная рисовка у вашей игры :)
VostruginДата: Воскресенье, 25 Февраля 2018, 22:04 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Успехов!

Цитата SrJeonny ()
P.S: замечательная рисовка у вашей игры

Спасибо ;)




Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Сложение переменных с одинаковым названием в одном скрипте.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг