Photon Cloud RPC изменение состояния объекта

Сеть в Unity3D

Photon Cloud RPC изменение состояния объекта

Сообщение AntonIV 11 июн 2017, 12:31

Здравствующие. Столкнулся с такой проблемой:

Есть объекты - игроки. У каждого игрока в качестве чайлдов есть набор пушек. На каждой пушке висит WeaponController, в котором содержится метод Fire. Вызов Fire производится в общем скрипте, отвечающим за стрельбу - ShootingController. А смена оружия обрабатывается в скрипте weapon switch

Вот примерный код:

Скрипт WeaponSwitch

private int currentWeapon;
public GameObject[] weapons;
public ShootinController sController;

if (button){

currentWeapon++;
photonView.RPC("Switch",PhotonTargets.ALL,currentWeapon);
}

[PunRPC]
public void Switch(int i){

sController.weaponController = weapons[i].GetComponent<WeaponController>();
}



Скрипт ShootingController:

public WeaponController weaponController;

if (button){

photonView.RPC("FireSync",PhotonTargets.ALL);
}

[PunRPC]
public void FireSync(){

weaponController.Fire();
}



Если исключить смену оружия, и в эдиторе вручную назначить weaponController, то все норм. Стрельба синхронизируется. Но если подключить это

[PunRPC]
public void Switch(int i){

sController.weaponController = weapons[i].GetComponent<WeaponController>();
}

то при вызове FireSync остальные игроки выдают ошибку о том, что weaponController в их ShootingController пуст. Т.е его назначение через RPC не происходит. В чем может быть беда ?
AntonIV
UNец
 
Сообщения: 20
Зарегистрирован: 02 сен 2014, 06:21

Re: Photon Cloud RPC изменение состояния объекта

Сообщение Woolf 11 июн 2017, 13:02

тег [csharp] (кнопочка CS в редакторе сообщения)
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Photon Cloud RPC изменение состояния объекта

Сообщение юnity 30 июн 2017, 20:36

Помоему в PhotonCloud привяязываются свойства к Transformy, а не к GameObjectам. Попробуй
Синтаксис:
Используется csharp

Скрипт WeaponSwitch

private int currentWeapon;
public Transform[] weapons;//так , может что получится
public ShootinController sController;

if (button){

currentWeapon++;
photonView.RPC("Switch",PhotonTargets.ALL,currentWeapon);
}

[PunRPC]
public void Switch(int i){

sController.weaponController = weapons[i].GetComponent<WeaponController>();
}
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30


Вернуться в Сеть

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

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