public void Free() { this.package = null; if (this.tempReferencesUnpack != null) { this.tempReferencesUnpack.Clear(); } this.tempReferencesUnpack = null; }
#pragma warning restore public UABPackage Run(GameObject[] objects, UABConfig config = null, List <ISerializer> serializers = null) { if (config == null) { config = Builder.GetDefaultConfig(required: true); } if (serializers == null) { serializers = Builder.GetAllSerializers(config); } this.Free(); this.tempReferencesPack = new List <TempReferencePack>(); this.tempBinariesPack = new List <TempBinaryPack>(); this.config = config; var result = new UABPackage(); // Pack GameObjects { result.objects = new UABGameObject[objects.Length]; for (int i = 0; i < objects.Length; ++i) { this.tempReferencesPack.Clear(); var obj = objects[i]; this.currentBundleName = BundleImporter.GetBundleName(obj); var uGo = this.Pack(obj, serializers); result.objects[i] = uGo; this.BuildReferences(obj.transform); } } this.BuildBinaries(ref result.binaryHeaders, ref result.binaryData, serializers); this.Free(); return(result); }
public GameObject[] Run(UABPackage package, UABConfig config = null, List <ISerializer> serializers = null) { if (this.unpackgedGameObjects != null) { return(this.unpackgedGameObjects); } if (config == null) { config = Builder.GetDefaultConfig(required: true); } if (serializers == null) { serializers = Builder.GetAllSerializers(config); } this.Free(); this.package = package; this.tempReferencesUnpack = new Dictionary <int, Object>(); var gos = new GameObject[package.objects.Length]; for (int i = 0; i < package.objects.Length; ++i) { var go = this.Unpack(package.objects[i], serializers); go.hideFlags = HideFlags.HideAndDontSave; if (Application.isPlaying == true) { GameObject.DontDestroyOnLoad(go); } gos[i] = go; } this.unpackgedGameObjects = gos; this.Free(); return(gos); }
public static GameObject[] Unpack(UABPackage package, UABConfig config = null, List <ISerializer> serializers = null) { return(new UABUnpacker().Run(package, config, serializers)); }