Почему не уничтожается клиент?
Такая проблема: раньше, когда игрок подключался к серву(один из игроков), а потом отключался, то камера сервера(одноги из игрока) отклбчалась и перекидывалась на камеру меню, но этот косяк убрал, получилось так:
PHP код:
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; } }
Но теперь появился такой баг, что когда игрок отключается от сервера, его объект(модель игрока) не уничтожается. Что делать?
Вот полный скрипт коннекта + спавн:
PHP код:
#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 g = Network.Instantiate(PlayerPrefab, transform.position, transform.rotation, 1); 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(ip, 5300); } if (GUI.Button(new Rect(10,55,100,20),"host")) { Network.InitializeServer(10, 5300, false); } } if(connected==true) { if (GUI.Button(new Rect(10,5,100,20),"disconnect")) { Network.Disconnect(200); } } }
|