Ejemplo n.º 1
0
    private void Update()
    {
        RaycastHit hit;
        Vector3    fwd = transform.TransformDirection(Vector3.forward);

        int mask = 1 << LayerMask.NameToLayer(exludeLayerName) | layerMaskInteract.value;

        if (Physics.Raycast(transform.position, fwd, out hit, rayLength, mask))
        {
            if (hit.collider.CompareTag(interactableTagDoor))
            {
                if (!doOnce)
                {
                    raycasted_door = hit.collider.gameObject.GetComponent <KeyDoorController>();
                    CrosshairChange(true);
                }

                isCrosshairActive = true;
                doOnce            = true;

                if (Input.GetKeyDown(openDoorKey))
                {
                    raycasted_door.PlayAnimation();
                }
            }

            else if (hit.collider.CompareTag(interactableTagKey))
            {
                if (!doOnce)
                {
                    CrosshairChange(true);
                    raycastedKey = hit.collider.gameObject;
                }

                isCrosshairActive = true;
                doOnce            = true;

                if (Input.GetKeyDown(openDoorKey))
                {
                    keyInventory.hasSkeletonKey = true;
                    raycastedKey.SetActive(false);
                }
            }
        }

        else
        {
            if (isCrosshairActive)
            {
                CrosshairChange(false);
                doOnce = false;
            }
        }
    }
 private void Start()
 {
     doorObject = GetComponent <KeyDoorController>();
 }