//pause or resume the game void pauseGame() { if (!gameInfo.First().GetComponent <GameInfo>().playing) { movingGO.First().GetComponentInChildren <LineRenderer>().positionCount = 0; movingGO.First().GetComponent <Move>().lineRendererPositions.Clear(); } bool gamePaused = gameInfo.First().GetComponent <GameInfo> ().gamePaused; foreach (FSystem s in FSystemManager.fixedUpdateSystems()) { if (s.ToString() == "ApplyForce" || s.ToString() == "MoveSystem") { s.Pause = !gamePaused; } } gameInfo.First().GetComponent <GameInfo> ().gamePaused = !gamePaused; gameInfo.First().GetComponent <GameInfo>().playing = true; Color uipColor = gameInfo.First().GetComponent <GameInfo>().uiParameters.GetComponent <Image>().color; Color uipdColor = gameInfo.First().GetComponent <GameInfo>().uipDelete.GetComponent <Image>().color; Color bpColor = gameInfo.First().GetComponent <GameInfo>().ballParameters.GetComponent <Image>().color; Color urColor = gameInfo.First().GetComponent <GameInfo>().uniformRotator.GetComponent <Image>().color; gameInfo.First().GetComponent <GameInfo>().uiParameters.GetComponent <Image>().color = new Color(uipColor.r, uipColor.g, uipColor.b, 75f / 255); //hide uiP gameInfo.First().GetComponent <GameInfo>().uipDelete.GetComponent <Image>().color = new Color(uipdColor.r, uipdColor.g, uipdColor.b, 75f / 255); //hide uiP delete button gameInfo.First().GetComponent <GameInfo>().ballParameters.GetComponent <Image>().color = new Color(bpColor.r, bpColor.g, bpColor.b, 75f / 255); //hide bP gameInfo.First().GetComponent <GameInfo>().uniformRotator.GetComponent <Image>().color = new Color(urColor.r, urColor.g, urColor.b, 75f / 255); //hide ur }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (Input.GetMouseButtonDown(0) && exit_GO.GetComponent <PointerOver>() != null) { ComponentMonitoring monitor = exit_GO.GetComponent <ComponentMonitoring> (); // Check if hero is near to exit (only hero can produce this component thanks to Unity Physics layers) Triggered3D triggered = exit_GO.GetComponent <Triggered3D> (); if (triggered != null) { MonitoringManager.trace(monitor, "perform", MonitoringManager.Source.PLAYER); GameObjectManager.setGameObjectState(endScreen_GO, true); foreach (FSystem sys in FSystemManager.fixedUpdateSystems()) { sys.Pause = true; } foreach (FSystem sys in FSystemManager.lateUpdateSystems()) { sys.Pause = true; } foreach (FSystem sys in FSystemManager.updateSystems()) { sys.Pause = true; } } } }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (!gameInfo.First().GetComponent <GameInfo>().triggered&& !gameInfo.First().GetComponent <GameInfo>().levelEditorMode) { gameInfo.First().GetComponent <GameInfo>().levelLost = false; foreach (GameObject target in obstacles) { Triggered3D t = target.GetComponent <Triggered3D>(); if (t) { //if the obstacle is triggered foreach (GameObject go in t.Targets) { //for each go that triggered the obstacle if (go.tag == "Object") { //if go is the ball foreach (FSystem s in FSystemManager.fixedUpdateSystems()) { if (s.ToString() == "ApplyForce" || s.ToString() == "MoveSystem") { s.Pause = true;//pause the game } } gameInfo.First().GetComponent <GameInfo>().gamePaused = true; gameInfo.First().GetComponent <GameInfo>().levelLost = true; gameInfo.First().GetComponent <GameInfo>().triggered = true; } } } } } gameInfo.First().GetComponent <GameInfo> ().levelLostText.SetActive(gameInfo.First().GetComponent <GameInfo>().levelLost); //show the text if the level is failed }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (!gameInfo.First().GetComponent <GameInfo>().triggered&& !gameInfo.First().GetComponent <GameInfo>().levelEditorMode) { gameInfo.First().GetComponent <GameInfo>().levelCleared = false; foreach (GameObject target in targets) { Triggered3D t = target.GetComponent <Triggered3D>(); if (t) { //if the target is triggered foreach (GameObject go in t.Targets) { //for each go that triggered the target if (go.tag == "Object") { //if go is the ball foreach (FSystem s in FSystemManager.fixedUpdateSystems()) { if (s.ToString() == "ApplyForce" || s.ToString() == "MoveSystem") { s.Pause = true;//pause the game } } gameInfo.First().GetComponent <GameInfo>().gamePaused = true; gameInfo.First().GetComponent <GameInfo>().levelCleared = true; gameInfo.First().GetComponent <GameInfo>().triggered = true; } } } } } gameInfo.First().GetComponent <GameInfo> ().levelClearedText.SetActive(gameInfo.First().GetComponent <GameInfo>().levelCleared); //show the text if the level is cleared if (editorMode && !gameInfo.First().GetComponent <GameInfo>().levelEditorMode) { if (gameInfo.First().GetComponent <GameInfo>().validating) { foreach (Transform child in gameInfo.First().GetComponent <GameInfo>().levelClearedText.transform) { if (child.gameObject.name == "Retry") { child.gameObject.GetComponentInChildren <Text>().text = "Validate"; } } } else { foreach (Transform child in gameInfo.First().GetComponent <GameInfo>().levelClearedText.transform) { if (child.gameObject.name == "Retry") { child.gameObject.GetComponentInChildren <Text>().text = "Retry"; } } } } editorMode = gameInfo.First().GetComponent <GameInfo>().levelEditorMode; }
public PauseGame() { foreach (FSystem s in FSystemManager.fixedUpdateSystems()) { if (s.ToString() == "ApplyForce" || s.ToString() == "MoveSystem") { s.Pause = true;//pause the game when level starts } } foreach (GameObject go in buttons) { if (go.name == "PauseButton") { go.GetComponent <Button>().onClick.AddListener(pauseGame);//add listener on pause button } } }
void resetBall() //reset ball parameters to the parameters set by the player { GameObject obj = movingGO.First(); Move mv = obj.GetComponent <Move> (); //set ball values to player values mv.direction = mv.playerDirection; mv.speed = mv.playerSpeed; obj.transform.position = mv.initialPostion; foreach (FSystem s in FSystemManager.fixedUpdateSystems()) { if (s.ToString() == "ApplyForce" || s.ToString() == "MoveSystem") { s.Pause = true; //pause game } } foreach (GameObject g in clickableGO) //unselect all objects { if (g.GetComponent <Clickable> ().isSelected) { g.GetComponent <Clickable> ().isSelected = false; } } //hide end game texts gameInfo.First().GetComponent <GameInfo> ().levelCleared = false; gameInfo.First().GetComponent <GameInfo> ().levelLost = false; gameInfo.First().GetComponent <GameInfo>().triggered = false; gameInfo.First().GetComponent <GameInfo> ().gamePaused = true; gameInfo.First().GetComponent <GameInfo>().playing = false;; Color uipColor = gameInfo.First().GetComponent <GameInfo>().uiParameters.GetComponent <Image>().color; Color uipdColor = gameInfo.First().GetComponent <GameInfo>().uipDelete.GetComponent <Image>().color; Color bpColor = gameInfo.First().GetComponent <GameInfo>().ballParameters.GetComponent <Image>().color; Color urColor = gameInfo.First().GetComponent <GameInfo>().uniformRotator.GetComponent <Image>().color; gameInfo.First().GetComponent <GameInfo>().uiParameters.GetComponent <Image>().color = new Color(uipColor.r, uipColor.g, uipColor.b, 1); //show uiP gameInfo.First().GetComponent <GameInfo>().uipDelete.GetComponent <Image>().color = new Color(uipdColor.r, uipdColor.g, uipdColor.b, 1); //show uiP delete button gameInfo.First().GetComponent <GameInfo>().ballParameters.GetComponent <Image>().color = new Color(bpColor.r, bpColor.g, bpColor.b, 1); //show bP gameInfo.First().GetComponent <GameInfo>().uniformRotator.GetComponent <Image>().color = new Color(urColor.r, urColor.g, urColor.b, 1); //show ur }