Доброго времени суток!
Пытаюсь сделать грядки на которые можно садить семена и после какого времени они вырастают и их можно собрать!
Вроде как всё нормально работает, но есть проблема что если много раз тыкать на одну и ту самую грядку то можно до бесконечности создать на одной грядке кучу семян. Пробовал сделать проверку через bool (если что то растёт то тру и ничего посадить нельзя), но возникла такая проблема что bool изменяется на всех копиях префабов, а нужно что бы конкретно на том на котором растёт растение :(
Код грядки:
public class GardenBlockData : MonoBehaviour
{
public int SeedsID = -1;
public GameObject[] SeedsType;
private void OnMouseDown()
{
for (int i = 0; i < SeedsType.Length; i++)
{
if (i == SeedsID)
{
Instantiate(SeedsType[i], this.transform.position, Quaternion.identity);
}
}
}
}
Код семян:
public class SeedsData : MonoBehaviour
{
public float StartStage = 0f;
public float EndStage = 1f;
public float SpeedStage = 0.1f;
public float BigSeed;
private void Update()
{
BigSeed = EndStage / 2f;
StartStage += SpeedStage * Time.deltaTime;
if (StartStage <= BigSeed)
{
transform.GetChild(0).gameObject.SetActive(true);
transform.GetChild(1).gameObject.SetActive(false);
transform.GetChild(2).gameObject.SetActive(false);
}
else if (StartStage >= BigSeed & StartStage <= EndStage)
{
transform.GetChild(0).gameObject.SetActive(false);
transform.GetChild(1).gameObject.SetActive(true);
}
else if (StartStage >= EndStage)
{
transform.GetChild(1).gameObject.SetActive(false);
transform.GetChild(2).gameObject.SetActive(true);
StartStage = EndStage;
}
}
private void OnMouseDown()
{
if (StartStage == EndStage)
{
Destroy(gameObject);
}
}
}
Как будет правильно сделать проверку, что бы не плодить кучу копий кода???
Подскажите пожалуйста, а то уже всё перерыл и не могу никак придумать :(