Доступ к свойству «включено» компонента через интерфейсC#

Место общения программистов C#
Anonymous
Доступ к свойству «включено» компонента через интерфейс

Сообщение Anonymous »

У меня есть класс/поведение MyBehavior, который ищет в игровом объекте любой компонент, реализующий интерфейс IMyInterface, используя этот код: myInterface = (IMyInterface)gameObject.GetComponentInParent (typeof(IMyInterface)) .

Код: Выделить всё

IMyInterface
реализуется несколькими классами/поведениями. Например:

Код: Выделить всё

public class MyClass1: MonoBehaviour, IMyInterface

public class MyClass2: MonoBehaviour, IMyInterface
и т. д.
Я хотел бы иметь возможность определять, включены ли компоненты MyClass1, MyClass2 и т. д. или отключено.
Однако я не уверен, как получить доступ к компонентам, и интерфейсы, похоже, не имеют доступа к свойствам Enable и Disabled.
Одним решением, о котором я подумал, является явная проверка типа, например. myInterface — это MyClass1, но проблема в том, что если я когда-нибудь создам новый класс, реализующий интерфейс, мне придется не забыть вернуться к этому сценарию MyBehavior и обновить его, чего я не делаю. мне нравится.
Есть ли какие-нибудь способы узнать тип класса, к которому относится интерфейс, и получить доступ к его включенным или отключенным свойствам? Будет ли приведение его к Monobehaviour работать нормально, если я всегда ожидаю, что это будет Monobehaviour, или это плохая идея со скрытыми проблемами?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -interface

Вернуться в «C#»