Ejemplo n.º 1
0
 void Start()
 {
     blackScreen.canvasRenderer.SetAlpha(1f);
     scriptManager = GameObject.FindWithTag("ScriptManager").GetComponent <ScriptManager>();
     deathSpeak    = deathOBJ.GetComponent <TalkToObject>();
     deathMove     = deathOBJ.GetComponent <ObjectMovement>();
     StartCoroutine(cutsceneFade());
     StartCoroutine(deathSpeaks());
     titleText.canvasRenderer.SetAlpha(0f);
     titleImage.canvasRenderer.SetAlpha(0f);
     scriptManager.selectObjects.talkToObject = deathSpeak;
 }
Ejemplo n.º 2
0
    IEnumerator castRay()      //Essentially, this fires a raycast on mouseclick: if it hits an object, if that object is Holdable, or the Player, you'll be able to move that object around with the HoldObjectMovement script. If that object is dialogue, you can talk to it.
    {
        yield return(new WaitUntil(() => Input.GetButton("Fire1") && clickTime == false && scriptManager.playerAnimator.canMove == true));

        StartCoroutine(clickTimer());
        RaycastHit2D hit = Physics2D.GetRayIntersection(cam.ScreenPointToRay(Input.mousePosition));

        StartCoroutine(castRay());
        if (hit.transform.tag == "Player" && isTalking == false)
        {
            scriptManager.holdObjectMovement.heldObject = hit.transform.gameObject;
            scriptManager.holdObjectMovement.HoldObject();
            holdingSelf = true;
        }
        else if (hit.collider != null)
        {
            foreach (Transform child in hit.transform)
            {
                if (child.tag == "Holdable" && isTalking == false && holdingSelf == false)
                {
                    scriptManager.playerAnimator.StartHolding();
                    scriptManager.holdObjectMovement.heldObject = hit.transform.gameObject;
                    scriptManager.holdObjectMovement.HoldObject();
                }
                else if (child.tag == "Dialogue" && holdingSelf == false)
                {
                    talkToObject = hit.collider.GetComponent <TalkToObject>();
                    talkToObject.StartTalking(false);
                }
                else if (child.tag == "DialogueContinue" && talkToObject.talkToCollider.enabled == true && holdingSelf == false) //These objects can continue existing dialogue, but not start new ones. (i.e. text boxes)
                {
                    talkToObject.updateTextBox();
                }
            }
        }
    }
Ejemplo n.º 3
0
    [HideInInspector] public TalkToObject talkToObject; //Simple script. Passes the trigger references to the main talkToObject in order to not interfere with dialogue. Always put on child component.

    void Awake()
    {
        talkToObject = GetComponentInParent <TalkToObject>();
    }