protected SignalType GetSignal <SignalType>() where SignalType : class { var signalObject = InjectionSystem.GetOrCreateSignal(typeof(SignalType)); if (signalObject != null) { SignalType typedSignal = signalObject as SignalType; return(typedSignal); } Debug.LogError(string.Format("Did not find signal {0} at {1} {2}", typeof(SignalType), this, name)); return(null); }