/// <summary> /// Give player enough time to leave the elevator before the gate closes behind them. /// </summary> /// <param name="otherObject"></param> /// <returns></returns> private IEnumerator WaitToCloseGate(GameObject otherObject) { // Open the gate. gateAnimator.SetTrigger("Open"); gateAnimator.GetComponent <AudioSource>().Play(); // Activate the SOS task. SOSTaskSequence.SetActive(true); if (PressedButton != null) { PressedButton.Invoke(); } // HACK. Robert - I may have made a bad decision when I added the argument at the very end of InteractWithSelectedObject.cs. // I passed the GameObject's root, rather than the GameObject itself. I feel like I can only explain the consequences of this decision in person, however. // For now, suffice to say that this line works, it will likely always work, but it is a hack all the same. GameObject.FindGameObjectWithTag("Player").transform.SetParent(null); // Deactivate the elevator gate collider. elevatorGate.SetActive(false); // Give the player the opportunity to leave. yield return(new WaitForSeconds(waitTime)); // Activate the gate collider again. elevatorGate.SetActive(true); // Close the gate. gateAnimator.SetTrigger("Close"); gateAnimator.GetComponent <AudioSource>().Play(); }
private void OnButtonRelease(PointerEventData eventData) { if (eventData.pointerPressRaycast.gameObject == buttonsDictionary[current].gameObject) { PressedButton?.Invoke(UI.PressedButton.None); } }
public void Interact(GameObject interactingAgent) { PlaySound(); TurnOffEmission(); DisableSOSCanvas(); DisableCollision(); if (PressedButton != null) { PressedButton.Invoke(); } }
private void OnButtonPressed(PointerEventData eventData) { current = buttonsDictionary.Single(x => x.Value.gameObject == eventData.pointerPressRaycast.gameObject).Key; PressedButton?.Invoke(current); }
public void OnPressedButton() { clubManager.StartByGuest(RoomName); PressedButton?.Invoke(this, EventArgs.Empty); }