private void AreaDismiss() { _curAreaTime = 0; _explosionArea.gameObject.SetActive(false); _config.CallAreaTimeEvent(_curAreaTime); _touchEffect = ETouchEffect.None; }
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; }
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; } } }