Unity assets explorer stream read error

Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /

avatar image


0

Damned if I know if anyone ran into t$$anonymous$$s bug. Pathetic! I’m really surprised nobody in t$$anonymous$$s world knows what the hell t$$anonymous$$s is. I’m trying to modify sound files for Unity Assets Explorer 1.5 and I can’t find any fix. Nor does no one get t$$anonymous$$s error. Just only me. Hell I’m probably am the only one in the world that has t$$anonymous$$s annoying bug. It’s ridiculous. How can I fix it? I tried everyt$$anonymous$$ng I could. Unblock. Moving it to a data folder. Anyt$$anonymous$$ng that might fix it. You name it. I want answers. I want to know how to fix t$$anonymous$$s for once. So that I can continue onto my project.alt text

,

1 Reply

·
Add your reply

  • Sort: 

avatar image


0

Answer by edwinsaunders · Apr 10, 2018 at 01:39 AM

I’m having the same problem. The game I’m working with was made in Unity 5.3.5. I have no idea what’s wrong but I figured I’d add to t$$anonymous$$s thread to hopefully draw more attention to it. I saw a you tube video of someone doing t$$anonymous$$s successfully but $$anonymous$$s audio files show up as .ogg instead of .83 like we have. Please let me know if you figure anyt$$anonymous$$ng out. I’ll do the same. alt text

I have found a workaround using a different tool and following the instructions from a youtube video. At least it gets the sounds into the game. Should work for you too since the game your working with was made in earlier version of unity.

Here’s the video

Sorry for the echo post. I thought my first one didn’t work.

Your answer

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Related Questions

Содержание

  1. XeNTaX
  2. XeNTaX
  3. Unity Assets Explorer [v 1.2]
  4. Unity Assets Explorer [v 1.2]
  5. Re: Unity Assets Explorer
  6. Re: Unity Assets Explorer
  7. Re: Unity Assets Explorer
  8. Re: Unity Assets Explorer
  9. Re: Unity Assets Explorer [v 1.1]
  10. XeNTaX
  11. XeNTaX
  12. Unity Assets Explorer [v 1.2]
  13. Unity Assets Explorer [v 1.2]
  14. Re: Unity Assets Explorer
  15. Re: Unity Assets Explorer
  16. Re: Unity Assets Explorer
  17. Re: Unity Assets Explorer
  18. Re: Unity Assets Explorer [v 1.1]
  19. ZenHAX
  20. Unity Assets Explorer [v 1.3]
  21. XeNTaX
  22. XeNTaX
  23. Unity Assets Explorer [v 1.2]
  24. Unity Assets Explorer [v 1.2]
  25. Re: Unity Assets Explorer
  26. Re: Unity Assets Explorer
  27. Re: Unity Assets Explorer
  28. Re: Unity Assets Explorer
  29. Re: Unity Assets Explorer [v 1.1]

XeNTaX

Game Research Forum

XeNTaX

Game Research Forum

Unity Assets Explorer [v 1.2]

Unity Assets Explorer [v 1.2]

Post by Haoose » Sat Jan 26, 2013 11:42 am

Unity Assets Explorer
Version 1.2 (29.01.2013)

Authors: AlphaTwentyThree, Haoose, OLEGator84

Unity Assets Explorer is used to view the contents of Assets-files (Unity 3D engine)
Allows you to: Extract all files, extract one file (from context menu), convert tex-files into a picture format DDS (on extraction), import the changed DDS-images to the archive.

Re: Unity Assets Explorer

Post by FinalBlast » Sat Jan 26, 2013 12:37 pm

«The resource you are trying access belongs to an account that has been suspended» reupload needed.

Still I love you people for this!

Re: Unity Assets Explorer

Post by Haoose » Sat Jan 26, 2013 1:13 pm

Re: Unity Assets Explorer

Post by delutto » Sat Jan 26, 2013 3:27 pm

Re: Unity Assets Explorer

Post by Haoose » Sat Jan 26, 2013 4:09 pm

How to work with the program:
1. Open Assets-file in program. To do this, click «Open assets-file» and select file.
2. Program will read the file and a list of files in the window.
3. To extract all the files you can use button «Extract All». Would extract the files in the program folder (the folder with the name of opened assets-file)
4. To extract a single file, select it in the list, click the right mouse button and choose «Extract This File».
5. To convert tex-files to DDS-files (when extracting), you must checked «convert TEX to DDS». (Works with extraction of all files, and extract a single file)
6. To import into the archive changed DDS-image:
a) Extract image from the archive (with converting it into the DDS-format).
b) Edit it in a photo editor. Make sure that saved it in the right format (the same as the original), and that the file size is the size of the original file.
c) Put the modified image to the same location where the original image was extracted.
d) Find in window of program tex-file, click the right mouse button and select «Import This File from DDS». Image imported into assets-file in place of the original picture.
e) To save the new assets-file, click «Save as Assets-file»

Sorry for bad english =)

Re: Unity Assets Explorer [v 1.1]

Post by Haoose » Sat Jan 26, 2013 4:37 pm

Unity Assets Explorer
Version 1.1 (26.01.2013)

* Added three types of files from the game Tiny Troopers.
* Added sorting by type.
* Added possibility to import any file (file size should match the original.)
* Added display of the name of an open file in program.

Источник

XeNTaX

Game Research Forum

XeNTaX

Game Research Forum

Unity Assets Explorer [v 1.2]

Unity Assets Explorer [v 1.2]

Post by Haoose » Sat Jan 26, 2013 11:42 am

Unity Assets Explorer
Version 1.2 (29.01.2013)

Authors: AlphaTwentyThree, Haoose, OLEGator84

Unity Assets Explorer is used to view the contents of Assets-files (Unity 3D engine)
Allows you to: Extract all files, extract one file (from context menu), convert tex-files into a picture format DDS (on extraction), import the changed DDS-images to the archive.

Re: Unity Assets Explorer

Post by FinalBlast » Sat Jan 26, 2013 12:37 pm

«The resource you are trying access belongs to an account that has been suspended» reupload needed.

Still I love you people for this!

Re: Unity Assets Explorer

Post by Haoose » Sat Jan 26, 2013 1:13 pm

Re: Unity Assets Explorer

Post by delutto » Sat Jan 26, 2013 3:27 pm

Re: Unity Assets Explorer

Post by Haoose » Sat Jan 26, 2013 4:09 pm

How to work with the program:
1. Open Assets-file in program. To do this, click «Open assets-file» and select file.
2. Program will read the file and a list of files in the window.
3. To extract all the files you can use button «Extract All». Would extract the files in the program folder (the folder with the name of opened assets-file)
4. To extract a single file, select it in the list, click the right mouse button and choose «Extract This File».
5. To convert tex-files to DDS-files (when extracting), you must checked «convert TEX to DDS». (Works with extraction of all files, and extract a single file)
6. To import into the archive changed DDS-image:
a) Extract image from the archive (with converting it into the DDS-format).
b) Edit it in a photo editor. Make sure that saved it in the right format (the same as the original), and that the file size is the size of the original file.
c) Put the modified image to the same location where the original image was extracted.
d) Find in window of program tex-file, click the right mouse button and select «Import This File from DDS». Image imported into assets-file in place of the original picture.
e) To save the new assets-file, click «Save as Assets-file»

Sorry for bad english =)

Re: Unity Assets Explorer [v 1.1]

Post by Haoose » Sat Jan 26, 2013 4:37 pm

Unity Assets Explorer
Version 1.1 (26.01.2013)

* Added three types of files from the game Tiny Troopers.
* Added sorting by type.
* Added possibility to import any file (file size should match the original.)
* Added display of the name of an open file in program.

Источник

ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax

It is currently Sun Jan 15, 2023 12:59 am

Unity Assets Explorer [v 1.3]

Post new topic Reply to topic Page 1 of 4 [ 71 posts ] Go to page 1 2 3 4 Next
Print view Previous topic | Next topic
Author Message
Haoose

Joined: Thu Aug 07, 2014 9:43 pm
Posts: 68

Unity Assets Explorer
Version 1.3 (08.08.2014)

Authors: AlphaTwentyThree, Haoose, OLEGator84

Unity Assets Explorer is used to view the contents of Assets-files (Unity 3D engine)
Allows you to: Extract all files, extract one file (from context menu), convert tex-files into a picture format DDS (on extraction), import the changed DDS-images to the archive.

How to work with the program:
1. Open Assets-file in program. To do this, click «Open assets-file» and select file.
2. Program will read the file and a list of files in the window.
3. To extract all the files you can use button «Extract All». Would extract the files in the program folder (the folder with the name of opened assets-file)
4. To extract a single file, select it in the list, click the right mouse button and choose «Extract This File».
5. To convert tex-files to DDS-files (when extracting), you must checked «convert TEX to DDS». (Works with extraction of all files, and extract a single file)
6. To import into the archive changed DDS-image:
a) Extract image from the archive (with converting it into the DDS-format).
b) Edit it in a photo editor. Make sure that saved it in the right format (the same as the original), and that the file size is the size of the original file.
c) Put the modified image to the same location where the original image was extracted.
d) Find in window of program tex-file, click the right mouse button and select «Import This File from DDS». Image imported into assets-file in place of the original picture.
e) To save the new assets-file, click «Save as Assets-file»

mistyherorvi
Joined: Fri Sep 05, 2014 5:21 am
Posts: 2

Unity Assets Explorer
Version 1.3 (08.08.2014)

Authors: AlphaTwentyThree, Haoose, OLEGator84

Unity Assets Explorer is used to view the contents of Assets-files (Unity 3D engine)
Allows you to: Extract all files, extract one file (from context menu), convert tex-files into a picture format DDS (on extraction), import the changed DDS-images to the archive.

How to work with the program:
1. Open Assets-file in program. To do this, click «Open assets-file» and select file.
2. Program will read the file and a list of files in the window.
3. To extract all the files you can use button «Extract All». Would extract the files in the program folder (the folder with the name of opened assets-file)
4. To extract a single file, select it in the list, click the right mouse button and choose «Extract This File».
5. To convert tex-files to DDS-files (when extracting), you must checked «convert TEX to DDS». (Works with extraction of all files, and extract a single file)
6. To import into the archive changed DDS-image:
a) Extract image from the archive (with converting it into the DDS-format).
b) Edit it in a photo editor. Make sure that saved it in the right format (the same as the original), and that the file size is the size of the original file.
c) Put the modified image to the same location where the original image was extracted.
d) Find in window of program tex-file, click the right mouse button and select «Import This File from DDS». Image imported into assets-file in place of the original picture.
e) To save the new assets-file, click «Save as Assets-file»

Приветствую Haoose!
1) Огромное спасибо за эту программу, теперь намного приятнее и проще работать, чем со скриптыми кои я использовал.
2) Решил заняться моддингом игры The Forest
Офф. Сайт http://survivetheforest.com
Фан Сайт на русском http://theforest.com.ru/

Так вот, хотел спросить как обстаят дела с другими форматами к примеру аудио-видео-скрипты?
Вчера на версии 1.2 извлек игровой архив, все отлично, посмотрел содержимое, далее так как ты писал, что с dds проблем нет, решил попробовать для интереса заменить стандартную музыку в меню игры, сконвертировал в ogg, указал 48hz, 2 канала, в общем все тоже, что и в оригинале, далее заменил оригинальный файл своим, в программе нажал import, вроде начал перепаковывать, затем сохранил assets файл, запускаю игру — музыка таже, при повторном импорте — архив уже поврежден.

Не мог бы ты помочь с этим делом?
Нормально ли работает импорт других файловых форматов или работает импорт только текстур?

Источник

XeNTaX

Game Research Forum

XeNTaX

Game Research Forum

Unity Assets Explorer [v 1.2]

Unity Assets Explorer [v 1.2]

Post by Haoose » Sat Jan 26, 2013 11:42 am

Unity Assets Explorer
Version 1.2 (29.01.2013)

Authors: AlphaTwentyThree, Haoose, OLEGator84

Unity Assets Explorer is used to view the contents of Assets-files (Unity 3D engine)
Allows you to: Extract all files, extract one file (from context menu), convert tex-files into a picture format DDS (on extraction), import the changed DDS-images to the archive.

Re: Unity Assets Explorer

Post by FinalBlast » Sat Jan 26, 2013 12:37 pm

«The resource you are trying access belongs to an account that has been suspended» reupload needed.

Still I love you people for this!

Re: Unity Assets Explorer

Post by Haoose » Sat Jan 26, 2013 1:13 pm

Re: Unity Assets Explorer

Post by delutto » Sat Jan 26, 2013 3:27 pm

Re: Unity Assets Explorer

Post by Haoose » Sat Jan 26, 2013 4:09 pm

How to work with the program:
1. Open Assets-file in program. To do this, click «Open assets-file» and select file.
2. Program will read the file and a list of files in the window.
3. To extract all the files you can use button «Extract All». Would extract the files in the program folder (the folder with the name of opened assets-file)
4. To extract a single file, select it in the list, click the right mouse button and choose «Extract This File».
5. To convert tex-files to DDS-files (when extracting), you must checked «convert TEX to DDS». (Works with extraction of all files, and extract a single file)
6. To import into the archive changed DDS-image:
a) Extract image from the archive (with converting it into the DDS-format).
b) Edit it in a photo editor. Make sure that saved it in the right format (the same as the original), and that the file size is the size of the original file.
c) Put the modified image to the same location where the original image was extracted.
d) Find in window of program tex-file, click the right mouse button and select «Import This File from DDS». Image imported into assets-file in place of the original picture.
e) To save the new assets-file, click «Save as Assets-file»

Sorry for bad english =)

Re: Unity Assets Explorer [v 1.1]

Post by Haoose » Sat Jan 26, 2013 4:37 pm

Unity Assets Explorer
Version 1.1 (26.01.2013)

* Added three types of files from the game Tiny Troopers.
* Added sorting by type.
* Added possibility to import any file (file size should match the original.)
* Added display of the name of an open file in program.

Источник

Adblock
detector

Help us keep the site up! Got some change to spare? Why not donate a few bits and buy us a coffee. Image

andrey88

ultra-n00b
Posts: 1
Joined: Mon Sep 28, 2015 3:34 pm

Re: Unity Assets Explorer [v 1.2]

(EN)
Excellent work, Haoose!
Please tell me whether your program from the command line just unpack all the contents *.unity3d file to disk? (as it does the disunity — but I do not like it because its requirements of Java)
If yes, please give the command to do it.
If not — specify a path where to dig, what to do such a task — from the specified file simply unpack everything on the HDD (and nothing else, no GUI, just unpacking).

(а теперь по понятному RU)
Отличная работа, Haoose!
Подскажи пожалуйста, может ли твоя программа из командной строки просто распаковать всё содержимое *.unity3d файла на диск? (как это делает disunity — но она мне не нравится в виду требования явы)
Если да, дай пожалуйста команду как это сделать.
Если нет — укажи путь, где рыть, что бы самому сделать такую задачу — из указанного файла просто выгрузить всё на диск (и больше ничего, без гуи, только распаковка на диск).

Заранее спасибо.

User avatar

Haoose

mega-veteran
mega-veteran
Posts: 280
Joined: Tue Mar 01, 2011 9:34 pm
Has thanked: 70 times
Been thanked: 191 times
Contact:

Re: Unity Assets Explorer [v 1.2]

Post

by Haoose » Wed Oct 28, 2015 11:36 am

zespri wrote:Any news on «Out of memory while expanding memory stream» error that a few people are having? Thanks!

This can be done, but it is slow down program. Maybe think of something. These restrictions Delphi -_-

-= GP-team =-
Image

zespri

ultra-n00b
Posts: 3
Joined: Sun Sep 20, 2015 12:40 am

Re: Unity Assets Explorer [v 1.2]

Post

by zespri » Wed Oct 28, 2015 7:52 pm

Haoose wrote:

zespri wrote:Any news on «Out of memory while expanding memory stream» error that a few people are having? Thanks!

This can be done, but it is slow down program. Maybe think of something. These restrictions Delphi -_-

I’m actually not quite sure that this is right. The error is not because it’s trying to load a legitimately large chunk in memory, it’s because the format has changed, and it interprets it wrongly. What it considers to be a length is not, so it is trying to load too much. It’s not just Assets Explorer problem, I’m getting the same error on disunity, with these newer assets. In particular, the section that is right before the externals section now seems to be different and require different parsing.

Glockshna

ultra-n00b
Posts: 1
Joined: Sat Nov 21, 2015 11:24 pm
Has thanked: 2 times

Re: Unity Assets Explorer [v 1.2]

Post

by Glockshna » Sat Nov 21, 2015 11:30 pm

Haoose wrote:

zespri wrote:Any news on «Out of memory while expanding memory stream» error that a few people are having? Thanks!

This can be done, but it is slow down program. Maybe think of something. These restrictions Delphi -_-

Has there been any progress on this issue? Trying to extract icons and such from Albion Online using version 1.5 but the bulk assets file can’t be opened due to this error.

Another issue is that it seems like of the files I can extract very few of them extract correctly. The colors all appear corrupted E.G.
Image

I appreciate all the work you’ve done for this program!

woosha

ultra-n00b
Posts: 1
Joined: Wed May 11, 2016 9:22 am

Re: Unity Assets Explorer [v 1.2]

Post

by woosha » Wed May 11, 2016 9:26 am

Hey,
i needed the software to recover a school project.
the software seems to work perfectly but i cant seem to find the files.
if somene could help me out it would be apriciated.

Blaqlite

ultra-n00b
Posts: 1
Joined: Thu Feb 02, 2017 7:50 pm

Re: Unity Assets Explorer [v 1.2]

Post

by Blaqlite » Thu Feb 02, 2017 7:55 pm

Hope it’s okay to post here. Made an account specifically because I needed help. Whenever I export a texture file, it only seems to want to spit out colorful boxes like the ones bellow. In those pictures, I’m using Photoshop CS5.1 with DDS plugin but Gimp 2 as well as Microsoft Visual Studio all seem to yield similar results. Also, whenever I try to import from DDS, even if I haven’t modified the file, I get «ERROR! Wrong size dds.» I’ve tried opening .tex assets from a couple of different games and I get the same results. Any help is greatly appreciated!

http://i.imgur.com/YXNwQdY.png
http://i.imgur.com/Iut8afY.png
http://i.imgur.com/TU2FOFJ.png

The only exception is that some small icons seem to load up okay. So, I’m assuming it has something to do with the export shrinking my file?

RizDub

ultra-n00b
Posts: 1
Joined: Fri Jun 09, 2017 2:58 am

Re: Unity Assets Explorer [v 1.2]

Post

by RizDub » Fri Jun 09, 2017 3:16 am

I need some help. Or maybe an update.

I’ve been using this tool to extract the assets from the various Unity-based Angry Birds games (mainly Angry Bird Epic and Angry Birds 2), and it’s been really great so far. However, the most recent update to AB2 uses a newer version of Unity, and it doesn’t work properly with UAE.

For reference, the resources.assets file in the previous version of the game was 96.1 MB, and the program said it contained 152,788 files.
The resources.assets in the current version is 108 MB, but this time the program says it contains 244,477,845 files!

By the way, I use a Mac, and I run this program through Wine.

You do not have the required permissions to view the files attached to this post.

RaceDepartment

Search titles only


By:

Advanced search…

  • New posts

  • Search forums

Menu

Log in


Register


Navigation
Install the app
More options
Change style

Contact us
Close Menu

  • News

  • Forums

  • Sim Racing Games

  • My Summer Car

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

Unity Assets Explorer 1.5 (I have a link)


  • Thread starter

    LewetPenny


  • Start date

    Jul 4, 2018


  • 20

  • 92524

  • Tags

    my sumemr car

    unity assets explorer

  • Please help the earthquake victims in Turkey and Syria

  • Find the latest Fanatec products and deals here

L

LewetPenny


  • LewetPenny

  • Jul 4, 2018

  • #1

ive been looking for so long. heres what ive got. v1.5!!

Last edited by a moderator: Apr 7, 2021

Sort by date

Sort by votes

A

ahmadalk3c


  • ahmadalk3c

  • Jul 24, 2022

  • #21

I get an error when exporting assets. «Stream read error»

Upvote

0

Downvote


You must log in or register to reply here.

RaceDepartment Store

  • Fanatec Podium Wheel Base DD1


    • Featured
    • RaceDepartment
    • Oct 25, 2021
    • Racing Wheels / Wheel Bases

  • Fanatec CSL Elite Pedals V2


    • Featured
    • RaceDepartment
    • Sep 19, 2022
    • Pedals

  • Fanatec CSL DD F1 Esports Premium Bundle


    • Featured
    • RaceDepartment
    • Apr 19, 2022
    • Racing Wheels / Wheel Bases

Share:


Facebook


Twitter


Reddit


Pinterest


WhatsApp


Email


Link

News Articles Sidebar

  • Apex Point: Car Mechanic Simulator Meets Japanese Car Culture

    • Yesterday at 11:00

    • 12
    • Games

  • Ian Bell’s Straight4 Studios Launches Website, Showcases Key Staff

    • Wednesday at 20:00

    • 60
    • Games

  • MOZA RACING’s Flagship R21 DD Wheelbase is Now Back in Stock

    • Wednesday at 13:00

    • 8
    • Hardware

  • New Package Management System for rFactor 2

    • Wednesday at 00:00

    • 44
    • Games

  • Wait … GeneRally 2 is Coming? This Year?

    • Tuesday at 16:33

    • 14
    • Games

  • News

  • Forums

  • Sim Racing Games

  • My Summer Car

Top

Время прочтения
7 мин

Просмотры 188K

Когда речь идёт о программном обеспечении, термин «взлом» зачастую ассоциируют с пиратством и нарушением авторских прав. Данная статья не об этом; напротив, я решительно не одобряю любые действия, которые прямо или косвенно могут навредить другим разработчикам. Тем не менее, эта статья всё же является практическим руководством по взлому. Используя инструменты и методы о которых далее пойдёт речь, вы сможете проверить защиту собственной Unity игры и узнаете, как обезопасить её от взлома и кражи ресурсов.

Введение

В основе взлома лежит знание: необходимо понимать особенности компиляции Unity-проекта, чтобы его взломать. Прочитав статью, вы узнаете, каким образом Unity компилирует ресурсы игры и как извлечь из них исходные материалы: текстуры, шейдеры, 3D-модели и скрипты. Эти навыки будут полезны не только для анализа безопасности проекта, но также для его продвинутой отладки. В связи с закрытостью исходного кода, Unity часто работает как «черный ящик» и порой единственный способ понять, что именно в нём происходит — это изучение скомпилированной версии скриптов. Кроме прочего, декомпиляция чужой игры может стать серьёзным подспорьем в поиске её секретов и «пасхальных яиц». Например, именно таким образом было найдено решение финальной головоломки в игре FEZ.

Находим ресурсы игры

Рассмотрим для примера игру, собранную под ОС Windows и загруженную через Steam. Чтобы добраться до директории, в которой находятся нужные нам ресурсы, откроем окно свойств игры в библиотеке Steam и в закладке «Local files» нажмём «Browse local files…».

Когда Unity компилирует проект под Windows, ресурсы всегда упаковываются по схожей схеме: исполняемый файл (например, Game.exe) будет находится в корне директории игры, а по соседству расположится директория, содержащая все игровые ресурсы — Game_Data.

Извлекаем текстуры и шейдеры

Большинство ресурсов Unity-проекта упаковываются в файлы проприетарного формата с расширениями .assets и .resources. Наиболее популярный на сегодняшний день инструмент для просмотра таких файлов и извлечения из них ресурсов — Unity Assets Explorer.

Графический интерфейс программы не отличается удобством, а также она страдает от нескольких критических багов. Не взирая на это, программа вполне способна извлечь большинство текстур и шейдеров из игры. Полученные в результате текстуры будут иметь формат DDS, который можно «прочитать» с помощью Windows Texture Viewer.

С шейдерами ситуация обстоит сложнее: они извлекаются в уже скомпилированным виде и, насколько мне известно, решений для их автоматической трансляции в удобочитаемый формат не существует. Тем не менее, это обстоятельство не мешает импортировать и использовать полученные шейдеры в другом Unity-проекте. Не забывайте, однако, что подобная «кража» нарушает авторские права и является актом пиратства.

Извлекаем 3D-модели

Трёхмерные модели в типовой Unity-сборке «разбросаны» по различным ресурсам, а некоторые из них и вовсе могут генерироваться во время игры. Вместо копания в файлах, существует интересная альтернатива — получить данные о геометрии прямиком из памяти графического ускорителя. Когда игра запущена, вся информация о текстурах и моделях, видимых на экране, находится в памяти видеокарты. С помощью утилиты 3D Ripper DX можно извлечь всю эту информацию и сохранить в формате, понятном 3D-редакторам (например, 3D Studio Max). Учтите, что программа не самая простая в обращении — возможно, придётся обратиться к документации.

Взламываем PlayerPrefs

PlayerPrefs — это класс из стандартной библиотеки Unity, который позволяет сохранять данные в долговременную память устройства. Он часто используется разработчиками для хранения различных настроек, достижений, прогресса игрока и другой информации о состоянии игры. На ОС Windows эти данные сохраняются в системном реестре по следующему пути: HKEY_CURRENT_USERSoftware[company name][game name].

С помощью стандартной утилиты regedit можно легко модифицировать любые значения PlayerPrefs, изменяя тем самым конфигурацию и статус игры.

Защищаем PlayerPrefs

Помешать пользователю редактировать значения в системном реестре мы не в силах. А вот проверить, изменялись ли эти значения без нашего ведома — вполне реально. В этом нам помогут хеш-функции: сравнив контрольные суммы хранимых данных, мы сможем убедиться, что никто и ничто, кроме нашего кода эти данные не изменяло.

public class SafePlayerPrefs 
{
    private string key;
    private List<string> properties = new List<string>();

    public SafePlayerPrefs (string key, params string [] properties)
    {
        this.key = key;
        foreach (string property in properties)
            this.properties.Add(property);
        Save();
    }

    // Вычисляем контрольную сумму
    private string GenerateChecksum ()
    {
        string hash = "";
        foreach (string property in properties)
        {
            hash += property + ":";
            if (PlayerPrefs.HasKey(property))
                hash += PlayerPrefs.GetString(property);
        }
        return Md5Sum(hash + key);
    }

    // Сохраняем контрольную сумму
    public void Save()
    {
        string checksum = GenerateChecksum();
        PlayerPrefs.SetString("CHECKSUM" + key, checksum);
        PlayerPrefs.Save();
    }

    // Проверяем, изменялись ли данные
    public bool HasBeenEdited ()
    {
        if (! PlayerPrefs.HasKey("CHECKSUM" + key))
            return true;

        string checksumSaved = PlayerPrefs.GetString("CHECKSUM" + key);
        string checksumReal = GenerateChecksum();

        return checksumSaved.Equals(checksumReal);
    }

    // ...
}

Приведенный выше класс — упрощенный пример реализации, работающий со строковыми переменными. Для инициализации ему необходимо передать секретный ключ и список PlayerPrefs-ключей, значения которых должны быть защищены:

SafePlayerPrefs spp = new SafePlayerPrefs("MyGame", "PlayerName", "Score");

Затем его можно использовать следующим образом:

// Сохраняем данные в PlayerPrefs как обычно
PlayerPrefs.SetString("PlayerName", name);
PlayerPrefs.SetString("Score", score);

spp.Save();

// Проверяем, редактировались ли значения
if (spp.HasBeenEdited())
    Debug.Log("Error!");

При каждом вызове метода Save, на основе значений всех параметров, ключи которых были переданы классу при инициализации, вычисляется и сохраняется контрольная сумма. Используя метод HasBeenEdited мы затем можем проверить, изменялись ли защищенные параметры без нашего ведома.

Взламываем исходный код

Для Windows-сборок Unity компилирует и сохраняет исходный код всех игровых скриптов в директорию Managed. Интересуют нас следующие библиотеки: Assembly-CSharp.dll, Assembly-CSharp-firstpass.dll и Assembly-UnityScript.dll.

Для декомпиляции и просмотра managed-кода .NET библиотек (коими и являются наши жертвы) существуют довольно удобные и при этом бесплатные утилиты: IlSpy и dotPeek.

Данных подход особенно эффективен для наших целей: Unity очень скупо оптимизирует исходный код игровых скриптов, практически не изменяя его структуру, а также не скрывает названия переменных. Это позволяет с легкостью читать и понимать декомпилированый материал.

Защищаем исходный код

Раз Unity не заботится о сохранности нашего кода — сделаем это сами. Благо, существует утилита, готовая автоматически зашифровать плоды нашего интеллектуального труда: Unity 3D Obfuscator.

И хотя программа отлично справляется со своими обязанностями, многие классы, адресуемые извне родной библиотеки, всё же не могут быть зашифрованы без риска нарушения связанности — будьте осторожны!

Взламываем память игры

Cheat Engine — широко известная программа для взлома игр. Она находит ту область оперативной памяти, которая принадлежит процессу запущенной игры и позволяет произвольно её изменять.

Эта программа пользуется тем фактом, что разработчики игр очень редко защищают значения переменных. Рассмотрим следующий пример: в некой игре у нас есть 100 патронов; используя Cheat Engine, можно выполнить поиск участков памяти, которые хранят значение «100». Затем мы делаем выстрел — запас патронов составляет 99 единиц. Снова сканируем память, но теперь ищем значение «99». После нескольких подобных итераций можно с легкостью обнаружить расположение большинства переменных игры и произвольно их изменять.

Защищаем память игры

Cheat Engine столь эффективна от того, что значения переменных хранятся в своём изначальном виде, без какой-либо защиты. Серьёзно усложнить жизнь «читерам» довольно просто: нужно лишь немного изменить способ работы с переменными. Создадим структуру SafeFloat, которая послужит нам безопасной заменой стандартного float:

public struct SafeFloat 
{
    private float offset;
    private float value;

    public SafeFloat (float value = 0) 
    {
        offset = Random.Range(-1000, +1000);
        this.value = value + offset;
    }
	
    public float GetValue ()
    {
        return value - offset;
    }

    public void Dispose ()
    {
        offset = 0;
        value = 0;
    }

    public override string ToString()
    {
        return GetValue().ToString();
    }

    public static SafeFloat operator +(SafeFloat f1, SafeFloat f2) 
    {
        return new SafeFloat(f1.GetValue() + f2.GetValue());
    }

    // ...похожим образом перегружаем остальные операторы
}

Использовать нашу новую структуру можно следующим образом:

SafeFloat health = new SafeFloat(100);
SafeFloat damage = new SafeFloat(5);

health -= damage;

SafeFloat nextLevel = health + new SafeFloat(10);

Debug.Log(health);

Если вы выводите значения переменных на экран, хакеры всё ещё смогут перехватить и поменять их, но это не повлияет на действительные значения, хранящиеся в памяти и использующиеся в логике игры.

Заключение

К сожалению, существует не так уж много способов защитить игру от взлома. Будучи установленной на пользовательское устройство, она фактически раскрывает все ваши текстуры, модели и исходный код. Если кто-то захочет декомпилировать игру и украсть ресурсы — это лишь вопрос времени.

Невзирая на это, существуют действенные методы, которые позволят серьёзно усложнить жизнь злоумышленникам. Это не значит, что нужно вдаваться в панику, шифровать весь исходный код и защищать каждую переменную, но по крайней мере задумайтесь, какие ресурсы вашего проекта действительно важны и что вы можете сделать для их защиты.

Дополнительная информация

  • Unity3D Attack By Reverse Engineering: Интересная статья, описывающая распространённые ошибки безопасности при реализации систем подсчёта очков в играх на Unity;
  • disunity: Одна из лучших утилит для просмотра и извлечения ресурсов из Unity игр. К сожалению, она несовместима с последней версией движка;
  • Unity Studio: Программа для визуализации и извлечения 3D моделей. Также не работает с Unity 5.

Loading Resources at Runtime

Modifying Source Assets Through Scripting

Unity combines most Assets into a Project when it builds the Project. However, it is sometimes useful to place files into the normal filesystem on the target machine to make them accessible via a pathname. An example of this is the deployment of a movie file on iOSApple’s mobile operating system. More info
See in Glossary
devices; the original movie file must be available from a location in the filesystem to be played by the PlayMovie function.

Unity copies any files placed in the folder called StreamingAssets (case-sensitive) in a Unity Project verbatim to a particular folder on the target machine. To retrieve the folder, use the Application.streamingAssetsPath property. It’s always best to use Application.streamingAssetsPath to get the location of the StreamingAssets folder, as it always points to the correct location on the platform where the application is running.

The location returned by Application.streamingAssetsPath varies per platform:

  • Most platforms (Unity Editor, Windows, Linux players) use Application.dataPath + "/StreamingAssets",
  • macOS player uses Application.dataPath + "/Resources/Data/StreamingAssets",
  • iOS uses Application.dataPath + "/Raw",
  • Android uses files inside a compressed APKThe Android Package format output by Unity. An APK is automatically deployed to your device when you select File > Build & Run. More info
    See in Glossary
    /JAR file, "jar:file://" + Application.dataPath + "!/assets".

To read streaming Assets on platforms like Android and WebGLA JavaScript API that renders 2D and 3D graphics in a web browser. The Unity WebGL build option allows Unity to publish content as JavaScript programs which use HTML5 technologies and the WebGL rendering API to run Unity content in a web browser. More info
See in Glossary
, where you cannot access streaming Asset files directly, use UnityWebRequest. For an example, see Application.streamingAssetsPath.

On many platforms, the streaming assets folder location is read-only; you can not modify or write new files there at runtime. Use Application.persistentDataPath for a folder location that is writable.

Note: .dll and script files located in the StreamingAssets folder don’t participate in the script compilation.

Asset Bundles or Addressables are alternative ways of accessing content that is not part of regular game build data, and in many cases are preferred over Streaming Assets folder.

Loading Resources at Runtime

Modifying Source Assets Through Scripting

@martins-mozeiko Yes, I’ve downloaded the Asset Bundles, but the problem still goes on.

Sure, here is the full console output:


1. System.Windows.Forms.dll assembly is referenced by user code, but is not supported on StandaloneWindows64 platform. Various failures might follow.
UnityEditor.BuildPipeline:BuildPlayer(BuildPlayerOptions)
Simulator.Editor.Build:RunPlayerBuild(BuildTarget, String, Boolean) (at Assets/Scripts/Editor/Build.cs:647)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:202)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

2. Player build succeeded!
UnityEngine.Debug:Log(Object)
Simulator.Editor.Build:RunPlayerBuild(BuildTarget, String, Boolean) (at Assets/Scripts/Editor/Build.cs:661)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:202)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

3.  Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementHeight.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

4. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

5. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignalTrafficVerticalEmissive.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

6. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementNormal.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

7.  Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BlackSquare.jpg".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

8. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingEmission.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

9. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingsNormal.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

10. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignalTrafficVerticalAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

11. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignTrafficStopAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

12. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/MetalDiffuse.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

13. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/HazardStripesAlbedo.jpg".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

14. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/MetalNormal.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

15. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingsAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

16. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementIntensity.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:363)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

17. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementHeight.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

18. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

19. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignalTrafficVerticalEmissive.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

20. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementNormal.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

21. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BlackSquare.jpg".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

22. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingEmission.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

23. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingsNormal.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

24. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignalTrafficVerticalAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

25. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignTrafficStopAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

26. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/MetalDiffuse.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

27. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/HazardStripesAlbedo.jpg".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

28. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/MetalNormal.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

29. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingsAlbedo.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

30. Unrecognized assets cannot be included in AssetBundles: "Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementIntensity.png".
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

31. Could not create asset from Assets/External/Vehicles/Jaguar2015XE/Models/Materials/Jaguar2015XETireAlbedo.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

32. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingsAlbedo.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

33. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingEmission.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

34. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BuildingsNormal.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

35. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/BlackSquare.jpg: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

36. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementAlbedo.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

37. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignalTrafficVerticalAlbedo.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

38. Could not create asset from Assets/External/Vehicles/Jaguar2015XE/Models/Materials/Jaguar2015XETireEmissive.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

39.  Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/MetalDiffuse.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

40. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignalTrafficVerticalEmissive.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

41. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementHeight.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

42. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/SignTrafficStopAlbedo.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

43. Could not create asset from Assets/External/Vehicles/Jaguar2015XE/Models/Materials/Jaguar2015XETireNormal.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

44. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/HazardStripesAlbedo.jpg: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

45. Could not create asset from Assets/External/Vehicles/Jaguar2015XE/Models/Materials/Jaguar2015XETireMask.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

46. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/MetalNormal.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

47. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementNormal.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

48. Could not create asset from Assets/External/Environments/CubeTown/Models/CubeTown/Materials/PavementIntensity.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

49. Could not create asset from Assets/External/Vehicles/Jaguar2015XE/Models/Materials/Jaguar2015XEHeadLightLowCookie.png: File could not be read
UnityEditor.BuildPipeline:BuildAssetBundles(String, AssetBundleBuild[], BuildAssetBundleOptions, BuildTarget)
Simulator.Editor.Build:RunAssetBundleBuild(String, List`1, List`1) (at Assets/Scripts/Editor/Build.cs:375)
Simulator.Editor.Build:OnGUI() (at Assets/Scripts/Editor/Build.cs:210)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

50. FileNotFoundException: Could not find file "C:UsersRamón WilhelmDesktopBuildAssetBundles9f239caa-f361-4d45-a1b0-6087fae4c275_environment_textures"
System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) (at <7d97106330684add86d080ecf65bfe69>:0)
(wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
System.IO.File.Open (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) (at <7d97106330684add86d080ecf65bfe69>:0)
ICSharpCode.SharpZipLib.Zip.StaticDiskDataSource.GetSource () (at <d353c160b0bc4f95b4c40118f95da2f8>:0)
ICSharpCode.SharpZipLib.Zip.ZipFile+ZipUpdate.GetSource () (at <d353c160b0bc4f95b4c40118f95da2f8>:0)
ICSharpCode.SharpZipLib.Zip.ZipFile.AddEntry (ICSharpCode.SharpZipLib.Zip.ZipFile workFile, ICSharpCode.SharpZipLib.Zip.ZipFile+ZipUpdate update) (at <d353c160b0bc4f95b4c40118f95da2f8>:0)
ICSharpCode.SharpZipLib.Zip.ZipFile.RunUpdates () (at <d353c160b0bc4f95b4c40118f95da2f8>:0)
ICSharpCode.SharpZipLib.Zip.ZipFile.CommitUpdate () (at <d353c160b0bc4f95b4c40118f95da2f8>:0)
Simulator.Editor.Build.RunAssetBundleBuild (System.String folder, System.Collections.Generic.List`1[T] environments, System.Collections.Generic.List`1[T] vehicles) (at Assets/Scripts/Editor/Build.cs:391)
Simulator.Editor.Build.OnGUI () (at Assets/Scripts/Editor/Build.cs:210)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7d97106330684add86d080ecf65bfe69>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7d97106330684add86d080ecf65bfe69>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <7d97106330684add86d080ecf65bfe69>:0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:340)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:334)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:310)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:373)
UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:340)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:295)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:481)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:464)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:444)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/Events/MouseCaptureDispatchingStrategy.cs:93)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:189)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255)
UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)



Понравилась статья? Поделить с друзьями:
  • Unity assets explorer error wrong size dds
  • Unity asset store error
  • Unity an error occurred while resolving packages project has invalid dependencies
  • Unittest assert error
  • Unitiplayer dll ошибка