You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C#可搜索Dropdown过滤:需保留“-”选项的优化需求

Unity Dropdown过滤优化:始终保留“-”选项

直接修改FilterDropdown方法的过滤条件,让“-”选项始终被保留,同时保留匹配输入内容的选项即可。以下是优化后的完整代码:

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 == "-" || option.text.IndexOf(input) >= 0);
        // 如果需要忽略大小写匹配,替换为下面的条件:
        // option.text == "-" || option.text.IndexOf(input, StringComparison.OrdinalIgnoreCase) >= 0
    }
}

关键修改说明

  • 在FindAll的筛选委托中,新增option.text == "-"的判断,确保无论输入什么内容,该选项都会被保留
  • 原有的匹配逻辑保持不变,依然会筛选出包含输入文本的选项
  • 如果需要支持大小写不敏感的匹配,可以将IndexOf(input)替换为IndexOf(input, StringComparison.OrdinalIgnoreCase),这样输入“ba”也能匹配“Ban”“Bay”这类选项

内容的提问来源于stack exchange,提问作者Leonel Chailand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:35:08