spawn игрока и его видемость для всех

spawn игрока и его видемость для всех

Сообщение maxik 15 фев 2014, 21:28

При спавне игрока возникает проблема: его не видят другие игроки, а самое странное что его не видит и юнити в окне всех объектов на сцене! :-??

Прошу помощи в решении этой проблемы.
maxik
UNец
 
Сообщения: 25
Зарегистрирован: 26 сен 2013, 18:52

Re: spawn игрока и его видемость для всех

Сообщение beatlecore 15 фев 2014, 21:42

дух джобса мне подсказывает что я должен вычислить ваш айпи, взломать вашего провайдера, подключиться к его бд, найти ваши данные, взломать ваш комп и качать сорцы вашего проекта, только после этого я смогу вам помочь
Аватара пользователя
beatlecore
Старожил
 
Сообщения: 964
Зарегистрирован: 05 фев 2013, 21:26
Откуда: Sun Crimea

Re: spawn игрока и его видемость для всех

Сообщение John_Aizov 15 фев 2014, 23:45

Отличная шутка B-)
John_Aizov
UNец
 
Сообщения: 18
Зарегистрирован: 28 сен 2013, 13:47

Re: spawn игрока и его видемость для всех

Сообщение beatlecore 16 фев 2014, 01:04

John_Aizov писал(а):Отличная шутка B-)

это в смысле покажите код как вы спавните игрока, и вообще я не в курсе как у вас там все организовано
Аватара пользователя
beatlecore
Старожил
 
Сообщения: 964
Зарегистрирован: 05 фев 2013, 21:26
Откуда: Sun Crimea

Re: spawn игрока и его видемость для всех

Сообщение maxik 16 фев 2014, 10:59

Функцию Spawning вызываем по нажатию кнопки NGUI.
Скрипт вешаю на камеру и задаю 4 пустых объекта которые служат точками спавна.

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using Hashtable = ExitGames.Client.Photon.Hashtable;

public class NetworkSpawn : Photon.MonoBehaviour {

        public GameObject Player;
        public GameObject Spawn1;
        public GameObject Spawn2;
        public GameObject Spawn3;
        public GameObject Spawn4;

        private GameObject Spawner;
        private int RandomSpawn;

        void Update () {
                RandomSpawn = Random.Range(1,5);
                if(RandomSpawn == 1){
                        Spawner = Spawn1;
                }
                if(RandomSpawn == 2){
                        Spawner = Spawn2;
                }
                if(RandomSpawn == 3){
                        Spawner = Spawn3;
                }
                if(RandomSpawn == 4){
                        Spawner = Spawn4;
                }
        }
        void Spawning () {
                Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation);
        }
}
 


После добавления RPC совсем не хочет работать: когда нажимаем на кнопку спавна ничего не работает и выписывает ошибку:

NullReferenceException: Object reference not set to an instance of an object
NetworkSpawn.Spawning () (at Assets/Fiels/Scripts/Multiplayer/Photon/Player/NetworkSpawn.cs:33)
UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions)
UIButtonMessage:Send() (at Assets/NGUI/Scripts/Interaction/UIButtonMessage.cs:57)
UIButtonMessage:OnClick() (at Assets/NGUI/Scripts/Interaction/UIButtonMessage.cs:38)
UnityEngine.GameObject:SendMessage(String, SendMessageOptions)
UICamera:ProcessTouch(MouseOrTouch, Boolean, Boolean) (at Assets/NGUI/Scripts/UI/UICamera.cs:451)
UICamera:Update() (at Assets/NGUI/Scripts/UI/UICamera.cs:330)


Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using Hashtable = ExitGames.Client.Photon.Hashtable;

public class NetworkSpawn : Photon.MonoBehaviour {

        public GameObject Player;
        public GameObject Spawn1;
        public GameObject Spawn2;
        public GameObject Spawn3;
        public GameObject Spawn4;

        private GameObject Spawner;
        private int RandomSpawn;

        void Update () {
                RandomSpawn = Random.Range(1,5);
                if(RandomSpawn == 1){
                        Spawner = Spawn1;
                }
                if(RandomSpawn == 2){
                        Spawner = Spawn2;
                }
                if(RandomSpawn == 3){
                        Spawner = Spawn3;
                }
                if(RandomSpawn == 4){
                        Spawner = Spawn4;
                }
        }
        [RPC]
        void Spawning () {
                photonView.RPC("Spawned", PhotonTargets.AllBuffered);
        }
        [RPC]
        void Spawned () {
                Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation);
        }
}
 
maxik
UNец
 
Сообщения: 25
Зарегистрирован: 26 сен 2013, 18:52

Re: spawn игрока и его видемость для всех

Сообщение maxik 20 фев 2014, 23:53

Спасибо. Сам розобрался

Вместо: Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation);

Нужно написать: PhotonNetwork.Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation, 0);
maxik
UNец
 
Сообщения: 25
Зарегистрирован: 26 сен 2013, 18:52


Вернуться в Photon

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

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