Сеть.Создание ник-нейма при входе в игру..

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

Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 17:12

Всем привет. Мучаюсь с добавлением имени игрока.
Алгоритм таков:

запускаем игру, коннектимся. и тут же создается обьект player, который представляет из себя Go пустой. В него удочерены камера и модель космического корабля самого.
Контроллер игрока отключён. В середине экрана GUI, там предлагается ввести имя.выглядит это вот так:
Синтаксис:
Используется javascript

var PlayerName = "NoName...";//имя,которое будем вводить

public var on = false;//переменная, при отключении которой пропадает gui

var player : Transform;//трансформ игрока

var texte : Transform;//ссылка на трансформ 3d текста, в который будет вбиватсья наше имя

function Start(){

if(networkView.isMine)

on = true;//если networkView isme то появляется gui

}





function OnGUI(){

if(on)if(networkView.isMine){

PlayerName = GUI.TextField(new Rect(Screen.width/2.3f,Screen.height/2.1f,100,20),PlayerName); //ввод имени

 GUI.Label(new Rect(Screen.width/2.3f,Screen.height/2.3f,150,20),"EnterYourName:"); //просто текст

if(GUI.Button(new Rect(Screen.width/2.3f,Screen.height/1.9f,70,20),"login")){//кнопка логин

 



login();

 }



 }

 }





function login(){//сама функция



see = player.GetComponent("ControllerCorable");

see.onoff = true;

tx = texte.gameObject.GetComponent("TextMesh");

//tx.text = PlayerName;

on = false;



}

 


здесь вроде всё ок. Далее сам скрипт на обьекте 3d текста.

Синтаксис:
Используется javascript

public var cor : Transform;//ссылка на обьект, на котором висит предыдущий скрипт

function Update () {
 if(networkView.isMine)
  networkView.RPC("naaaame",RPCMode.All,new Vector3());  //вот тут я и не могу разобраться.

}

public function naaaame( location : Vector3){//сама функция назначения имени в 3dtext


te = GetComponent("TextMesh");
ss = cor.GetComponent("PlayerInfo");
te.text = ss.PlayerName;

}


оно работает, если убрать rpc.Но имя видно только своё. На остальных игроках написанно "hello world", то есть у меня не получается при входе в игру сообщить ВСЕМ, что на обьекте изменен 3d текст.
прошу помочь с rpc: что написать в скрипте чтобы имя игрока видели все, а не только он сам?
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение Левш@ 17 окт 2012, 17:22

networkView.RPC("naaaame",RPCMode.All,new Vector3()); //вот тут я и не могу разобраться.

А зачем ты имя в вектор3 передаешь ? Или что там у тебя ? Имя - это String. Вызов: networkView.RPC("Name", RPCMode.Others, name);
То что ты передаешь рпц правильно, но посылке приемник нужен на другой стороне - функция с одноименным названием (с большой буквы) и разрешением на вызов рпц. Прием: (@RPC function Name (name : String))
И почему Аll ? самому себе не нужно передавать... надо так: RPCMode.Other
Последний раз редактировалось Левш@ 17 окт 2012, 17:33, всего редактировалось 3 раз(а).
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 17:29

Хорошо, но я просто не могу вьехать..вот я этой строкой сказал мол у меня есть имя, а как сделать чтобы другие это получили?не понимает мой мозг этого rpc, хотя вроде и получалось до этого..я 2 дня всего этим занимаюсь))
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 17:30

и ещё:выдаёт он мне ошибку вот такую, и даже имя не назначает..

RPC call failed because the function 'naaaame' in 'ControlText' does not have the RPC attribute. You need to add the RPC attribute in front of the function declaration
UnityEngine.NetworkView:RPC(String, RPCMode, Object[])
ControlText:Update() (at Assets/Текстуры/Меню/ControlText.js:5)
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение trololoid 17 окт 2012, 17:31

@RPC
Вроде так на ясе пишется над функцией
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение Левш@ 17 окт 2012, 17:32

Вроде

Справку открыть вера не позволяет ? (popcorn1)
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение trololoid 17 окт 2012, 17:35

Нет, просто лень.
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение Левш@ 17 окт 2012, 17:35

Вызов: networkView.RPC("Name", RPCMode.Others, name);

Прием: @RPC function Name (name : String) {
GameObject.name = name;
}
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 17:50

Синтаксис:
Используется javascript
public var cor : Transform;

function Update () {

  networkView.RPC("naaaame",RPCMode.Others,name);  


}



@RPC
public function naaaame(name : String){


te = GetComponent("TextMesh");
ss = cor.GetComponent("PlayerInfo");
te.text = ss.PlayerName;

}




щас убьюсь об стену))..давно так не мучался над кодом,обычно всё получается..теперь вообще когда имя ввожу у меня ничего не передаётся..:D
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение Левш@ 17 окт 2012, 17:52

функция с одноименным названием (с большой буквы)

А что ты принимаешь? Передал аргумет - переменную name и нихрена ее не используешь... (popcorn1)
Зачем вообще передавал ? :D
Последний раз редактировалось Левш@ 17 окт 2012, 17:57, всего редактировалось 3 раз(а).
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 17:52

получается этот скрипт висит на 3dтексте, он сначала отслеживает переменную на пустом геймобьекте, а затем это переносит в компонент 3dtext ..может это дебильно но первое что пришло в голову..
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 17:54

Синтаксис:
Используется javascript
public var cor : Transform;

function Update () {

  networkView.RPC("Name",RPCMode.Others,name);  


}



@RPC
public function Name(name : String){


te = GetComponent("TextMesh");
ss = cor.GetComponent("PlayerInfo");
te.text = ss.PlayerName;

}



результат тот же
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 18:00

просто не могу вникнуть как это работает, вот и туплю..:D
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение Левш@ 17 окт 2012, 18:03

Так и работает, в переменную name помещаешь имя которое передаешь, а в приемнике с этой переменной получаешь то самое имя и передаешь значение уже *местной* переменной..
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Сеть.Создание ник-нейма при входе в игру..

Сообщение KorsaiR 17 окт 2012, 18:05

te = GetComponent("TextMesh");
ss = cor.GetComponent("PlayerInfo");
te.text = name;//помещаю здесь?
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

След.

Вернуться в Почемучка

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

Сейчас этот форум просматривают: GoGo.Ru [Bot], Google [Bot] и гости: 19