From 25d579015d2a16304642ede9e0a5bc59983d9406 Mon Sep 17 00:00:00 2001 From: Chenx221 Date: Mon, 30 Jan 2023 12:34:21 +0000 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- t1.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 t1.py diff --git a/t1.py b/t1.py new file mode 100644 index 0000000..cb43767 --- /dev/null +++ b/t1.py @@ -0,0 +1,34 @@ +import os +import UnityPy + + +def unpack_all_assets(source_folder: str, destination_folder: str): + # iterate over all files in source folder + for root, dirs, files in os.walk(source_folder): + for file_name in files: + # generate file_path + file_path = os.path.join(root, file_name) + # load that file via UnityPy.load + env = UnityPy.load(file_path) + + # iterate over internal objects + for obj in env.objects: + # process specific object types + if obj.type.name in ["Texture2D", "Sprite"]: + # parse the object data + data = obj.read() + + # create destination path + dest = os.path.join(destination_folder, data.name) + + # make sure that the extension is correct + # you probably only want to do so with images/textures + dest, ext = os.path.splitext(dest) + dest = dest + ".png" + + img = data.image + img.save(dest) + + +if __name__ == "__main__": + unpack_all_assets("F:\\data", "F:\\data_out")