Интеграция собственного лаунчера в Юнити

Лучший способ помочь другим, поделиться своими находками.

Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 20 сен 2012, 09:54

Здравствуйте.
Собственно назрел вопрос.
Ребята подскажите каким образом можно заменить стандартный лаунчер на свое приложение?

по пунктам:
1. стандартный лаунчер что запускает? есть ли возможность запустить самому ?
2. Если нет, тогда если вас не затруднит объясните как интегрировать свою программу в юнити
пс предполагается что программным путем (С#)


не сочтите за неуважение но поиск искал по тегам лаунчер, загрузчик, laucher результата на свою тему не нашел
за ранее спасибо.
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение waruiyume 20 сен 2012, 10:30

Может сохранить настройки в файл и прочесть после запуска?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 20 сен 2012, 10:43

я не понимаю что именно стартует стандартный встроенный лаунчер!
С настройками чтения и сохранения проблем не возникнет.

К примеру стандартный лаунчер юнити стартует из папки такой то бла бла.exe
если так то не вопрос просто я не знаю что запускать. создать ини файл с настройками и запустить процесс не проблема, просто для этого мне нужно просто знать что запускать.
или я опять чего то не понимаю?
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение waruiyume 20 сен 2012, 10:50

Скрыть стартовый диалог и запускать экзешник?
Скрытый текст:
Изображение
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Интеграция собственного лаунчера в Юнити

Сообщение bojlahg 20 сен 2012, 11:00

1. отключить дефолтный лаунчер
2. написать свой ланчер (например на том же C#)
3. запускать игру со параметрами командной строки
4. получать параметры командной строки из System.Environment.CommandLine и System.Environment.CommandLineArgs
...
5. PROFIT!
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 20 сен 2012, 11:58

Спасибо! Буду пробовать.
НО если честно не фига не понял с того места после отключения дефолтного лаунчера.
Свои писать буду в борланде на с++.

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

для тех кто в танке плз ребят
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение mrcoder 20 сен 2012, 13:11

нет никакого лаунчера в юнити. это часть юнити.
как убрать этот диалог вам показали.
пишите свою отдельную программу(лаунчер), которая при нажатии кнопки Play будет запускать Ваш скомпиленныйюнитипроект.exe
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Интеграция собственного лаунчера в Юнити

Сообщение bojlahg 20 сен 2012, 13:22

SkyMD писал(а):Спасибо! Буду пробовать.
НО если честно не фига не понял с того места после отключения дефолтного лаунчера.
Свои писать буду в борланде на с++.

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

для тех кто в танке плз ребят


При запуске юнити разбирать командную строку, применять параметры (разрешение и тд), сохранять их в файл если нужно.

Еще проще можно: писать собственным лаунчером выбранные настройки в xml файл. стартовать скомпиленую игру. А уже из игры читать файл.

А вообще лаунчер юнити лучше использовать. Свой нужно писать если есть необходимость делать обновление игры из инета.
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 20 сен 2012, 13:23

Вот уже теплее стало! Значит если я убираю (отключаю стандартный лаунчер) то юнити мне скомпилит чистый екзе файл игры без лаунчера я верно понял?
далее когда я стартую это екзе файл своим лаунчером все верно?
именно в этом и суть что за ранее готовлюсь к этому чтобы обновятся и все такое.

Всем спасибо ушел пробывать
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 20 сен 2012, 14:48

Не покажете как с настройками разобрались?
Если не секрет т, не тайна? имею ввиду как с ини файла считали в юнити?

пс для разных платформ на ура может сделать QT
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение Receptor 20 сен 2012, 17:51

Синтаксис:
Используется csharp
using UnityEngine;
using System;
using System.Collections;
using System.IO;
using System.Text;

public class GameSettings : MonoBehaviour {

public int selectedResolution;
        static int selectedTextureQuality;
        public static int globalSelectedTextureQuality;
        public int selectedAntialisingQuality;
        public static int globalSelectedAntialisingQuality;
        public int selectedShadowsQuality;
        public static int globalSelectedShadowsQuality;
        public bool windowMode;
        static public bool showFPS;
       
        public Resolution[] resolutions;
       
        public string[] readArray;

void Awake(){

readArray = File.ReadAllLines("Settings/settings.ini");

                selectedResolution = Convert.ToInt32(readArray[0]);
                windowMode = Convert.ToBoolean(readArray[1]);
                selectedTextureQuality = Convert.ToInt32(readArray[2]);
                selectedAntialisingQuality = Convert.ToInt32(readArray[3]);
                selectedShadowsQuality = Convert.ToInt32(readArray[4]);
                showFPS = Convert.ToBoolean(readArray[5]);
               
               
                Screen.SetResolution(Screen.resolutions[selectedResolution].width,Screen.resolutions[selectedResolution].height, Screen.fullScreen = windowMode);
               
                globalSelectedTextureQuality = selectedTextureQuality;
                globalSelectedAntialisingQuality = selectedAntialisingQuality;
                globalSelectedShadowsQuality = selectedShadowsQuality;
       
        }

 
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 20 сен 2012, 19:47

Огромное респектище. Спасибо большое этим вы помогли не только мне поверьте.

Я в свою очередь так же создам мануал как создать лаунчер в борланд с++ билдер.

В ближайшем будущем дня 3 может раньше как освобожусь.
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 21 сен 2012, 13:04

Всем привет еще раз

Создал длл
читает данные с ини файла и также записывает

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

Далее как быть, а точнее пока игра не откомпилирована и работаю с нею в в юнити, куда кинуть этот файл? Или просто временно указать полный путь от папки релиза, А когда буду компилировать то уже не явный, типо "config\config.ini".
Не ругнется ли юнити?

я все верно понимаю или нет? ткните носом меня плз
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

Re: Интеграция собственного лаунчера в Юнити

Сообщение Receptor 21 сен 2012, 17:35

Я прописывал путь "Settings/settings.ini". Что бы в самом редакторе Юнити понимала что эта за директория, папку нужно создавать не в Asset, а в корне, т.е. перед Asset, и будет читать все ок. А при билде уже надо кидать в папку с экзешником соответсвенно :)

Еще кстати лучше написать инструкцию допольнительно на тот случай, если файла "настройки" не окажется где нужно, что бы было оповещение или еще лучше, что бы файл создавался сам.
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Интеграция собственного лаунчера в Юнити

Сообщение SkyMD 21 сен 2012, 17:54

Ну в общем так.
Часть первая:


скачиваем файл [dll] тут

В Юнити создаем папку plugin

создаем новый класс C#
имя на свое усмотрение

у меня это выглядит так
Синтаксис:
Используется csharp
public class ireader : MonoBehaviour
{
...
}
 


далее добавляем директиву или как оно называется в шарпе

Синтаксис:
Используется csharp
using using IFile;


после всего этого вам станет доступен класс ини файла TiniFiles

создайте экземпляр класса в конструкторе которого укажите путь до вашего ини файла

Синтаксис:
Используется csharp
TiniFiles readers = new TiniFiles("ваш диск:\\папка\\файл.ini");


в классе доступны два метода

метод чтения файла

Синтаксис:
Используется csharp
GetEntryValue(string Section, string Key)


метод записи

Синтаксис:
Используется csharp
IniWriteValue(string Section, string Key, string Value)


если на примере ини файла

Синтаксис:
Используется csharp
[display]
Width =1440
Height =900
 


то к обратится к ширине раздела display можно так
Синтаксис:
Используется csharp
int width = int.Parse(readers.GetEntryValue("display", "Width").ToString());


соответственно запись в файл
Синтаксис:
Используется csharp
int a = 1024;
IniFiles.IniWriteValue("display", "width", a.ToString());
 


ну вот как то так. Прошу не кидаться в меня тухлыми яйцами на шарпе около недели

далее следующем посте создадим лаунчер средствами Embarcadero Rad Studio C++ Builder
Аватара пользователя
SkyMD
UNец
 
Сообщения: 21
Зарегистрирован: 18 окт 2010, 12:20
Откуда: Moldova Republic OF states Chishington

След.

Вернуться в Исходники (Копилка)

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

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