void unpressObject() { int x = Screen.width / 2; int y = Screen.height / 2; Ray ray = Camera.main.ScreenPointToRay(new Vector3(x, y)); RaycastHit hit; if (Physics.Raycast(ray, out hit, distance)) { Pressable p = hit.collider.GetComponent <Pressable>(); if (p != null) { anim = p.GetComponent <Animation>(); if (p.pressed) { if (!anim.IsPlaying("Pressed")) { anim.Play("Unpressed"); new WaitForSeconds(anim["Unpressed"].length); p.pressed = false; } } } } }
void press() { //if within range and pressed key, activate button if (Input.GetKeyDown(KeyCode.E)) { RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, distance)) { Pressable p = hit.collider.GetComponent <Pressable>(); if (p != null) { anim = p.GetComponent <Animation>(); if (!p.pressed) { if (!anim.IsPlaying("Unpressed")) { anim.Play("Pressed"); new WaitForSeconds(anim["Pressed"].length); p.pressed = true; } } } } } }
private void GetNewCurrentButton() { List <Gamepad> gamepadsToTest = new List <Gamepad>(); if (gamepadMode == GM.anyGamepad) { gamepadsToTest.Add(Hinput.anyGamepad); } if (gamepadMode == GM.individualGamepads) { gamepadsToTest = Hinput.gamepad; } if (inputMode == IM.anyInput) { gamepadsToTest.ForEach(gamepad => { if (gamepad.anyInput.pressed) { currentButton = gamepad.anyInput; } }); } if (inputMode == IM.individualInputs) { gamepadsToTest.ForEach(gamepad => { AllGamepadButtons(gamepad).ForEach(button => { if (button.pressed) { currentButton = button; } }); }); } }
// Start is called before the first frame update void Start() { gc = GameController.Instance; winTimer = 0; audioManager = GetComponent <AudioManager>(); moveCounter = 0; animationMode = false; // Get all boards GameObject[] boardList = GameObject.FindGameObjectsWithTag("Board"); boards = new BoardController[boardList.Length]; finishedStatus = new bool[boardList.Length]; for (int i = 0; i < boardList.Length; ++i) { BoardController tmp = boardList[i].GetComponent <BoardController>(); boards[tmp.boardNumber - 1] = tmp; tmp.ballIndicator.Initialize(boardList.Length, tmp.boardNumber - 1); } activateBoard(1); // Walls tWalls = new List <ToggleWall> [4]; for (int i = 0; i < 4; ++i) { tWalls[i] = new List <ToggleWall>(); } GameObject[] walls = GameObject.FindGameObjectsWithTag("ToggleWall"); foreach (GameObject o in walls) { ToggleWall tw = o.GetComponent <ToggleWall>(); tWalls[tw.type - 1].Add(tw); } // Buttons pressables = new List <Pressable>(); GameObject[] ps = GameObject.FindGameObjectsWithTag("Button"); foreach (GameObject p in ps) { Pressable prs = p.GetComponent <OneOffButton>(); if (!prs) { prs = p.GetComponent <PressurePlate>(); } pressables.Add(prs); } }
private void UpdateButtonHighLight(Pressable button, GameObject go, string input) { if (button.simplePress.pressed) { go.SetActive(true); text.text = "Hinput.gamepad[" + index + "]." + input; } else { go.SetActive(false); } }
private void OnTriggerExit(Collider other) { if (collisions.Count <= 0) { return; } Pressable pp = other.GetComponent <Pressable>(); if (pp) { pp.depress(); } collisions.Dequeue(); }
private void OnTriggerEnter(Collider other) { if (other.tag == "Killer") { moving = false; dead = true; audioManager.spikes.Play(); // Play dying animation return; } Pressable pp = other.GetComponent <Pressable>(); if (pp) { pp.press(); } collisions.Enqueue(other); }