Я пытаюсь создать игру-симулятор кулинарии на Unity, где при нажатии на тарелку сырой пищи через x секунд она генерирует клон приготовленной еды на гриле.Если я не нажму (уничтожу) эту приготовленную пищу через x секунд, то эта приготовленная пища станет сожженной пищей.
void OnMouseDown()
{
// food item 1
if (gameObject.name == "blobraw1") {
StartCoroutine(cookandburn("blobraw1"));
}
else if (gameObject.name.Contains("blobcooked1")) {
if(corder.SearchandRemove(gameObject)) {
Destroy(gameObject);
};
}
}
public IEnumerator cookandburn(string rawFoodName) {
float x = Random.Range(MinX, MaxX);
float y = Random.Range(MinY, MaxY);
yield return new WaitForSeconds(cooktime);
if (rawFoodName == "blobraw1")
{
// generate raw food
Instantiate(cooked1, new Vector3(x, y, 10), Quaternion.identity);
yield return new WaitForSeconds(burntime);
// generate burned food if condition doesn't satisfy
Instantiate(burned1, new Vector3(x, y, 10), Quaternion.identity);
}
В настоящее время я могу уничтожить приготовленную еду, но через x секунд сожженный сценарий будет запущен и запустит записанную версию еды в том же месте.Я не могу придумать, как определить, когда приготовленная версия уничтожена, и сказать программе не создавать экземпляр сгоревшей версии.