Пример #1
0
    // Update is called once per frame
    void Update()
    {
        if (_inputLock > 0)
        {
            _inputLock -= Time.deltaTime;
        }
        if (Util.IsSwiming)
        {
            if (_isRight)
            {
                bool depolyFishnet = OVRInput.Get(OVRInput.RawButton.RIndexTrigger);
                var  lv            = Util.WeaponLevel;
                switch (lv)
                {
                case 1:
                    _currentfs = FSSmall;
                    break;

                case 2:
                    _currentfs = FSMedium;
                    break;

                case 3:
                    _currentfs = fSBig;
                    break;

                case 4:
                    _currentfs = FSW;
                    break;

                default:
                    _currentfs = null;
                    break;
                }
                if (_currentfs != null && depolyFishnet)
                {
                    _currentfs.SetActive(true);
                }
                else if (_currentfs != null)
                {
                    _currentfs.SetActive(false);
                }
                if (depolyFishnet)
                {
                    if (lv == 0)
                    {
                        var fishes     = Physics.OverlapSphere(ThisObj.transform.position, 0.5f * ThisObj.transform.localScale.x);
                        var realFishes = RemoveBadColliders(fishes);
                        if (realFishes.Count > 0)
                        {
                            int bite = IC.AddFish(realFishes);
                            if (bite > 0)
                            {
                                Util.BleedingTimeLeft = 10.0f * bite;
                                if (!BiteAudio.isPlaying)
                                {
                                    BiteAudio.Play();
                                }
                            }
                        }
                    }
                    else if (lv < 4)
                    {
                        var fishnetCollider = _currentfs.GetComponentInChildren <SphereCollider>();
                        var colliderCenter  = fishnetCollider.transform.position + fishnetCollider.center;
                        var radius          = fishnetCollider.radius * fishnetCollider.transform.localScale.x;
                        var fishes          = Physics.OverlapSphere(colliderCenter, radius);
                        var realFishes      = RemoveBadColliders(fishes);
                        if (realFishes.Count > 0)
                        {
                            int bite = IC.AddFish(realFishes);
                            if (bite > 0)
                            {
                                Util.BleedingTimeLeft = 10.0f * bite;
                                if (!BiteAudio.isPlaying)
                                {
                                    BiteAudio.Play();
                                }
                            }
                        }
                    }
                    else
                    {
                        /**
                         * var fishnetCollider = _currentfs.GetComponentInChildren<SphereCollider>();
                         * var colliderCenter = fishnetCollider.transform.position + fishnetCollider.center;
                         * var radius = fishnetCollider.radius * fishnetCollider.transform.localScale.x;
                         * var fishes = Physics.OverlapSphere(colliderCenter, radius);
                         * var realFishes = RemoveBadColliders(fishes);
                         * if (realFishes.Count > 0)
                         * {
                         *  IC.AddFish(realFishes);
                         * }*/
                        WandCapture();
                    }
                }
                else
                {
                    lineR.SetActive(false);
                }
            }
            return;
        }
        var             cc        = Physics.OverlapSphere(ThisObj.transform.position, 0.5f * ThisObj.transform.localScale.x);
        List <Collider> colliders = RemoveBadColliders(cc);

        bool isPressed =
            OVRInput.Get(_isLeft ? OVRInput.RawButton.LIndexTrigger : OVRInput.RawButton.RIndexTrigger) &&
            !OVRInput.Get(_isLeft ? OVRInput.RawButton.LHandTrigger : OVRInput.RawButton.RHandTrigger);

        if (isPressed)
        {
            _pressTime++;
            if (_pressTime > 1000)
            {
                _pressTime = 2;
            }
        }
        else
        {
            _pressTime = 0;
        }
        _inputLock = isPressed ? _inputLock : 0;

        ResetHighlightedObj();
        HighlightSelectedObj(colliders);


        if (isPressed && _tempMenuSelection != null && _activeCollider != null)
        {
            var deltaX = (ThisObj.transform.position - _lastPointingDirection).x;
            MC.ModifySlider(deltaX / 3, _tempMenuSelection.GetComponent <Button>());
        }
        if (isPressed && _activeCollider != null)
        {
            PressHighlightedObj();
        }
        if (!isPressed)
        {
            if (_tempMenuSelection != null && _activeCollider != null)
            {
                if (_tempMenuSelection == _activeCollider.gameObject)
                {
                    MC.ClickButton(_tempMenuSelection.GetComponent <Button>());
                }
            }
            _tempMenuSelection = null;
        }
        _lastPointingDirection = ThisObj.transform.position;
    }