Страница 1 из 1

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

СообщениеДобавлено: 15 фев 2014, 21:28
maxik
При спавне игрока возникает проблема: его не видят другие игроки, а самое странное что его не видит и юнити в окне всех объектов на сцене! :-??

Прошу помощи в решении этой проблемы.

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

СообщениеДобавлено: 15 фев 2014, 21:42
beatlecore
дух джобса мне подсказывает что я должен вычислить ваш айпи, взломать вашего провайдера, подключиться к его бд, найти ваши данные, взломать ваш комп и качать сорцы вашего проекта, только после этого я смогу вам помочь

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

СообщениеДобавлено: 15 фев 2014, 23:45
John_Aizov
Отличная шутка B-)

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

СообщениеДобавлено: 16 фев 2014, 01:04
beatlecore
John_Aizov писал(а):Отличная шутка B-)

это в смысле покажите код как вы спавните игрока, и вообще я не в курсе как у вас там все организовано

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

СообщениеДобавлено: 16 фев 2014, 10:59
maxik
Функцию 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);
        }
}
 

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

СообщениеДобавлено: 20 фев 2014, 23:53
maxik
Спасибо. Сам розобрался

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

Нужно написать: PhotonNetwork.Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation, 0);