Подскажите принцип *РЕШЕНО*

Программирование на Юнити.

Подскажите принцип *РЕШЕНО*

Сообщение Ert Donuell 12 мар 2011, 01:35

Уважаемые, снова прошу Вашей помощи ;;)

Нужно разобраться с парой скриптов.. Мне нужно понять сам принцип - как мне действовать.

Итак, имеются:
[V] RegistrationArbitrationServer - Сервер, принимающий запросы и отправляющий ответы
[V] RegistrationServer - Скрипт (не MonoBehaviour), отсылающий запросы и принимающий ответы, имеющий функцию Register(..)
[V] MainMenu - Скрипт менюшки (MonoBehaviour)
Оба два скрипта лежат вне Standart Assets.

Указатели:
В скрипте меню есть ссылка на скрипт взаимодействия с сервером, обратной связи нет (не допёр как осуществить)

Проблема в следующем:
Из менюшки нажатием кнопки я отправляю запрос к функции регистрации, лежащей в скрипте взаимодействия с сервером. Она отправляет запрос к серверу. Сервер отправляет ответ скрипту взаимодействия с сервером (не функции регистрации, так что просто вернуть результат она не может). На этом всё кончается.

Выглядит всё так:

MainMenu.button -> RegistrationServer.Register(..)
RegistrationServer.Register(..) -> RegistrationServer
RegistrationServer -> RegistrationArbitrationServer
RegistrationArbitrationServer -> RegistrationServer

Хочется добавить

RegistrationServer -> RegistrationServer.Register(..)

или напрямую

RegistrationServer -> MainMenu.button


Задача
По нажатию кнопки в скрипте меню получить ответ сервера и отреагировать.

Глаза замылились, смотреть на эти скрипты нету больше сил x_x
Последний раз редактировалось Ert Donuell 12 мар 2011, 13:17, всего редактировалось 1 раз.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Подскажите принцип

Сообщение BlackMamba 12 мар 2011, 10:40

Ert Donuell писал(а):Задача
По нажатию кнопки в скрипте меню получить ответ сервера и отреагировать.
Глаза замылились, смотреть на эти скрипты нету больше сил x_x

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

Указатели:
В скрипте меню есть ссылка на скрипт взаимодействия с сервером, обратной связи нет (не допёр как осуществить) - надо реализовать :-?
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Подскажите принцип

Сообщение Ert Donuell 12 мар 2011, 12:41

В этом вся трудность. Я могу при получении данных вызвать функцию, но только из скрипта взаимодействия с сервером :(
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Подскажите принцип

Сообщение Ert Donuell 12 мар 2011, 13:00

Всё, кажись, справился :ymparty:

Решение нашёл такое:

Синтаксис:
Используется csharp
        if (GUI.Button(new Rect(ScreenMiddle - 100, 450, 200, 20), "Зарегистрироваться"))
        {
                registrationServer.Register(regLogin, regPassword, regSecretWord);
                StartCoroutine("WaitFor", "Registration");
                print(registrationResult);
        }

        private IEnumerator WaitFor(string replyType)
        {
                while (true) {
                        if (replyType == "Registration" && registrationServer.registrationResult != -1)
                        {
                                registrationResult = registrationServer.registrationResult;
                                registrationServer.registrationResult = -1;
                                StopCoroutine("WaitFor");
                        }
                        yield return null;
                }
        }


Спасибо за Ваш ответ)
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ


Вернуться в Скрипты

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

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