using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using System.Collections;
using System;
public class MainScript : MonoBehaviour {
//Переменные
private float score;//Очки
private float scoreIncrease = 1;//Бонус к очкам
private int LevelOfItem;
private float bonusPerSec;
//Arrays
public float[] perSecondBonus;
public float[] ItemCosts;
//Обьекты
public Slider Slider;//Слайдер к выпадению бонусса
//Тексты вывода
[Header("Текст, отвечающий за отображение очков")]
public Text ScoreText;
[Header("Текст, отвечающий за отображение бонуса нажатий в секунду")]
public Text PerSecText;
[Space]
[Space]
[Header("Магазин")]
public List<Item> shopItems = new List<Item>();
[Header("Текст цены на кнопках товаров")]
public Text[] shopItemsCostText;
[Header("Текст уровня на кнопках товаров")]
public Text[] shopItemsLevelText;
private void Start()
{
StartCoroutine(PerSecond());
}
private void FixedUpdate()
{
ScoreText.text = "" + score;//Вывод очков на экран
}
public void OnClick()
{
score += scoreIncrease;//
Slider.value++;//Увеличение значения слайдера на 1
}
public void Buy_Item_CPS(int index)
{
score -= ItemCosts[index];
LevelOfItem++;
ItemCosts[index] *= 2.2f;
shopItemsLevelText[index].text = "" + LevelOfItem;
shopItemsCostText[index].text = "" + ItemCosts;
StartCoroutine(PerSecond());
}
IEnumerator PerSecond(int index)
{
while (true) {
score += LevelOfItem * perSecondBonus[index].value;//И вот здесь я затупил и не могу передать значения массива
yield return new WaitForSeconds(1);
bonusPerSec = LevelOfItem * perSecondBonus[index].value;//и здесь
}
}
}
[Serializable]
public class Item
{
}
По моей задумке я указываю в юньке для каждого обьекта своё значение множителя(float) "bonusPerSec" и передаю его в корутину, но я не знаю как это реализовать, так как просто не знаю метода передачи значения массива в корутину - прошу помочь!
И в плюс к этому при старте корутины нужно указывать индекс, как это осуществить я тоже, к сожалению, не знаю...
Заранее спасибо!