Показать сообщение отдельно
Старый 02.01.2013, 15:34   #1
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Почему не уничтожается клиент?

Такая проблема: раньше, когда игрок подключался к серву(один из игроков), а потом отключался, то камера сервера(одноги из игрока) отклбчалась и перекидывалась на камеру меню, но этот косяк убрал, получилось так:
function OnPlayerDisconnected(pl:NetworkPlayer)
    {
        if(
networkView.isMine)
        {
            
Network.RemoveRPCs(pl);
            
Network.DestroyPlayerObjects(pl);
            
camera.enabled true;
            var 
bg:AudioListener;
            
bg gameObject.GetComponent(AudioListener);
            
bg.enabled true;
        }        
    } 
Но теперь появился такой баг, что когда игрок отключается от сервера, его объект(модель игрока) не уничтожается. Что делать?
Вот полный скрипт коннекта + спавн:
#pragma strict
#pragma implicit
#pragma downcast

     
var PlayerPrefab:GameObject;
    var 
ip "25.187.2.70";
    var 
connected:boolean;
    
    function 
Awake()
    {
        
Screen.showCursor true;
    }
    
    function 
CreatePlayer()
    {
        
connected true;
        var 
Network.Instantiate(PlayerPrefabtransform.positiontransform.rotation1);
        
g.camera.enabled true;
        
camera.enabled false;
        var 
bg:AudioListener;
        
bg gameObject.GetComponent(AudioListener);
        
bg.enabled false;
    }
    function 
OnDisconnectedFromServer(info:NetworkDisconnection)
    {
        
connected false;
        
Network.RemoveRPCs(Network.player);
        
Network.DestroyPlayerObjects(Network.player);
        
camera.enabled true;
        var 
bg:AudioListener;
        
bg gameObject.GetComponent(AudioListener);
        
bg.enabled true;
        
Application.LoadLevel(Application.loadedLevel);
    }
    function 
OnPlayerDisconnected(pl:NetworkPlayer)
    {
        if(
networkView.isMine)
        {
            
Network.RemoveRPCs(pl);
            
Network.DestroyPlayerObjects(pl);
            
camera.enabled true;
            var 
bg:AudioListener;
            
bg gameObject.GetComponent(AudioListener);
            
bg.enabled true;
        }        
    }
    function 
OnConnectedToServer()
    {
        
CreatePlayer();
    }
    function 
OnServerInitialized()
    {
        
CreatePlayer();
    }
    function 
OnGUI()
    {
        if (!
connected)
        {
            
ip GUI.TextField(new Rect(10,5,100,20),ip);
            if (
GUI.Button(new Rect(10,30,100,20),"connect"))
            {
                
Network.Connect(ip5300);
            }
            if (
GUI.Button(new Rect(10,55,100,20),"host"))
            {
                
Network.InitializeServer(105300false);
            }
        }
        if(
connected==true)
        {
            if (
GUI.Button(new Rect(10,5,100,20),"disconnect"))
            {
                
Network.Disconnect(200);
            }
        }
    } 
(Offline)
 
Ответить с цитированием