コード例 #1
0
        // Update is called once per frame
        private void Update()
        {
            if (Input.GetKeyDown(KeyCode.Escape))
            {
                Application.Quit();
            }
            Vector3?inputPosition = null;

            if (Input.touches.Length == 0 && Input.GetMouseButtonDown(0) && !MainEventSystem.IsPointerOverGameObject())
            {
                inputPosition = Input.mousePosition;
            }
            foreach (var touch in Input.touches)
            {
                if (touch.phase == TouchPhase.Began && !MainEventSystem.IsPointerOverGameObject(touch.fingerId))
                {
                    inputPosition = new Vector3(touch.position.x, touch.position.y, 0);
                    break;
                }
            }

            if (inputPosition != null)
            {
                Ray        camRay = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit floorHit;
                RaycastHit uiHit;

                if (!Physics.Raycast(camRay, out uiHit, Mathf.Infinity, IgnorePlayerSpell) &&
                    Physics.Raycast(camRay, out floorHit, Mathf.Infinity, FloorMask))
                {
                    var floor2Cam  = Camera.main.transform.position - floorHit.point;
                    var instantPos = floorHit.point + floor2Cam.normalized * 15;
                    Spell.Clone(this, ElementController.Instance.GetParticle(Data.GetElement()), Data.GetSpellData(), instantPos,
                                WaveManager.FindClosestMinion(instantPos), null);
                    if (_audioManager)
                    {
                        _audioManager.PlaySpellCastingSound(Data.GetElement());
                    }
                }
                if (_shouldHandleDroppedMage)
                {
                    HandleDroppedMage();
                }
            }

            if (_startedUpgrading1)
            {
                if (_lastUpgradeTime1 > _autoUpgradeInterval1)
                {
                    _lastUpgradeTime1 = 0;
                    UpgradePlayer();
                }
                else
                {
                    _lastUpgradeTime1 += Time.deltaTime;
                }
            }

            if (_startedUpgrading2)
            {
                if (_lastUpgradeTime2 > _autoUpgradeInterval2)
                {
                    _lastUpgradeTime2 = 0;
                    UpgradeIdleGenerated();
                }
                else
                {
                    _lastUpgradeTime2 += Time.deltaTime;
                }
            }

            if (_currencyModifier != 1 && _currencyModifierEndTime < DateTime.Now)
            {
                _currencyModifier = 1;
                UIManager.CloseCurrencyBonus();
            }

            if (_damageModifier != 1 && _damageModifierEndTime < DateTime.Now)
            {
                _damageModifier = 1;
                UIManager.CloseDamageBonus();
            }
        }