private IEnumerator ReEnableRecipe(RecipeUI recipeUI, float delay) { recipeUI.gameObject.SetActive(false); float time = Time.time; yield return(new WaitUntil(() => { if (spawnNewRecipes && Time.time >= time + delay) { return true; } else { return false; } })); for (int i = 0; i < recipeUI.transform.parent.childCount; ++i) { Transform child = recipeUI.transform.parent.GetChild(i); if (recipeUI.transform != child && !child.gameObject.activeSelf) { recipeUI.transform.SetSiblingIndex(i - 1); break; } else if (i == recipeUI.transform.parent.childCount - 1) { recipeUI.transform.SetAsLastSibling(); break; } } recipeUI.SetRecipe(availableRecipes[Random.Range(0, availableRecipes.Count)]); recipeUI.gameObject.SetActive(true); }
private void Start() { List <Recipe> recipes = GameState.instance.GetRestaurant().GetMenu(); foreach (Recipe recipe in recipes) { RecipeUI obj = Instantiate(recipeUIPrefab, container); obj.SetRecipe(recipe); obj.GetButton().onClick.AddListener(() => PrepareRecipe(obj)); obj.PointerEnter += Obj_PointerEnter; obj.PointerExit += Obj_PointerExit; } }