Сохранение веб-сборки в файлы с нужным именем и без папки

Общие вопросы о Unity3D

Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Zaicheg 07 фев 2011, 09:30

Нужно в Unity 3.1 через эдитор-скрипты делать веб-сборки без создания папки. То есть, чтобы просто .html + .unity3d в указанную папку собирало. Как в 2.6.1 было.

Синтаксис:
Используется csharp
BuildTarget target = BuildTarget.WebPlayer;
BuildOptions options = BuildOptions.None;
path = go.name + ".unity3d";
string errorBuild = BuildPipeline.BuildPlayer(levels, path, target, options);
 

Вот такой код соберёт в новую папку. При go.name == "4_1_2", это будет папка "4_1_2.unity3d", а внутри уже оба файла.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Paul Siberdt 07 фев 2011, 09:52

Спасибо, отлично!
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Zaicheg 07 фев 2011, 09:53

Пауль, это вопрос, а не решение. Я не знаю, как сохранить без создания папки и с нужными именами файлов )
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Paul Siberdt 07 фев 2011, 09:55

ха.. а я уже начал пробовать и столкнулся с как раз этим вопросом :D
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Zaicheg 07 фев 2011, 10:10

Сверхподстава. Я без автосборки нормальной не могу на тройку работу перенести, а на перенос сил ушло немало (попутно переписал всё с нуля). Если не решится к ночи, то напишу багрепорт, пока 3.2 выпустить не успели.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Paul Siberdt 07 фев 2011, 10:17

А батник написать внешний, что будет перебрасывать с папок файлы в нужное место? :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение Zaicheg 07 фев 2011, 10:45

Оказалось, что при сборке из вышеуказанного скрипта файлы внутри созданной папки имеют правильное имя (go.name), а не "WebPlayer.html" и "WebPlayer.unity3d", как я был уверен ещё полчаса назад. Так что, начатая мной по совету Пауля программка для переименования и перемещения в ход, видимо, и не пойдёт -- мне проще средствами Проводника сделать поиск в папке файлов по расширению и перекинуть их в нужную. Я то изначально боялся, что надо переименовывать ещё.

Тогда вопрос в догонку -- как провести сборку в фоновом режиме, чтобы Unity не вылезало на первый план и не перехватывало фокус ввода?
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Сохранение веб-сборки в файлы с нужным именем и без папки

Сообщение AndrewSt 07 фев 2011, 11:09

я пользуюсь вот таким методом:
Имя веб-сборки получается такое же как и у сцены.
Синтаксис:
Используется csharp
public class GroupBuilds : EditorWindow
{

        [MenuItem("Build/Group Builds")]
        static void Init()
        {
                String[] scenes = new String[]
                        {
                                "Assets/Scenes/scene_01.unity",
                                "Assets/Scenes/scene_02.unity",
                                "Assets/Scenes/scene_03.unity",
                                "Assets/Scenes/scene_04.unity",
                        };

                foreach (String scene in scenes)
                {
                        BuildScene(scene);
                }
        }

        static void BuildScene(string _nameScene)
        {
                String OutFile = _nameScene.Replace("Assets/Scenes", "BuildScenes").Replace(".unity", "");
                Debug.Log(OutFile);
                BuildPipeline.BuildPlayer(new String[] { _nameScene }, OutFile, BuildTarget.WebPlayer, BuildOptions.Development | BuildOptions.WebPlayerOfflineDeployment);
                String OutFileName = OutFile.Split('/')[1];
                FileUtil.CopyFileOrDirectory(OutFile + "/" + OutFileName + ".unity3d", "BuildScenes/" + OutFileName + ".unity3d");
                FileUtil.DeleteFileOrDirectory(OutFile);
        }
}
 


Вот только бы еще получать список сцен атоматически и было бы супер.
AndrewSt
UNIт
 
Сообщения: 72
Зарегистрирован: 10 дек 2009, 13:36
Откуда: СПБ
  • ICQ


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18