@AntonFEAR

Почему не срабатывает функция CloseClick?

Всем привет,начинаю изучать программирование в unity, все работает,кроме функции CloseClick. Что я делаю не так? Вот код проекта

using UnityEngine;
using UnityEngine.UI;

public class MixWindow : MonoBehaviour
{
    public Transform SortList, SelectedSortsList;
    public SortController Prefab;
    public Button Close;

    public void Show()
    {
        foreach (var sort in Mixer.Instance.Sorts)
        {
            var s = Instantiate(Prefab, SortList);
            s.Show(sort);
        }
        gameObject.SetActive(true);
    }

    public void CloseClick()
    {
        Close.gameObject.SetActive(false);
    }
}
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Alexsix
public Transform SortList, SelectedSortsList;
public SortController Prefab;
public GameObject Close;

public void Show()
{
    foreach (var sort in Mixer.Instance.Sorts)
    {
         var s = Instantiate(Prefab, SortList);
         s.Show(sort);
    }
    gameObject.SetActive(true);
}

public void CloseClick()
{
    Close.SetActive(false);
}


Вся проблема в том, что переменная Close определяется как компонент. И надо изменить Button на GameObject.

Когда ты пишешь
public Button a;

Ты подразумеваешь, что а - это переменная хранящая компонент.

А тем более когда ты пытаешься этой строчкой:
Close.gameObject.SetActive(false);

Присвоить функции gameObject'a на компонент, то есть ты пытаешься компонент Close использовать как gameObject, а компонент и gameObject это не одно и тоже.

CloseClick() лучше перенести в void Start, или использовать метод поддерживаемый юнити (OnTriggerEnter, OnCollisionEnter и тд)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы