IEnumenator出现问题[重复]

问题描述 投票:0回答:4

我试图统一制作一个C#脚本,而该脚本在IEnumerator的第61行(脚本末尾的行首和末尾用**标记)中说了'foodManager.foodEat(GameObject)': not all code paths return a value。这里有什么问题,我该如何解决?

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class FoodManager : MonoBehaviour
{

    public bool[] isFull;
    public GameObject[] slots;

    public GameObject[] itemNames;
    public GameObject[] itemImages;
    public GameObject[] itemAmounts;
    public GameObject foodObject;

    public string[] foodNames;
    public Sprite[] foodImages;
    public Sprite[] foodHalfImages;

    public GameObject foodPanel;
    void Update()
    {
        for(int i = 0; i < 6; i++)
        {
            if (isFull[i] == true)
                slots[i].SetActive(true);
            if (isFull[i] == false)
                slots[i].SetActive(false);
        }
    }

    private void addItem(int max, string itemName, GameObject itemImage, int addingAmount, string foodName)
    {
        for (int j = 0; j < max; j++)
        {
            if (isFull[j] == true && itemNames[j].GetComponent<Text>().text == itemName)
                itemAmounts[j].GetComponent<Text>().text = (int.Parse(itemAmounts[j].GetComponent<Text>().text) + addingAmount).ToString();
            if (isFull[j] == false)
            {
                isFull[j] = true;
                itemNames[j].GetComponent<Text>().text = itemName;
                itemAmounts[j].GetComponent<Text>().text = addingAmount.ToString();
                itemImages[j].GetComponent<Image>().sprite = foodImages[j];
                break;
            }
        }
    }

    public void foodButtonsBehavior(int a)
    {
        if(a >= 0 && a < 6)
        {
            StartCoroutine(foodEat(slots[a]));
        }
        if(a == 6) //exit Button
            foodPanel.SetActive(false);
    }

    **public IEnumerator foodEat(GameObject slot)**
    {
        foodPanel.SetActive(false);
    }
}

我想使用IEnumenator,因为我想将WaitForSeconds()添加到脚本中,但是我还没有添加。请帮助我解决这个问题,这非常重要!

c# unity3d ienumerator
4个回答
0
投票

0
投票

0
投票
public void foodEat(GameObject slot) { foodPanel.SetActive(false); }

这应该可以解决您的问题。


0
投票
void关键字!
© www.soinside.com 2019 - 2024. All rights reserved.