Мой класс GameObject имеет словарь со всеми его компонентами, и этот метод написано, чтобы получить их.
Код: Выделить всё
internal T GetComponent (bool imperative = false) where T : Component
{
string name = typeof(T).Name;
if (!components.ContainsKey(name))
{
if(imperative)
{
T newComp = default(T);
AddComponent(newComp);
return newComp;
}
throw new Exception("Component not found");
}
return (T)components[name];
}
Я думаю, что этот компонент должен иметь что-то вроде этого
Код: Выделить всё
public class UpdaterComponent: Component
{
internal Func GetComponent; //where T : Component
//...
}
Однако я понятия не имею, как это написать. Я читал о делегатах, но не хочу создавать делегат для каждого существующего типа компонента. Есть ли простой способ написать это?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-c-sharp
Мобильная версия