- Home /
Networked multiplayer with dedicated server
Hi everyone! Unity s driving me mad 'cause I've a project for which is needed networked multiplayer but up to now I cuoldn't figure out how to manage it. I made an .exe for the server which (by now) only manages connections and with this I mean, accepts connections and has the possibility to disconnect clients. In addition to this I created a "test" client with two scenes: the first simply asks the IP and port of the server and establishes the connection and loads the second in which we find a land, a skybox and a spawn point. in the second scene I placed
void Start () {
Transform s = transform.Find ("/SpawnPoint");
Network.Instantiate(Instance, s.position, s.rotation,0);
}
and the prefab linked to the Instance variable has a NetworkView component and a script for state syncronization with the following code
void OnNetworkInstantiate (NetworkMessageInfo info) {
if(!networkView.isMine){
gameObject.GetComponent<ThirdPersonController>().enabled=false;
gameObject.GetComponent<ThirdPersonCamera>().enabled=false;
}
}
void OnSerializeNetworkView (BitStream stream, NetworkMessageInfo info){
if(stream.isWriting){
Debug.Log("Writing...");
Vector3 posU = transform.position;
Quaternion rotU = transform.rotation;
stream.Serialize(ref posU);
stream.Serialize(ref rotU);
}else{
Debug.Log("Reading...");
Vector3 posD = Vector3.zero;
Quaternion rotD = Quaternion.identity;
stream.Serialize(ref posD);
stream.Serialize(ref rotD);
transform.position = posD;
transform.rotation = rotD;
}
}
All of this doesn't work at all. I'm going to explain: the first client connected spawns correctly the character, and the character is noticed as "mine" from the client so the control components are not removed. When the second client connects it is still notices as "mine" from the second client with all the consequences but both the spawn point and so the character are placed and spawned below the ground on the second client. The second character is spawned "correctly" (so in the correct position and without movement controls) on the first client which, however, does not moves according to the secon client's movements (so no correct sync).
Sure I'm missing something important in the client-server architecture so I'd like to ask you, more expert then me, if you have hints for me to put me on the right path.
Thank you in advance!!
Your answer
Follow this Question
Related Questions
Unity networking tutorial? 6 Answers
indie db hosting woes 1 Answer
Networking??? 2 Answers
Can you create a Stand alone server for your game? 0 Answers
can i use unity and php to develop a multi player game 2 Answers