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; } }