@Dianka05
Всегда на позитиве :Р

У меня проблема с foreach?

Я новачок в с#

if (this.CompareTag("Cube") && other.CompareTag("Cube"))
        {
            foreach(Activator button in FindObjectOfType<Activator>()) // тут пишет ошибку
            {
                button.canPuch = false;
            }

ошибка
error CS1579: foreach statement cannot operate on variables of type 'Activator' because 'Activator' does not contain a public instance definition for 'GetEnumerator'


public class Activator : MonoBehaviour
{
    public GameObject[] firstGroup;
    public GameObject[] secondGroup;
    public Activator button;
    public Material normal;
    public Material transparent;
    public bool canPuch;

    private void OnTriggerEnter(Collider other)
    {
        if (canPuch)
        {
            if (other.CompareTag("Cube") || other.CompareTag("Player"))
            {
                foreach (GameObject first in firstGroup)
                {
                    first.GetComponent<Renderer>().material = normal;
                    first.GetComponent<Collider>().isTrigger = false;
                }
                foreach (GameObject second in secondGroup)
                {
                    second.GetComponent<Renderer>().material = transparent;
                    second.GetComponent<Collider>().isTrigger = true;
                }
                GetComponent<Renderer>().material = transparent;
                button.GetComponent<Renderer>().material = normal;
                button.canPuch = true;
            }
        }
    }

}
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@vabka Куратор тега C#
Токсичный
FindObjectOfType<Activator> возвращает единственный экземпляр, так что в вашем случае цикл не нужен.
Если хотите получить все экземпляры типа Activator, то надо использовать FindObjectsOfType - тогда получите список, по которому можно пройтись при помощи foreach
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NEDOprogramist
@NEDOprogramist
Изучаю C#
Оператор foreach не может работать с переменными типа Activator, поскольку Activator не содержит определения общедоступного экземпляра для GetEnumerator
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
17 янв. 2021, в 08:35
50000 руб./за проект
17 янв. 2021, в 01:26
100000 руб./за проект
16 янв. 2021, в 22:34
10000 руб./за проект