Здравствуйте. Допустим, у меня есть три фермы: первая выращивает две единицы пищи, вторая пять, а третья восемь. Я хочу сложить все эти значения и получить общее значение прироста пищи. Помогите, пожалуйста, как это сделать?
Ответ
Для компонента фермы Farm, с параметром income.
Farm[] farms = FindObjectsOfType<Farm>(); int globalIncome = 0; foreach(Farm farm in farms) { globalIncome += farm.income; }
Смотрите также:
Комментарии
Выбери все объекты фермы и в цикле посчитай сумму
alexprey, возможно это звучит очень просто, но я не знаю как так сделать. Я попробовал использовать GameObject.Find(), но как я и думал, ничего не получилось.
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); }
Для компонента фермы Farm, с параметром income.
Farm[] farms = FindObjectsOfType<Farm>(); int globalIncome = 0; foreach(Farm farm in farms) { globalIncome += farm.income; }
А я бы сделал статик переменную и при постройке разрушении менял бы.
Возможность добавлять комментарии была ограничена
CollectableItemData.cs
[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]