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

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

Для компонента фермы Farm, с параметром income.
Farm[] farms = FindObjectsOfType<Farm>();
int globalIncome = 0;
foreach(Farm farm in farms)
{
    globalIncome += farm.income;
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
9 лет назад
0
Выбери все объекты фермы и в цикле посчитай сумму
0
7
9 лет назад
0
alexprey, возможно это звучит очень просто, но я не знаю как так сделать. Я попробовал использовать GameObject.Find(), но как я и думал, ничего не получилось.
0
29
9 лет назад
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
9 лет назад
4
Для компонента фермы Farm, с параметром income.
Farm[] farms = FindObjectsOfType<Farm>();
int globalIncome = 0;
foreach(Farm farm in farms)
{
    globalIncome += farm.income;
}
Принятый ответ
0
29
9 лет назад
0
lentinant, кст точно, забыл про это.
0
7
9 лет назад
0
lentinant, спасибо, все понятно. Не знал про "foreach".
0
29
9 лет назад
0
Psinion, советую почитать курс по базовому синтаксису C#
0
21
9 лет назад
0
А я бы сделал статик переменную и при постройке разрушении менял бы.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.