Exemple #1
0
 private void AreaDismiss()
 {
     _curAreaTime = 0;
     _explosionArea.gameObject.SetActive(false);
     _config.CallAreaTimeEvent(_curAreaTime);
     _touchEffect = ETouchEffect.None;
 }
Exemple #2
0
    private void Awake()
    {
        _config      = Configurables.Instance;
        _camera      = Camera.main;
        _rayDistance = _camera.farClipPlane;

        _curAreaTime = 0;
        _touchEffect = ETouchEffect.None;
        _firstTouch  = false;

        Input.multiTouchEnabled = false;

        _explosionArea.gameObject.SetActive(false);

        _config.EvnCageChangeSize += OnCageChangeSize;
        _config.EvnForwardEdge    += OnForwardEdge;
        _config.EvnChangeWeapon   += OnChangeWeapon;
    }
Exemple #3
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.R))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }

        if (Input.GetMouseButtonDown(0) && !_firstTouch)
        {
            _firstTouch  = true;
            _touchEffect = ETouchEffect.None;
            Ray ray = _camera.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out var hit, _rayDistance, _touchMask))
            {
                if (hit.transform.CompareTag("Cube"))
                {
                    _selectedCube = hit.transform.GetComponent <ICube>();
                    _touchEffect  = Fire(_selectedCube);
                }
                else
                {
                    Collider[] targetFound = new Collider[1];

                    if (Physics.OverlapSphereNonAlloc(hit.point, 1.0f, targetFound, _layerMask) > 0)
                    {
                        _selectedCube = targetFound[0].GetComponent <ICube>();
                        _touchEffect  = Fire(_selectedCube);
                    }
                    else
                    {
                        if (_weapon != EWeaponType.Normal)
                        {
                            _selectedCube = GetSimpleCube(hit.point);
                            _touchEffect  = Fire(_selectedCube);
                        }
                    }
                }
            }

            //Debug.Log("GetMouseButtonDown: " + _touchEffect);
        }
        else if (Input.GetMouseButtonUp(0) && Input.touchCount < 2)
        {
            _firstTouch = false;

            Debug.Log("GetMouseButtonUp: " + _touchEffect);

            switch (_touchEffect)
            {
            case ETouchEffect.OnRelease:

                Release(_selectedCube);

                break;

            case ETouchEffect.OnHold:

                AreaDismiss();

                break;
            }
        }
        else if (Input.GetMouseButton(0) && _firstTouch)
        {
            switch (_touchEffect)
            {
            case ETouchEffect.OnRelease:

                Hold(_selectedCube);

                break;

            case ETouchEffect.OnHold:

                Hold(_selectedCube);

                break;
            }
        }
    }