Как передать массив из браузера в плеер??

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

Как передать массив из браузера в плеер??

Сообщение Battou 08 янв 2011, 20:19

Можно ли как-то передать массив из браузера в плеер? Пытался отправить таким способом, но не выходит:

Код на странице передающий массив:
Синтаксис:
Используется javascript
                                var arr = new Array();
                                arr.length = 3;
                                arr[1] = "one";
                                arr[2] = "two";
                                arr[0] = "zero";

                                GetUnity().SendMessage("GameObject","SetFriends", arr);
 


Код на объекте принимающий массив:
Синтаксис:
Используется javascript
function SetFriends(tex:Array){

from=tex[1];

}

function OnGUI () {
GUI.Label (Rect (10, 0, 500, 20), "Message:  " + from);
}
 



Не получается.( Если передавать только один элемент массива, например arr[1], но принять его ка строчку получается, а весь массив целиком не передаётся.( Как правильно передавать?
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08

Re: Как передать массив из браузера в плеер??

Сообщение Neodrop 08 янв 2011, 20:36

А вы справку пробовали читать? http://unity3d.com/support/documentatio ... ation.html
Передавать данные нужно строкой или Int или Float. Только один екземпляр.
A single string, integer or float argument must be passed when using SendMessage()

Рекомендую использовать JSON
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Как передать массив из браузера в плеер??

Сообщение Battou 08 янв 2011, 20:41

Опс. Понятно, спасибо.

Просто хотел так получать список друзей на ВКонтакте. Через:
Синтаксис:
Используется javascript
                                api.call('friends.get', {}, function(data){
                               
                                o = data.response;
                                GetUnity().SendMessage("VkontakteAPI","SetFriends","UserID:  " + o);
                               
                                });


Удобно получать данные, не мучаясь с подписями. Вот только думаю как передать.( У меня так и не получилось разобраться как отправлять запросы напрямую через юнити через WWW что бы ручками не считать каждый раз подпись. И как потом парсить JSON.


Можешь подсказать вариант??? Буду очень благодарен за этакий туториал. ^____^
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08

Re: Как передать массив из браузера в плеер??

Сообщение Neodrop 08 янв 2011, 20:47

Не буду. Под рукой нет, а времени на написание примера и в помине. Копай. На форуме было.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Как передать массив из браузера в плеер??

Сообщение Battou 08 янв 2011, 20:54

Была тема для создания скрипта для передачи запросов, но там был выложен просто код с фразой юзайте, а я пока новичёк и не взубногой как именно этот ког юзать. Я там отписался, но он в копилке и хз когда там кто-нить ответит.(((


Есть на форуме человек который сможет объяснить хотя бы как инфу из запроса friends.get или friends.getAppUsers передать в юнити?? Очень нужно.( К переменным и тп обратиться могу.
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08

Re: Как передать массив из браузера в плеер??

Сообщение eric 08 янв 2011, 23:39

Все верно в приведенном скрипте: получаете, и строкой отправляете в юнити. Там парсите JSON (поищите библиотеку JsonFx например).
Вообще вариантов много: либо описываем все необходимые обращения к VK. в отдельных функциях в js и обращаемся к ним из unity (Application.ExternalCall ) , либо делаем вызов VK прямо из юнити (Application.ExternalEval ), передавая функцию обратного вызова как параметр, ну или другие варианты.
eric
UNец
 
Сообщения: 38
Зарегистрирован: 12 июн 2010, 12:35

Re: Как передать массив из браузера в плеер??

Сообщение Battou 10 янв 2011, 09:10

Заделал через For отправку по пунктам масива и сборку его в Юнити. Не знаю насколько это правильно, зато получаем сразу массив в юнити. Только я думаю, а делать запросы со страницы - не слишком небезопасно? не сможет какой-нить умный игрок сделать себе страницу с редактированными запросами что бы скажем сделать миллион денег в игре, как пример?) Или нормально для простенькой игры?
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08

Re: Как передать массив из браузера в плеер??

Сообщение Fredo 10 янв 2011, 09:42

делаеш веб приложение, допустим на пхп и все критичные действия проверяеш на нем, делаеш запросы, допустим чтобы купить деньги, у него должны быть голоса, делаеш запрос веб приложение должно сделать запрос к вконтакте получить результат, если голоса есть делаеш запрос на снятие, если снялись, добавляеш человеку игровые деньги, и главное что все эти параметры ты должен хранить у себя в базе данных с которой работает веб приложение, можно и не веб сервер сделать все зависит от твоих потребностей.
Аватара пользователя
Fredo
UNITрон
 
Сообщения: 213
Зарегистрирован: 06 янв 2011, 05:37

Re: Как передать массив из браузера в плеер??

Сообщение Battou 14 янв 2011, 02:58

Ну я пока данные все (типа денег, зданий и тп) храню во внутренних переменных контакта, удобно что они там уникальны для каждого пользователя приложения. А запросы делаю через Джаву на странице с приложением. Это нормально?
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08

Re: Как передать массив из браузера в плеер??

Сообщение Fredo 14 янв 2011, 07:08

для работы с деньгами не нормально, потому что из javascript со страницы можно будет выдрать твой secure_secret который нужен для генерации хеша auth_key, и можно будет слать свои валидные запросы какие хочеш. Для работы с secure методами в обязательном порядке должено быть у тебя либо облако, либо выделенный сервер.

Да и вообще если ты даже не используеш secure методы, лучше держать облако, или сервер, потому что без проверки пользователя по auth_key, я смогу допустим слать всякую фигню от имя другого пользователя и она будет работать, допустим я отошлю запрос от имени друго пользователя на перечесление мне денег, и они мне перечислятся. Нада проверять совпадает ли хеш пользователя отославшего запрос с валидным хешем для этого пользователя (auth_key), и только после того как в этом убедился производить какието изменения игрового состояния.
Аватара пользователя
Fredo
UNITрон
 
Сообщения: 213
Зарегистрирован: 06 янв 2011, 05:37

Re: Как передать массив из браузера в плеер??

Сообщение Battou 14 янв 2011, 08:24

Угумс.... ну из программы мне как-то всё же надо запросы передавать и пока кроме как через вызов функции на странице через Application.ExternalCall я не знаю как. Есть какие-нить советы как правильно это организовать? Только если не сложно - чуть подробнее, я с серверами дел особо не имел и мне эти понятия достаточно далеки пока. ^_^
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08

Re: Как передать массив из браузера в плеер??

Сообщение Battou 14 янв 2011, 13:53

Кстати, а как это со страницы можно Секур-код вырвать если он нигде там не прописан?? Я пока говорю о программе без системы платежей, под деньгами я имел ввиду внутреигровые, а не голоса.)
Battou
UNIт
 
Сообщения: 116
Зарегистрирован: 24 ноя 2010, 18:08


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

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

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