public UClass AsClass() { if (!string.IsNullOrEmpty(Value)) { return(UObject.FindObject <UClass>(ObjectOuter.AnyPackage, Value)); } return(null); }
/// <summary> /// Returns the asset UObject if it is loaded or loads the asset if it is unloaded then returns the result /// </summary> /// <returns></returns> public UObject GetAsset() { if (!IsValid) { return(null); } UObject asset = UObject.FindObject <UObject>(null, ObjectPath.ToString()); if (asset == null) { asset = UObject.LoadObject <UObject>(null, ObjectPath.ToString()); } return(asset); }
private static void CheckFoundViaRedirect(UObject obj, string pathName, string objectToFind) { UObjectRedirector redir = UObject.FindObject <UObjectRedirector>(ObjectOuter.AnyPackage, pathName); if (redir != null && redir.DestinationObject == obj) { string str = obj.GetFullName().Replace(" ", "'") + "'"; FObjectInitializer currentInitializer = FUObjectThreadContext.TopInitializer(); UClass unrealClass = currentInitializer.IsNull ? null : currentInitializer.GetClass(); string message = string.Format("CDO Constructor ({0}): Followed redirector ({1}), change code to new path ({2])\n", (unrealClass != null ? unrealClass.GetName() : "Unknown"), objectToFind, str); Log(ELogVerbosity.Warning, message); } }
/// <summary> /// Gets the UClass for the given path (e.g. "/Script/Engine.Actor") /// </summary> /// <param name="path">The path of the object/class</param> /// <returns>The UClass for the given path</returns> public static UClass GetClass(string path) { UClass foundClass = UObject.FindObject <UClass>(UObject.AnyPackage, path); if (foundClass == null) { // Look for class redirectors FName newPath = FLinkerLoad.FindNewNameForClass(new FName(path), false); if (newPath != FName.None) { foundClass = UObject.FindObject <UClass>(UObject.AnyPackage, newPath.ToString()); } } return(foundClass); }
/// <summary> /// Gets the UStruct/UClass for the given path (e.g. "/Script/Engine.HitResult") /// </summary> /// <param name="path">The path of the object/struct</param> /// <returns>The UStruct/UClass for the given path</returns> public static UStruct GetStructOrClass(string path) { UStruct foundStruct = UObject.FindObject <UStruct>(UObject.AnyPackage, path); if (foundStruct == null) { // Look for redirectors FName newPath = FLinkerLoad.FindNewNameForStruct(new FName(path)); if (newPath != FName.None) { foundStruct = UObject.FindObject <UStruct>(UObject.AnyPackage, newPath.ToString()); } if (foundStruct == null) { newPath = FLinkerLoad.FindNewNameForClass(new FName(path), false); if (newPath != FName.None) { foundStruct = UObject.FindObject <UClass>(UObject.AnyPackage, newPath.ToString()); } } } return(foundStruct); }