Чтобы найти все переменные в классе в Unity, вы можете использовать отражение. Вот пример фрагмента кода, демонстрирующий, как этого добиться:
using System;
using System.Reflection;
public class MyClass
{
private int myInt;
public string myString;
private float myFloat;
}
public static class ClassVariableFinder
{
public static void FindVariables(Type classType)
{
FieldInfo[] fields = classType.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
foreach (FieldInfo field in fields)
{
Console.WriteLine(field.Name);
}
}
}
public class MainClass
{
public static void Main()
{
MyClass myObject = new MyClass();
ClassVariableFinder.FindVariables(myObject.GetType());
}
}
В приведенном выше коде у нас есть класс с именем MyClassс тремя переменными: myInt(частный), myString(публичный) и myFloat(частный). Класс ClassVariableFinderсодержит статический метод FindVariables, который принимает параметр Type, представляющий тип класса. Он использует отражение для получения всех полей (переменных) класса, фильтруя по закрытым, общедоступным полям и полям экземпляра.
Чтобы выполнить этот код, вы можете вызвать ClassVariableFinder.FindVariablesи передать тип нужного класса. В методе Mainмы создаем экземпляр MyClassи вызываем метод FindVariables.