/// <summary> /// Loads a package and all contained objects that match context flags. /// </summary> /// <param name="outer">Package to load new package into (usually NULL or ULevel->GetOuter())</param> /// <param name="longPackageName">Long package name to load</param> /// <param name="loadFlags">Flags controlling loading behavior</param> /// <returns>Loaded package if successful, NULL otherwise</returns> public static UPackage LoadPackage(UPackage outer, string longPackageName, ELoadFlags loadFlags) { using (FStringUnsafe longPackageNameUnsafe = new FStringUnsafe(longPackageName)) { return(GCHelper.Find <UPackage>(Native_UObjectGlobals.LoadPackage( outer == null ? IntPtr.Zero : outer.Address, ref longPackageNameUnsafe.Array, loadFlags))); } }
/// <summary> /// Load a class object. /// </summary> public static UClass LoadClass <T>(ObjectOuter outer, string name, string filename, ELoadFlags loadFlags = ELoadFlags.None) { UClass unrealClass = UClass.GetClass <T>(); using (FStringUnsafe nameUnsafe = new FStringUnsafe(name)) using (FStringUnsafe filenameUnsafe = new FStringUnsafe(filename)) { return(GCHelper.Find <UClass>(Native_UObjectGlobals.StaticLoadClass( unrealClass == null ? IntPtr.Zero : unrealClass.Address, outer.Address, ref nameUnsafe.Array, ref filenameUnsafe.Array, loadFlags, IntPtr.Zero))); } }
/// <summary> /// Load a class object. /// </summary> public static UClass LoadClass(UClass baseClass, ObjectOuter outer, string name, string filename = null, ELoadFlags loadFlags = ELoadFlags.None) { using (FStringUnsafe nameUnsafe = new FStringUnsafe(name)) using (FStringUnsafe filenameUnsafe = new FStringUnsafe(filename)) { return(GCHelper.Find <UClass>(Native_UObjectGlobals.StaticLoadClass( baseClass.Address, outer.Address, ref nameUnsafe.Array, ref filenameUnsafe.Array, loadFlags, IntPtr.Zero))); } }