9 / 9 / 0
Регистрация: 16.03.2014
Сообщений: 136
|
||||||
1 | ||||||
Добавление пользовательских файлов в проект25.02.2015, 14:34. Показов 7807. Ответов 11
Метки нет (Все метки)
Здравствуйте сейчас у меня есть меню где игрок может выбрать себе аватарку из 10 доступных по умолчанию аватарок.
Я храню их в папке Assets/StreamingAssets/AvatarsPlayers Но мне нужно как то добираться до этой папки при старте и загружать всё что есть в папке в массив. Мне нужно чтобы игрок мог добавлять в эту папку свои аватарки или удалять те что в игре по умолчанию. Раньше я хранил эти изображения в папке Resources. И конечно же добирался до них с помощью Resources.LoadAll(""). Но когда проект компилировалься игрок не мог забросить в эту папку свои аватарки так как эти файлы от игрока скрыты и он не мог их удалить. Даже если забросить туда новые файлы игра их не видела. Поэтому по совету добрых людей я стал пользоваться папкой с именем StreamingAssets которая не шифруеться при компиляции проекта. Но как теперь добраться до этих файлов? Как задать им настройки которые я могу задавать для текстур импортированных в проект с помощью окна инспектора. Мне посоветовали добираться через WWW. Но после прочтения документации я так и не нашёл примеров как добраться до этих файлов и как поместить их в массив. На данный момент есть вот такой код который конечно же не работает. потомучто я не понимаю как пользоваться www
0
|
25.02.2015, 14:34 | |
Ответы с готовыми решениями:
11
Добавление .so файлов в проект Eclipse Добавление в проект исполняемых файлов Добавление пользовательских ip маршрутов для Android и IOS Добавление пользовательских элементов управления по нажатию на кнопку |
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
|
|
25.02.2015, 18:30 | 2 |
Сообщение было отмечено SERG__ZV как решение
Решение
Если хранить аватарки локально то Texture2D.LoadImage если на сервере WWW.texture. Для получения списка локальных файлов в определенной папке Directory.GetFiles. Для получения и загрузки файлов на сервер - надо писать свой бэк-энд
1
|
9 / 9 / 0
Регистрация: 16.03.2014
Сообщений: 136
|
|
26.02.2015, 17:45 [ТС] | 3 |
Спасибо буду пробовать.
Добавлено через 14 часов 50 минут А разве Directory.GetFiles возвращает не имена файлов? Мне нужны сами файлы... Добавлено через 4 часа 52 минуты Почему когда я ищу с помощью getfiles путь к моим аватарам находиться по два типа одного и того же файла? Обычный png и meta какой то.. D:/Other files/Unity files/Slide/Slide_v0.0.1_GUI(Legacy)/Assets/StreamingAssets/AvatarsPlayers/EightAvatar.png D:/Other files/Unity files/Slide/Slide_v0.0.1_GUI(Legacy)/Assets/StreamingAssets/AvatarsPlayers/EightAvatar.png.meta Добавлено через 5 минут что это за meta и как его отфильтровывать при поиске?
0
|
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
|
|
26.02.2015, 18:30 | 4 |
1) при таком подходе тебе не надо их в проект класть, рядом в папочку отдельную, тогда не будет meta.
2) можешь грузить файлы из папки через WWW, только указав протокол file:// (file://D:/Other files...) либо через LoadImage и File.ReadAllBytes
1
|
9 / 9 / 0
Регистрация: 16.03.2014
Сообщений: 136
|
||||||
27.02.2015, 10:43 [ТС] | 5 | |||||
Я гружу сейчас через WWW
Но раз при таком способе нужно указывать имя каждого файла вот мне и пригодилься метод Dirrectory.GetFiles буду пихать имена в массив а потом в цикле перебирать и скармливать их WWW. Но сейчас он ищет половину лишних файлов. Я не понял как это ложить не в проект а в папку рядом? и как это поможет мне с meta? что это вообще такое? Добавлено через 38 минут Ура получилось можно фильтровать вот таким способом NamesAv = Directory.GetFiles(Application.streamingAssetsPath + "/AvatarsPlayers/", "*.png"); Про подстановочные знаки нужно было в mdsn почитать.
0
|
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
|
|
27.02.2015, 10:54 | 6 |
.meta файл это файл с настройками импорта для ассета. создается для каждого файла и папки в проекте.
проект у тебя D:/Other files/Unity files/Slide/Slide_v0.0.1_GUI(Legacy)/, а папку с аватарами создаешь D:/Other files/Unity files/Slide/Avatars
1
|
9 / 9 / 0
Регистрация: 16.03.2014
Сообщений: 136
|
|
27.02.2015, 11:42 [ТС] | 7 |
Ага а игроки тоже после установки игры должны создавать отдельную папку для аватаров?
Добавлено через 1 минуту спасибо буду знать а я то думал это png вместе с собой держит миникопию себя или чтото типо этого.
0
|
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
|
|
27.02.2015, 14:50 | 8 |
если у тебя есть установщик, то это его силами можно сделать. хранить то что пользователь может менять в папке с игрой - плохой вариант, UAC/разделение между пользователями/ипр лучше использовать Application.persistentDataPath и не забыть установщику добавить чтоб он при удалении грохал это добро.
1
|
9 / 9 / 0
Регистрация: 16.03.2014
Сообщений: 136
|
|
27.02.2015, 18:16 [ТС] | 9 |
Почему плохой папка StreamingAssets для этого и нужна разве нет? Вот статья. http://docs.unity3d.com/ru/cur... ssets.html
Нет до установщика я к сожалению ещё не дошёл. Добавлено через 8 минут В общем всё работает спасибо за помощь.
0
|
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
|
|
27.02.2015, 19:29 | 10 |
Эта папка нужна для хранения ассетов, которые пользователь не будет менять, но которые доступны как обычные файлы.
Возможные проблемы при использовании этой папки: 1) когда ты завернешь игру в установщик и пользователь её поставит в Program Files (лучше конечно в D:\Games , но мало ли), он не сможет загрузить свои аватарки кроме как запуском игры от имени администратора. 2) когда несколько учетных записей на компьютере пользователи будут регулярно переписывать аватарки друг друга.
1
|
9 / 9 / 0
Регистрация: 16.03.2014
Сообщений: 136
|
|
27.02.2015, 22:12 [ТС] | 11 |
2) для этого у меня несколько профилей в игре предусмотрено. 50 аватарок на выбор 1 на каждый профиль которую потом можно сменить.
насчёт первого ни знаю думаю редкая проблема чтобы беспокоиться. У меня компьютер не просит права администратора я вырубил эту бесполезную функцию. Но за критику спасибо всегда интересно мнение опытных людей в этом деле.
0
|
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
|
|
27.02.2015, 22:23 | 12 |
https://www.cyberforum.ru/viruses/
ну такое себе, спорное решение, для инди сойдёт
1
|
27.02.2015, 22:23 | |
27.02.2015, 22:23 | |
Помогаю со студенческими работами здесь
12
Добавление пользовательских элементов управления на форму, в частности, ButtonChrome Qt creator. Не удается добавить стороннюю библиотеку в проект cmake (добавление в проект boost/algorithm) Windows + регистрирование пользовательских форматов файлов Как снести виндоус на hdd без потери пользовательских файлов и установить на ssd Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |