Network Level Load freezes the Level

Unity version 4.3.3f1

Long story short: I have two connected players playing a game.

Then I try to load like this:

The call is done by an RPC, and all the code executes perfectly up to this point: networkView.RPC(“WinScreenGo”, RPCMode.All);

//
//
    [RPC]
    void WinScreenGo()
    {
        Debug.Log("RPC Received");
        NetworkLevelLoader.Instance.Loadlevel("WinScreen");
    }
 
public void Loadlevel(string levelName, int prefix = 0)
    {
        StopAllCoroutines();
        if (prefix == 0)
        {
            levelLoadPrefix++;
            prefix = levelLoadPrefix;
        }
        StartCoroutine(doLoadLevel(levelName, prefix));
    }
 
IEnumerator doLoadLevel(string name, int prefix)
    {
        Network.SetSendingEnabled(0, false);
        Network.isMessageQueueRunning = false;
 
        Network.SetLevelPrefix(prefix);
        Application.LoadLevel(name);
        yield return null;
        yield return null;
 
        Network.isMessageQueueRunning = true;
        Network.SetSendingEnabled(0, true);
    }

It just straight up crashes. I tried to change the level that gets loaded, etc.

When I test with a debug log, I see that the " networkView.RPC(“WinScreenGo”, RPCMode.All);" gets loaded, but the next debug log doesn’t even make it to the debugger before client and server freeze.

I’ve been stuck on this for weeks. Thoughts please?

In addition, I have a bit of an issue where a few RPC’s aren’t being called at the beginning of the level. The other RPC’s get called fine, and the game object is active, etc, but is seems like the RPC’s never get properly called. Similar experiences?

Hard to say without seeing the code that actually does the RPC call but my guess is that you’re not stipulating who is sending that RPC over the network. So, essentially, everyone is telling everyone to load the level.

Thank you for your response. But, unfortunately, that doesn’t seem to be the issue. The code in question:

if (NetworkConnectionManager.CurrentlyConnected Network.isServer)
{
Debug.Log(“RPC SENT”);
networkView.RPC(“WinScreenGo”, RPCMode.All);
}