这是第一个 Unity 开放项目的repo,是 Unity 和社区合作创建的一个小型开源游戏演示,第一款游戏是一款名为 Chop Chop 的动作冒险游戏。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

59 行
1.5 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class RecipeIngredientsFiller : MonoBehaviour
{
[SerializeField]
private List<IngredientFiller> instantiatedGameObjects = new List<IngredientFiller>();
public void FillIngredients(List<ItemStack> listofIngredients, bool[] availabilityArray)
{
if (gameObject.GetComponent<VerticalLayoutGroup>() != null)
gameObject.GetComponent<VerticalLayoutGroup>().enabled = true;
int maxCount = Mathf.Max(listofIngredients.Count, instantiatedGameObjects.Count);
for (int i = 0; i < maxCount; i++)
{
if (i < listofIngredients.Count)
{
if (i >= instantiatedGameObjects.Count)
{
//Do nothing, maximum ingredients for a recipe reached
Debug.Log("Maximum ingredients reached");
}
else
{
//fill
bool isAvailable = availabilityArray[i];
instantiatedGameObjects[i].FillIngredient(listofIngredients[i], isAvailable);
instantiatedGameObjects[i].gameObject.SetActive(true);
}
}
else if (i < instantiatedGameObjects.Count)
{
//Desactive
instantiatedGameObjects[i].gameObject.SetActive(false);
}
}
StartCoroutine(waitBeforeDesactiveLayout());
}
IEnumerator waitBeforeDesactiveLayout()
{
yield return new WaitForSeconds(1);
//disable layout group after layout calculation
if (gameObject.GetComponent<VerticalLayoutGroup>() != null)
gameObject.GetComponent<VerticalLayoutGroup>().enabled = false;
}
}