public T GetSubsystem <T>() where T : USubsystem { UClass uclass = UClass.GetClass(typeof(T)); IntPtr system = Native_FSubsystemCollection.GetSubsystem(this.Address, uclass.Address); return(GCHelper.Find <T>(system)); }
/// <summary> /// Clears the collection, while deinitializing the systems. /// </summary> public void Deinitialize() { Native_FSubsystemCollection.Deinitialize(collectionAddress); }
/// <summary> /// Only call from Initialize() of Systems to ensure initialization order. /// </summary> /// <remarks> /// Note: Dependencies only work within a collection. /// </remarks> public bool InitializeDependency <T>() where T : USubsystem { return(Native_FSubsystemCollection.InitializeDependency(collectionAddress, UClass.GetClass(typeof(T)).Address)); }
/// <summary> /// Initialize the collection of systems, systems will be created and initialized. /// </summary> public void Initialize(UObject NewOuter) { Native_FSubsystemCollection.Initialize(collectionAddress, NewOuter == null ? IntPtr.Zero : NewOuter.Address); }