Photon Cloud. Вопрос про RPC
|
|
lakoris | Дата: Четверг, 16 Января 2014, 20:01 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Здравствуйте. Изучаю Photon Cloud, столкнулся с проблемой, связанной с RPC. Мне надо передавать по сети значение переменной, которая изменилась во время игры:
Код void OnTriggerEnter(Collider other) { if (other.tag != this.gameObject.tag){ var hppp = other.GetComponent<hp>(); hppp.curhp -= 100; }
Нужно передавать изменение значения переменной curhp. Если создавать дополнительный void, перенести последнюю строчку кода (hppp.curhp -= 100;) в него, и перед void поставить [RPC], а потом уже вызывать в OnTriggerEnter этот void с RPC, то выдаст ошибку, мол, я не знаю, что такое hppp.curhp.
Есть ли какие-либо догадки по данной проблеме?
|
|
| |
seaman | Дата: Четверг, 16 Января 2014, 21:51 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Цитата Есть ли какие-либо догадки по данной проблеме? Есть, конечно. Просто вы не знаете что такое "область видимости переменной" Переменная определенная внутри функции - снаружи не видна. PS^ совет - почитать книжки по программированию.
|
|
| |
lakoris | Дата: Четверг, 16 Января 2014, 22:08 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| seaman, Цитата seaman ( ) PS^ совет - почитать книжки по программированию. Вы меня оскорбили.
Цитата seaman ( ) Переменная определенная внутри функции - снаружи не видна. Я понимаю, что с этой переменой можно работать только внутри той функции, в которой мы ее "получили", но вопрос в другом: "Как решить данную проблему? Как обойти это?"
|
|
| |
Левша | Дата: Четверг, 16 Января 2014, 22:36 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| передавать нужные значения при вызове функции через аргументы.
NetworkView.RPC
X.cor.R (Prologue)
Сообщение отредактировал Левша - Четверг, 16 Января 2014, 22:37 |
|
| |
lakoris | Дата: Суббота, 18 Января 2014, 00:05 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Левша, можно пример?
|
|
| |
Левша | Дата: Суббота, 18 Января 2014, 03:12 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| lakoris, А по ссылке не пример ?
Код BlaBla(volume); // передача
function BlaBla (volume : int) { // прием var myVolume : int -= volume; }
X.cor.R (Prologue)
Сообщение отредактировал Левша - Суббота, 18 Января 2014, 03:19 |
|
| |
lakoris | Дата: Понедельник, 20 Января 2014, 18:56 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Левша, почитал насчет передачи параметров в другую функцию. Код void OnTriggerEnter(Collider other) { if (other.tag == this.gameObject.tag){ var hppp = other.GetComponent<hp>();
squareRef(ref hppp.curhp); photonView.RPC("squareRef",PhotonTargets.All); PhotonNetwork.Instantiate("Flame1", gameObject.transform.position, gameObject.transform.rotation, 0); PhotonNetwork.Destroy(gameObject);
}
} С помощью squareRef(ref hppp.curhp); я передаю значение переменной curhp, которое я получил в void OnTriggerEnter
А вот так принимаю этот параметр уже в другой функции: Код [RPC] public void squareRef(ref float refParameter){ refParameter -= 100; Debug.Log(refParameter); }
Но выбивает ошибочку Цитата PhotonView with ID 1009 has no method "squareRef" that takes 0 argument(s): .....
Ошибка как раз таки из-за [RPC] перед функцией squareRef. Попробовал убрать [RPC] - ошибка осталась. Насколько я понимаю, Юни не видит мой [RPC].
|
|
| |
Левша | Дата: Понедельник, 20 Января 2014, 19:17 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| у тебя в приемнике аргумент типа float, ты в него передаешь параметр PhotonTargets.All - это float ?
X.cor.R (Prologue)
|
|
| |
lakoris | Дата: Понедельник, 20 Января 2014, 19:26 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| Левша, PhotonTargets.All здесь - это, я так понимаю, цели. А после этого уже надо дописать параметр, котоырй передаю. Код photonView.RPC("squareRef",PhotonTargets.All, hppp.curhp); Снова ошибка вылазит: Цитата PhotonView with ID 1013 has no method "squareRef" that takes 1 argument(s): Single
|
|
| |
seaman | Дата: Понедельник, 20 Января 2014, 19:32 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| ref нафига?
|
|
| |
lakoris | Дата: Понедельник, 20 Января 2014, 19:53 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| seaman, Вот Добавлено (20.01.2014, 19:53) --------------------------------------------- lakoris, ну да, без ref ошибок нет, но то, что находится в void squareRef не выполняется теперь.
|
|
| |
Левша | Дата: Понедельник, 20 Января 2014, 20:15 | Сообщение # 12 |
почти ветеран
Сейчас нет на сайте
| Цитата lakoris ( ) Левша, PhotonTargets.All здесь - это, я так понимаю, цели. Ну так и я об этом...
X.cor.R (Prologue)
|
|
| |
lakoris | Дата: Понедельник, 20 Января 2014, 20:36 | Сообщение # 13 |
постоянный участник
Сейчас нет на сайте
| Левша, можешь меня в скайп добавить? Поговорим об этой проблеме. Надоело мне уже, все какие-то ошибки лезут)
|
|
| |