示例#1
0
    void CreateScenario(string scenarioName)
    {
        if (PhotonNetwork.isMasterClient)
        {
            if (scenarioCreated)
            {
                return;
            }
            scenarioCreated = true;
            Debug.Log("CreateScenario " + scenarioName);
            ScenarioSceneInfo scenarioToCreate = null;
            foreach (ScenarioSceneInfo scenario in scenarios)
            {
                if (scenario.name == scenarioName)
                {
                    scenarioToCreate = scenario;
                    break;
                }
            }

            if (scenarioToCreate != null)
            {
                GameObject scenarioGO = PhotonNetwork.InstantiateSceneObject(scenarioToCreate.scenarioScene.name,
                                                                             Vector3.zero, Quaternion.identity, 0, null);
                ScenarioScene scene = scenarioGO.GetComponent <ScenarioScene>();
                currentScenario = new ScenarioSceneInfo(scenarioToCreate.name, scene);


                if (onCreateScene != null)
                {
                    onCreateScene(currentScenario.scenarioScene);
                }
            }
        }
    }
示例#2
0
 void OnCreateSceneRPC()
 {
     if (currentScene == null)
     {
         currentScene = GameObject.FindObjectOfType <ScenarioScene>();
     }
     CreatePlayer();
 }
示例#3
0
        void OnCreateScene(ScenarioScene scene)
        {
            if (PhotonNetwork.isMasterClient)
            {
                photonView.RPC("OnCreateSceneRPC", PhotonTargets.Others);

                currentScene = scene;
                //Now we can create players
                CreatePlayer();
            }
        }
示例#4
0
        IEnumerator WaitToCreatePlayerCoroutine()
        {
            do
            {
                yield return(new WaitForSeconds(0.5f));

                currentScene = GameObject.FindObjectOfType <ScenarioScene>();
                if (currentScene != null && localPlayerController == null)
                {
                    //Scene was already created and OcCreateSceneRPC was missed
                    CreatePlayer();
                    RestoreRemotePlayers();
                    yield break;
                }
            } while (localPlayerController == null);
        }
示例#5
0
 public ScenarioSceneInfo(string name, ScenarioScene prefab)
 {
     this.name          = name;
     this.scenarioScene = prefab;
 }