Такая проблема: раньше, когда игрок подключался к серву(один из игроков), а потом отключался, то камера сервера(одноги из игрока) отклбчалась и перекидывалась на камеру меню, но этот косяк убрал, получилось так:
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 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);
}
}
}