Сразу оговорюсь, что возможно есть штатные средства поиска, поэтому следующий вариант возможно излишний.
Создаёте папку Editor (если у вас её ещё нет).
В этой папке создаёте следующий скрипт:
Используется csharp
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
public class ButtonFinder : ScriptableWizard
{
[MenuItem("Wizards/ButtonFinder")]
private static void CreateWizard()
{
ScriptableWizard.DisplayWizard<ButtonFinder>("Button Finder Wizard");
}
public string MethodName;
public List<Button> ButtonsList = new List<Button>();
private void OnWizardUpdate()
{
ButtonsList.Clear();
if (string.IsNullOrEmpty(MethodName) == false)
{
MethodName = MethodName.Trim();
foreach (Button b in Resources.FindObjectsOfTypeAll<Button>())
{
for (int i = 0; i < b.onClick.GetPersistentEventCount(); i++)
{
if (b.onClick.GetPersistentMethodName(i) == MethodName)
ButtonsList.Add(b);
}
}
}
}
private void OnWizardCreate() { }
}
1) В верхнем меню Unity появляется новый пункт. Выбираете его. Появляется окошко.
2) Вводите в поле имя метода, который нужно найти.
3) В списке ниже сразу появляются результаты. То-есть это будет список объектов кнопок, у которых на OnClick повешен метод с именем, который вы вписали. По этим объектам можно кликать и они будут выделятся в иерархии. Так же поиск затронет и отключенные объекты и объекты-префабы в проекте.