private void CheckBorders() { if (!GameAreaHelper.IsInGameplayArea(transform, _representation.bounds, Camera.main)) { Destroy(gameObject); } }
protected override void ProcessHandling(MovementSystem movementSystem) { Vector3 transformPosition = transform.position; float positionX = 0; if (_rightBound > transformPosition.x && !_rightScreenBoundFlag) { positionX = Time.deltaTime * -1; float bound = _rightBound - 2; if (bound < transformPosition.x) { _rightScreenBoundFlag = true; } } else if (_leftBound < transformPosition.x && _rightScreenBoundFlag) { positionX = Time.deltaTime; float bound = _leftBound + 2; if (bound > transformPosition.x) { _rightScreenBoundFlag = false; } } if (GameAreaHelper.RestrictLateralMovement(ref transformPosition, positionX, _bounds, _camera)) { movementSystem.LateralMovement(positionX); } else { transform.position = transformPosition; } }
protected override void ProcessHandling(MovementSystem movementSystem) { Vector3 transformPosition = transform.position; float positionX = 0; if (_playerPositionX < transformPosition.x) { positionX = Time.deltaTime; } else { positionX = Time.deltaTime * -1; } if (GameAreaHelper.RestrictLateralMovement(ref transformPosition, positionX, _representation.bounds, Camera.main)) { movementSystem.LateralMovement(positionX); } else { transform.position = transformPosition; } if (!_find) { return; } StartCoroutine(FindPlayerPosition()); }
private void CheckBorders() { if (!GameAreaHelper.IsInGameplayArea(transform, _representation.bounds, Camera.main)) { transform.position = startPoint.transform.position; } }
protected override void ProcessHandling(MovementSystem movementSystem) { var direction = Input.GetAxis("Horizontal"); if (GameAreaHelper.IsPlayerAllowedToMove(transform, _sprite.bounds, direction)) // проверка на возможность двигаться по оси X { movementSystem.LateralMovement(direction * Time.deltaTime); } }
//Кастомное движение объекта protected override void ProcessHandling(MovementSystem movementSystem) { if (!GameAreaHelper.IsAllObjectInGameplayArea(gameObject.transform, _collider2D.bounds)) { _isShipTouchedBorder = !_isShipTouchedBorder; } movementSystem.LongitudinalMovement(Time.deltaTime); movementSystem.LateralMovement(Time.deltaTime, _isShipTouchedBorder); }
//вызываем каждый раз в Update, если нажаты Left/Right arrow или A/D - двигаем корабль //если корабль достигает края экрана, то движение за экран не производим protected override void ProcessHandling(MovementSystem movementSystem) { float movement = Input.GetAxis("Horizontal"); if (GameAreaHelper .IsAvailableForLateralMovement(this.transform, _representation.bounds, movement)) { movementSystem.LateralMovement(movement * Time.deltaTime); } }
private SpriteRenderer _representation; //reference to the moving object sprite protected override void Move(float amount, Vector3 axis) { // Only move if new position is in gemeply area (including bounds) var newPosition = transform.position + transform.TransformVector(amount * axis.normalized); if (!GameAreaHelper.IsInGameplayArea(newPosition, _representation.bounds, true)) { return; } transform.position = newPosition; }
//обработка горизонтального движения protected override void ProcessHandling(MovementSystem movementSystem) { Vector3 oldPosition = gameObject.transform.position; movementSystem.LateralMovement(Input.GetAxis("Horizontal") * Time.deltaTime * _playerSpaceship.CurrentSpeed); if (!GameAreaHelper.IsAllObjectInGameplayArea(transform, _objectCollider.bounds)) { gameObject.transform.position = oldPosition; } }
protected override void ProcessCheckBorders(UnitBattleIdentity identity) { if (identity != UnitBattleIdentity.Enemy) { return; } if (GameAreaHelper.CheckPlayArea(transform, _hull.bounds)) { _spaceShip.HealthSystem.Die(); } }
private IEnumerator Spawn() { yield return(new WaitForSeconds(Random.Range(_spawnDelayRange.x, _spawnDelayRange.y))); while (true) { GameObject spawnedObject = _objectList[Random.Range(0, _objectList.Count)]; float randomMove = 0f; if (_randomPosition) { randomMove = Random.Range(GameAreaHelper.GetHorizontalCameraBounds().x, GameAreaHelper.GetHorizontalCameraBounds().y); } Instantiate(spawnedObject, transform.position + new Vector3(randomMove, 0f, 0f), transform.rotation, _parent); yield return(new WaitForSeconds(Random.Range(_spawnPeriodRange.x, _spawnPeriodRange.y))); } }
protected override void ProcessCheckBorders(UnitBattleIdentity identity) { if (identity != UnitBattleIdentity.Player) { return; } if (GameAreaHelper.CheckBorders(transform) < 0) { transform.position = new Vector2(GameAreaHelper.LeftBound, transform.position.y); } if (GameAreaHelper.CheckBorders(transform) > 0) { transform.position = new Vector2(GameAreaHelper.RightBound, transform.position.y); } }
protected override void ProcessHandling(MovementSystem movementSystem) { if (_userControl == null) { return; } float positionX = _userControl.X * Time.deltaTime; Vector3 transformPosition = transform.position; if (GameAreaHelper.RestrictLateralMovement(ref transformPosition, positionX, _representation.bounds, Camera.main)) { movementSystem.LateralMovement(positionX); } else { transform.position = transformPosition; } }
protected override void ProcessHandling(MovementSystem movementSystem) { var move = new Vector3(inputStrategy.GetHorizontalMove(Camera.main.WorldToScreenPoint(transform.position).x) * Time.deltaTime, 0, 0); if (GameAreaHelper.IsInGameplayAreaFull(transform, _representation.bounds)) { lastPosition = transform.position; movementSystem.LateralMovement(move.x); } else { transform.position = lastPosition; } if (inputStrategy.IsStrategySwitchedPressed(out InputStrategy newStrategy)) { inputStrategy = newStrategy; } }
// Start is called before the first frame update void Start() { GameAreaHelper.NewSceneInit(); }