protected override void OnTriggerStay(Collider other) { if (other.tag == "Player" && shouldStart && this.enabled) { PlayerMovement playerMovement = other.GetComponent <PlayerMovement>(); simplePlayerMovement sPlayerMovement = other.GetComponent <simplePlayerMovement>(); { if (!dialogueManager.inConvo && !wasCalledThisFrame) { Debug.Log("trigger"); TriggerDialogue(); wasCalledThisFrame = true; StartCoroutine(waitDialogue()); if (playerMovement) { playerMovement.enabled = false; } else { sPlayerMovement.enabled = false; } } else if (Input.GetButtonUp("Interact") && dialogueManager.inConvo && !wasCalledThisFrame) { Debug.Log("displayNext"); dialogueManager.DisplayNextSentence(); wasCalledThisFrame = true; StartCoroutine(waitDialogue()); } if (dialogueManager.inConvo) { Vector3 targetDir = this.transform.position - other.transform.position; Vector3 targetDir2 = other.transform.position - this.transform.position; // The step size is equal to speed times frame time. float step = 2 * Time.deltaTime; Vector3 newDir = Vector3.RotateTowards(other.transform.forward, targetDir, step, 0.0f); Vector3 newDir2 = Vector3.RotateTowards(this.transform.forward, targetDir2, step, 0.0f); newDir = new Vector3(newDir.x, 0, newDir.z); newDir2 = new Vector3(newDir2.x, 0, newDir2.z); // Move our position a step closer to the target. other.transform.rotation = Quaternion.LookRotation(newDir); this.transform.rotation = Quaternion.LookRotation(newDir2); } } } else if (!shouldStart && !called) { Debug.Log("called"); OnTriggerEnd(); called = true; } }
protected virtual void OnTriggerStay(Collider other) { //we can add another if statement here for a layer or tag of game objects you can talk to so we don't do component calls all the time if (other.tag == "Player" && this.enabled) { PlayerMovement playerMovement = other.GetComponent <PlayerMovement>(); simplePlayerMovement sPlayerMovement = other.GetComponent <simplePlayerMovement>(); if (playerMovement || sPlayerMovement) { if (Input.GetButtonDown("Interact") && !dialogueManager.inConvo && !wasCalledThisFrame) { Debug.Log("trigger"); TriggerDialogue(); deleteExclamation(); wasCalledThisFrame = true; StartCoroutine(waitDialogue()); if (playerMovement) { playerMovement.enabled = false; } else { sPlayerMovement.enabled = false; } } else if (Input.GetButtonDown("Interact") && dialogueManager.inConvo && !wasCalledThisFrame) { Debug.Log("displayNext"); dialogueManager.DisplayNextSentence(); wasCalledThisFrame = true; StartCoroutine(waitDialogue()); } if (dialogueManager.inConvo) { Vector3 targetDir = this.transform.position - other.transform.position; Vector3 targetDir2 = other.transform.position - this.transform.position; // The step size is equal to speed times frame time. float step = 2 * Time.deltaTime; Vector3 newDir = Vector3.RotateTowards(other.transform.forward, targetDir, step, 0.0f); Vector3 newDir2 = Vector3.RotateTowards(this.transform.forward, targetDir2, step, 0.0f); newDir = new Vector3(newDir.x, 0, newDir.z); newDir2 = new Vector3(newDir2.x, 0, newDir2.z); // Move our position a step closer to the target. other.transform.rotation = Quaternion.LookRotation(newDir); this.transform.rotation = Quaternion.LookRotation(newDir2); } } } }
public virtual void EndDialogue() { cameraScript.b_offsetPositionDialog = false; cameraScript.f_transitionTime = cameraScript.f_transitionTimeFinal; dialogueBox.gameObject.SetActive(false); Debug.Log("End of conversation."); PlayerMovement playerMovement = player.GetComponent <PlayerMovement>(); simplePlayerMovement sPlayerMovement = player.GetComponent <simplePlayerMovement>(); if (playerMovement || sPlayerMovement) { if (playerMovement) { playerMovement.enabled = true; } else { sPlayerMovement.enabled = true; } } trigger.OnTriggerEnd(); SetTrigger(null); }