как создать из обычного событие сетевое [закрыт]

145
16 сентября 2019, 08:40

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

Этот скрипт привязан к персонажу

public GameObject Rocket;
//ракеты спаунятся только у мастера
if (photonView.isMine)
{
//вызываем объект ракету и придаем ей силу
Instantiate(Rocket, transform.position + transform.forward * 2, transform.rotation);
}

Этот скрипт привязан к ракете

public int power;
void Start () 
{
gameObject.GetComponent<Rigidbody>().AddForce(transform.forward * power);
}
Answer 1

Лучше действительно указать, что используете Photon - а то приходится догадываться из самого кода, где у вас есть свойство PhotonView.IsMine

Сделать метод Instantiate сетевым достаточно просто - в скрипте, который привязан к персонажу, заменяем метод Instantiate(Объект для спауна, позиция, поворот) на сетевое PhotonNetwork.Instantiate("Имя объекта для спауна", позиция, поворот, группа (=0))

Объект с именем для спауна должен находится в папке Assets/Resources, и на нем должен быть навешан компонент PhotonView. Тогда всё получится и объект будет появляться у всех игроков в комнате.

Итоговый код для персонажа( у ракеты ничего менять не надо, только PhotonView навешать и в ресурсы префаб засунуть)

//ракеты спаунятся только у мастера
if (photonView.isMine)
{
//вызываем объект ракету и придаем ей силу
PhotonNetwork.Instantiate("Rocket", transform.position + transform.forward * 2, transform.rotation,0);
}
READ ALSO
C# Как разбить строку

C# Как разбить строку

В единственной строке входного файла INPUTTXT записана строка(без пробелов и чего либо еще) длиной от 1 до 50

127
Не вылазит окно с оплатой google play

Не вылазит окно с оплатой google play

Решил сделать свой донатный магазин в игре на unityЗарегестрировал в консоли гугл плей свои товары, сделал их активными

105