- Home /
Network Objects Sync Problems Before Client Connect
Hi guys my problem is sync objects BEFORE client connect server.
if my client connect server before nothing be changed everythings fine. i mean if i ll destroy some networkView object it losts every clients connected. but if i destroy something before client connection player can see that object when he arrives. but only his own game this object actually destroyed by onther player.
i have an idea i can create a listener and creata a file for every objects position scale and positions and when clients connect it can take values from that file.
but i really dont know how. i check lots of tutorials but didnt take any way.
is there any one can show me a way(function, class, document...) for this. or a tutorial worked for that.
and here is my jS file.
var oyunAdi = "OyunDeneme"; //its turkish, means gameName
var playerPrefab : GameObject;
var kameraPrefab : GameObject;
var spawnObject : Transform;
var spawnObject2 : Transform;
private var refreshing:boolean;
private var hostBilgi:HostData[];
private var btnX:float;
private var btnY:float;
private var btnW:float;
private var btnH:float;
function Start(){
btnX = Screen.width * 0.1;
btnY = Screen.width * 0.1;
btnW = Screen.width * 0.2;
btnH = Screen.width * 0.1;
}
function spawnPlayer(){
Network.Instantiate(playerPrefab, spawnObject.position, Quaternion.identity, 0);
//Network.Instantiate(kameraPrefab, spawnObject2.position, Quaternion.identity, 0);
}
function OnServerInitialized(){
Debug.Log("Server Kuruldu");
spawnPlayer();
}
function OnConnectedToServer(){
spawnPlayer();
}
function refreshHostList(){
MasterServer.RequestHostList(oyunAdi);
refreshing = true;
}
function Update(){
if(refreshing){
if(MasterServer.PollHostList().Length > 0){
refreshing = false;
Debug.Log(MasterServer.PollHostList().Length);
hostBilgi = MasterServer.PollHostList();
}
}
}
//mesajlar
function startServer(){
Network.InitializeServer(32, 25001, !Network.HavePublicAddress);
MasterServer.RegisterHost(oyunAdi, "Tutori game name", "This is tutorial");
}
function OnMasterServerEvent(mse : MasterServerEvent){
if(mse == MasterServerEvent.RegistrationSucceeded){
Debug.Log("Registered Server");
}
}
//GUI
function OnGUI(){
if(!Network.isClient && !Network.isServer){
if(GUI.Button(Rect(btnX, btnY, btnW, btnH), "Serverı Başlat")){
Debug.Log("Server başlatılıyor...");
startServer();
}
if(GUI.Button(Rect(btnX, btnY - 1.2 + btnH, btnW, btnH), "Serverı Yenile")){
Debug.Log("Server Yenileniyor...");
refreshHostList();
}
if(hostBilgi){
for (var i:int = 0; i<hostBilgi.length; i++){
if(GUI.Button(Rect(btnX * 1.5 + btnW, btnY * 1.2 + (btnH * i), btnW * 3, btnH*0.5), hostBilgi[i].gameName)){
Network.Connect(hostBilgi[i]);
}
}
}
}
}
Answer by akguldeniz · May 02, 2014 at 05:39 AM
i found out why. i was using
Network.Destroy(gameObject);
but i fix it with
Network.RemoveRPCs(networkView.viewID); Network.Destroy(gameObject);
Your answer
Follow this Question
Related Questions
Network - Sync Projectile 0 Answers
Syncing Random vars for NPCs 0 Answers
How to avoid spawn delay on client? 0 Answers
Network.Connect failed. 1 Answer