/// OnButtonUp /// Button event - when bumper is tapped: show summary /// Button event - when bumper is tapped again: reset scene private void OnButtonUp(byte controller_id, MLInput.Controller.Button button) { if (wallStat == WallStat.Summary) { if (button == MLInput.Controller.Button.Bumper) { scoreKeeper.ResetScore(); } else if (button == MLInput.Controller.Button.HomeTap) { summaryText.enabled = false; spawnMngr.enabled = false; scoreText.enabled = false; statusText.enabled = false; beamController.enabled = true; menu.SetActive(true); wallStat = WallStat.Menu; } } else if (wallStat != WallStat.Empty) // in settings or help page { settings.SetActive(false); helpText.enabled = false; wallStat = WallStat.Menu; menu.SetActive(true); } }
private void OnPlayspaceComplete() { canvas.SetActive(true); menu.SetActive(true); PlayspaceWall wall = Playspace.Instance.Walls[Playspace.Instance.PrimaryWall]; canvas.transform.position = wall.Center + Vector3.up * .3f; canvas.transform.rotation = Quaternion.LookRotation(wall.Back, Vector3.up); canvas.transform.Translate(Vector3.back * .1f); // pull the canvas up a bit to avoid coverup //SetPositionAndRotation(wall.Center, wall.Rotation); beamController.enabled = true; wallStat = WallStat.Menu; }
private void Awake() { MLInput.Start(); spawnMngr = GetComponent <SpawnManager>(); audioManager = GameObject.Find("AudioManager").GetComponent <AudioManager>(); scoreKeeping = GameObject.Find("[Content]/Controller").GetComponent <ScoreKeeping>(); trailAndBall = spawnMngr.trailAndBall.GetComponent <DisplayTrailAndBall>(); _control = MLInput.GetController(MLInput.Hand.Left); scoreText.enabled = false; summaryText.enabled = false; statusText.enabled = false; helpText.enabled = false; beamController.enabled = false; spawnMngr.enabled = false; menu.SetActive(false); canvas.SetActive(false); settings.SetActive(false); // update setting text to reflect current settings pathOn = trailAndBall.trails[0].activeSelf; if (GameObject.Find("[Content]/MLSpatialMapper/Original").GetComponent <Renderer>().material.mainTexture == null) { meshOn = false; } else { meshOn = true; } foreach (SettingType type in Enum.GetValues(typeof(SettingType))) { SetSettingText(type); } Playspace.Instance.OnCompleted.AddListener(OnPlayspaceComplete); Playspace.Instance.OnCleared.AddListener(OnPlayspaceClear); MLInput.OnControllerButtonUp += OnButtonUp; scoreKeeper.ScoreChange += OnScoreChange; beamController.OptionSelected += OnOptionSelected; wallStat = WallStat.Empty; }
private void OnOptionSelected(string tag) { // only called when in menu page if (tag == "play") { menu.SetActive(false); beamController.enabled = false; wallStat = WallStat.Summary; spawnMngr.enabled = true; scoreKeeper.ResetScore(); scoreText.enabled = true; summaryText.enabled = true; statusText.enabled = true; } else if (tag == "settings") { menu.SetActive(false); wallStat = WallStat.Setting; settings.SetActive(true); } else if (tag == "help") { menu.SetActive(false); wallStat = WallStat.Help; helpText.enabled = true; SetHelpText(); } // setting page interactions if (tag == "freq_plus") { // frequency convertion: // frequency level 1: 10 sec/spawn, lv2: 5 sec/spawn, lv3: 2.5 sec/spawn... // see SpawnManager.spawnInterval for more spawnMngr.SpawnFrequency = Min(spawnMngr.SpawnFrequency + 1, 7); SetSettingText(SettingType.Freq); } else if (tag == "freq_minus") { spawnMngr.SpawnFrequency = Max(spawnMngr.SpawnFrequency - 1, 1); SetSettingText(SettingType.Freq); } else if (tag == "BGM_plus") { audioManager.background.volume = Min(audioManager.background.volume + 0.1f, 1f); SetSettingText(SettingType.BGM); } else if (tag == "BGM_minus") { audioManager.background.volume = Max(audioManager.background.volume - 0.1f, 0f); SetSettingText(SettingType.BGM); } else if (tag == "sound_plus") { float newValue = Min(audioManager.grab.volume + 0.1f, 1f); audioManager.grab.volume = newValue; audioManager.crash.volume = newValue; audioManager.spawn.volume = newValue; SetSettingText(SettingType.Sound); } else if (tag == "sound_minus") { float newValue = Max(audioManager.grab.volume - 0.1f, 0f); audioManager.grab.volume = newValue; audioManager.crash.volume = newValue; audioManager.spawn.volume = newValue; SetSettingText(SettingType.Sound); } else if (tag == "path_control") { GameObject[] trails = spawnMngr.trailAndBall.GetComponent <DisplayTrailAndBall>().trails; if (pathOn) { foreach (GameObject obj in trails) { obj.SetActive(false); } pathOn = false; } else { foreach (GameObject obj in trails) { obj.SetActive(true); } pathOn = true; } SetSettingText(SettingType.Path); } else if (tag == "height_plus") { scoreKeeping.upLimit = Min(scoreKeeping.upLimit + 0.01f, 3f); SetSettingText(SettingType.Height); } else if (tag == "height_minus") { scoreKeeping.upLimit = Max(scoreKeeping.upLimit - 0.01f, 0f); SetSettingText(SettingType.Height); } else if (tag == "speed_plus") { trailAndBall.speed = Min(trailAndBall.speed + 0.1f, 3f); SetSettingText(SettingType.Speed); } else if (tag == "speed_minus") { trailAndBall.speed = Max(trailAndBall.speed - 0.1f, 0f); SetSettingText(SettingType.Speed); } else if (tag == "mesh_control") { if (meshOn) { GameObject.Find("[Content]/MLSpatialMapper/Original").GetComponent <Renderer>().material.mainTexture = null; meshOn = false; } else { Texture meshTexture = Resources.Load <Texture>("GradientLine"); GameObject.Find("[Content]/MLSpatialMapper/Original").GetComponent <Renderer>().material.mainTexture = meshTexture; meshOn = true; } SetSettingText(SettingType.Mesh); } else if (tag == "playspace_reset") { settings.SetActive(false); beamController.enabled = false; Playspace.Instance.Rebuild(); } else if (tag == "gamemode") { if (spawnMngr.timedMode) { spawnMngr.timedMode = false; spawnMngr.survivalMode = true; } else if (spawnMngr.survivalMode) { spawnMngr.survivalMode = false; } else { spawnMngr.timedMode = true; } //spawnMngr.timedMode = !spawnMngr.timedMode; SetSettingText(SettingType.GameMode); } else if (tag == "duration_plus") { spawnMngr.timeLimit += 30; SetSettingText(SettingType.Duration); } else if (tag == "duration_minus") { if (spawnMngr.timeLimit >= 60) { spawnMngr.timeLimit -= 30; } SetSettingText(SettingType.Duration); } Debug.Log("Option selected" + tag); }