Dropdown (Шаблон) становится невидимым после нажатия на другие объекты - PullRequest
0 голосов
/ 12 февраля 2020

пример here

Я использую Поле ввода , чтобы отфильтровать или выполнить поиск элементов из раскрывающегося списка , выпадающий по умолчанию получает невидимо из после одного клика. мне нужно, чтобы он был видимым до тех пор, пока не будут выбраны варианты, спасибо от всего сердца:)

1 Ответ

1 голос
/ 12 февраля 2020
 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DropdownFilter : MonoBehaviour
{
    [SerializeField]
    private InputField inputField;

    [SerializeField]
    private Dropdown dropdown;

    private List<Dropdown.OptionData> dropdownOptions;

    private void Start()
    {
        dropdownOptions = dropdown.options;
    }
    public void FilterDropdown(string input)
    {
        dropdown.options = dropdownOptions.FindAll(option => option.text.IndexOf(input) >= 0);
    }
}
  1. Создайте новый скрипт с именем DropdownFilter.cs Скопируйте и вставьте следующий скрипт

  2. Создание поля ввода и выпадающих элементов пользовательского интерфейса

  3. Прикрепите скрипт к нужному объекту gameO (пустой на вашей сцене или в раскрывающемся списке, или в поле ввода,. ..) вам просто нужно убедиться, что gameObject включен, когда сцена начинается

  4. Перетащите поле ввода и выпадающее меню в соответствующие поля в инспекторе, когда gameObject содержит скрипт

  5. Добавить новое событие в OnValueChanged поля ввода. Перетащите созданный gameObject шаг № 5 (удерживая скрипт DropdownFilter) и выберите функцию FilterDropdown (DynamicString)

...