- Home /
Awake and start functions execute twice in multiplayer game
Awake and start functions execute twice. Both on the server and the client. On the server when the client connects, on the client just 2 times after eatchother. Anyone with an idea's what may cause this behavior?
Because of this my server spawns 3 players (instead of 2) and on my client there are 4 (instead of 2)
Code:
function Awake()
{
if(Network.isServer)
{
Debug.Log("Server Awake function");
}
else if(Network.isClient)
{
Debug.Log("Client Awake function");
}
}
function Start()
{
if(Network.isServer)
{
Debug.Log("Server start function");
}
else if(Network.isClient)
{
Debug.Log("Client Start function");
}
}
Result:
Answer by Bluestrike · Nov 01, 2012 at 06:56 PM
This had something to do with my loadlevel being called from a networkview trough a rpc call.
I have a similar issue. Please, can you be more precise on how you resolved your problem? Thx :)
$$anonymous$$y load level was being called twice, I don't recall the exact situation anymore but I removed @RPC from a sertain function and no longer called that function trough an rpc.
Answer by markpdolby · Nov 01, 2012 at 02:34 PM
Use Network.isClient or Network.isServer as a condition before your awake and start code, using Network.isServer will only be true when the server runs the code and a client will not.
void Start(){
if(Network.isServer)
{
//Do code here
}
}
Ah ok, have you tried using the function OnPlayerConnected maybe? http://docs.unity3d.com/Documentation/ScriptReference/Network.OnPlayerConnected.html
It might be a more reliable way to spawn a player.
Your answer
Follow this Question
Related Questions
NetworkManagerHUD Component not found in MonoDeveloper? 1 Answer
Function that Runs Even on Disabled GameObjects 1 Answer
How to distinguish each characters in networkplay? 1 Answer
Accessing information and checking who's who in network game. 1 Answer
Most efficient way to structure a huge online "virtual world" 0 Answers