public void Init() { data = Data.Instance; game = Game.Instance; data.events.OnResetLevel += reset; data.events.OnSetFinalScore += OnSetFinalScore; data.events.OnAddExplotion += OnAddExplotion; data.events.OnAddWallExplotion += OnAddWallExplotion; data.events.OnAddObjectExplotion += OnAddObjectExplotion; data.events.OnAddHeartsByBreaking += OnAddHeartsByBreaking; data.events.StartMultiplayerRace += StartMultiplayerRace; data.events.SetVictoryArea += SetVictoryArea; charactersManager = game.GetComponent <CharactersManager>(); powerupsManager = GetComponent <PowerupsManager>(); floorManager = GetComponent <FloorManager>(); floorManager.Init(charactersManager); playing = true; powerupsManager.Init(); SetNewVideogameSettings(); if (Data.Instance.playMode == Data.PlayModes.VERSUS) { Area a = Data.Instance.versusManager.GetArea(); sceneObjects.replaceSceneObject(a, a.z_length / 2, 0, false); Area b = Data.Instance.versusManager.GetArea(); sceneObjects.replaceSceneObject(b, b.z_length / 2, 0, true); return; } //else if (Data.Instance.playMode == Data.PlayModes.COMPETITION ) // nextDistanceVictoryArea = distanceVictoryArea; areasX = 0; areaActive = null; missions = data.GetComponent <Missions>(); missions.Init(data.missions.MissionActiveID, this); areasManager = missions.getAreasManager(); areasManager.Init(1); areasLength = 0; if (!Data.Instance.isArcadeMultiplayer && !waitingToStart) // nunevo && !waitingToStart) { missions.StartNext(); } Invoke("Delayed", 0.5f); }