Невозможно использовать приватные поля в юнити

Рейтинг: 0Ответов: 0Опубликовано: 28.07.2023

Я создал CustomFormatAttribute и повесил на приватные поля в юнити. Мне нужно узнать значение этих полей для дальнейшего использования. Этот код работает на полях с публичным доступом, но для приватных полей если в getfield добавить этот параметр BindingFlags.Instance | BindingFlags.NonPublic, то юнити зависает. Как решить эту проблему? возможно ли иначе узнать значение приватных полей на которых установлен CustomFormatAttribute?

        List<Component> components = new List<Component>();
        GameObject[] gameObjects = FindObjectsOfType<GameObject>();

        foreach (GameObject obj in gameObjects)
        {
            Component[] component = obj.GetComponents<Component>();
            components.AddRange(component);
        }

        foreach (var item in components)
        {
            FieldInfo[] fields = item.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic);

            foreach (var field in fields)
            {
                 var value = field.GetValue(item);
                 var attribute = field.GetCustomAttribute<CustomFormatAttribute>();
                 Debug.Log(value);
            }
        }

Ответы

Ответов пока нет.