using UnityEngine; using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.SceneManagement; public class PhoneInteraction : MonoBehaviour { public AudioClip phoneCallAudio; // Assign in Inspector public GameObject choiceUI; // Assign your UI Panel in Inspector public Transform attachTransform; // Drag XR Controller's Attach Transform here private AudioSource audioSource; private bool phonePickedUp = false; private bool choiceMade = false; void Start() { // Ensure AudioSource is available if (!TryGetComponent(out audioSource)) { audioSource = gameObject.AddComponent(); } if (phoneCallAudio != null) { audioSource.clip = phoneCallAudio; } choiceUI.SetActive(false); // Hide UI initially } // Public method to be used in XR Grab Interactable's On Select Entered event public void PickUpPhone() { if (!phonePickedUp) { phonePickedUp = true; Debug.Log("Phone Picked Up! Showing UI."); choiceUI.SetActive(true); // Show UI panel // Ensure phone attaches properly if (attachTransform != null) { transform.position = attachTransform.position; transform.rotation = attachTransform.rotation; } } } private void Update() { if (phonePickedUp && !choiceMade) { if (Input.GetKeyDown(KeyCode.A)) { AnswerCall(); } else if (Input.GetKeyDown(KeyCode.B)) { DeclineCall(); } } } // mark : this is whether the player chooses between seeking help/not seeking help // maybe because they were scared or smtg? // we can save this to ask them why they chose this and gather info on this bcos // that time i pitched this to a teacher they were happy // smtg along the lines of the MSF wanting to know how to improve and get people to reach out??? private void AnswerCall() { choiceMade = true; Debug.Log("Phone Answered! Loading GoodEnding..."); choiceUI.SetActive(false); SceneManager.LoadScene("GoodEnding"); } private void DeclineCall() { choiceMade = true; Debug.Log("Call Declined! Loading BadEnding..."); choiceUI.SetActive(false); SceneManager.LoadScene("BadEnding"); } }