Пример #1
0
    private void UpdateCamera()
    {
        if (ongui)
        {
            return;
        }
        RaycastHit h;
        var        screenPointToRay = camera.ScreenPointToRay(Input.mousePosition);


        if (_ObsCamera.spec)
        {
            mouseDir = camera.transform.forward;
            if (Physics.Raycast(screenPointToRay, out h, 20, 1 << (int)Layer.Level | 1 << (int)Layer.Enemy))
            {
                mousePos = ZeroY(h.point);
                _ObsCamera.transform.LookAt(h.point);
            }
            else
            {
                mousePos = ZeroY(_ObsCamera.camT.position + mouseDir * 10);
            }
        }
        else
        {
            plane.collider.Raycast(screenPointToRay, out h, 1000);
            mousePos = ZeroY(h.point);
            mouseDir = ZeroY(h.point - upPos).normalized;
        }
        MouseOverEnemy = null;
        foreach (var a in _Game.zombies)
        {
            if (a.alive)
            {
                float m = 2;
                if ((mousePos - a.upPos).magnitude < m)
                {
                    m = (mousePos - a.pos).magnitude;
                    MouseOverEnemy = a;
                }
            }
        }
        if (Physics.Raycast(screenPointToRay, out h, 100, 1 << (int)Layer.Coin))
        {
            var coin = h.transform.root.GetComponent <DroppedItem>();
            if (coin != null)
            {
                coin.Shine(true);
                MouseOverItem = coin;
            }
        }
        else
        {
            if (MouseOverItem != null)
            {
                MouseOverItem.Shine(false);
                MouseOverItem = null;
            }
        }
        if (Input.GetKeyDown(KeyCode.Mouse0) && MouseOverItem != null)
        {
            oldMouse0 = false;
            foreach (Slot a in _Game.inventorySlots)
            {
                if (a.item == null)
                {
                    a.item = MouseOverItem.item;
                    Destroy(MouseOverItem.gameObject);
                    break;
                }
            }
        }
        _Hud.progressBar.gameObject.SetActive(MouseOverEnemy);
        if (MouseOverEnemy)
        {
            _Hud.progressBarTitle.text   = MouseOverEnemy.name;
            _Hud.progressBarTitle2.text  = MouseOverEnemy.modelGroup.ToString();
            _Hud.progressBar.sliderValue = (float)MouseOverEnemy.life / MouseOverEnemy.maxlife;
        }
    }