Пример #1
0
    void Update()
    {
        RaycastHit hitInfo;
        Ray        cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
        bool       hit       = Physics.Raycast(cameraRay, out hitInfo, Mathf.Infinity, layerMask, QueryTriggerInteraction.Ignore);

        CabinetCollider collider = null;

        if (hit && (Time.time - lastActionTime) >= actionCooldown)
        {
            collider = hitInfo.collider.GetComponent <CabinetCollider>();
        }

        if (collider?.cabinet != hoveredCabinet)
        {
            if (collider?.cabinet != null)
            {
                collider.cabinet.SetHover(true);
            }

            if (hoveredCabinet != null)
            {
                hoveredCabinet.SetHover(false);
            }

            hoveredCabinet = collider?.cabinet;
        }

        if (Input.GetMouseButtonDown(0) && hoveredCabinet != null && (Time.time - lastActionTime) >= actionCooldown)
        {
            hoveredCabinet.DoOpen();
            lastActionTime = Time.time;
            var savedCabinet = hoveredCabinet;
            Util.ExecuteAfter(applyTime, this, () =>
            {
                if (houseBuildManager.ApplyItem(savedCabinet.GetItem(), Reenable))
                {
                    this.enabled = false;
                }
            });
        }

        if (Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.RightArrow))
        {
            AdvanceVcam(1);
        }
        else if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.LeftArrow))
        {
            AdvanceVcam(-1);
        }

        if (cheatSequence.CheckCheat())
        {
            houseBuildManager.CheatHouseComplete(true);
        }
        else if (timeoutSequence.CheckCheat())
        {
            houseBuildManager.CheatHouseComplete(false);
        }
    }