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

Принятый ответ

Для компонента фермы Farm, с параметром income.
Farm[] farms = FindObjectsOfType<Farm>();
int globalIncome = 0;
foreach(Farm farm in farms)
{
    globalIncome += farm.income;
}
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
29
10 лет назад
0
Psinion, я конечно не уверен, что это правильное решение, но можно попробовать сделать 1 пустой объект родитель, в котором будут размещаться все объекты данного игрока. И потом например чтобы выбрать все фермы, ты просто делаешь
var resourceProductors = playerObjects.GetComponents<IResourceProduction>(true);
var totalCount = resourceProductors.Sum(x => x.GetResource(ResourceType.Food));
Как-то так, точно не могу сказать. Где IResourceProduction
enum ResourceType {
       Food,
       Stone,
       Wood,
       Metal
}
interface IResourceProduction {
     float GetResource(ResourceType resourceType);
}
4
26
10 лет назад
4
Для компонента фермы Farm, с параметром income.
Farm[] farms = FindObjectsOfType<Farm>();
int globalIncome = 0;
foreach(Farm farm in farms)
{
    globalIncome += farm.income;
}
Принятый ответ
0
29
10 лет назад
0
lentinant, кст точно, забыл про это.
0
7
10 лет назад
0
lentinant, спасибо, все понятно. Не знал про "foreach".
0
29
10 лет назад
0
Psinion, советую почитать курс по базовому синтаксису C#
0
21
10 лет назад
0
А я бы сделал статик переменную и при постройке разрушении менял бы.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.