private void SetRayPerimeter() { _rayPerimeter = new RayPerimeter( _rightBottomRayPoint.transform.position, _rightTopRayPoint.transform.position, _leftBottomRayPoint.transform.position, _leftTopRayPoint.transform.position, _topRightRayPoint.transform.position, _topLeftRayPoint.transform.position, _bottomRightRayPoint.transform.position, _bottomLeftRayPoint.transform.position); }
public Vector3 Move(bool drawRay, RayPerimeter rayPerimeter) { var force = CurrentVector * ghostSpeed * Time.deltaTime; var position = rayPerimeter.GetRayPoint(CurrentDirection); if (CastRay(position.one.Position, force, drawRay) || CastRay(position.two.Position, force, drawRay)) { Stop(true); _currentTimer = 0; ApplyDirection(rayPerimeter, position); } else { _currentTimer += Time.deltaTime; if (_currentTimer >= _timeToCahngeDirection) { _currentTimer = 0; ApplyDirection(rayPerimeter, position); } } return(force); }
private (RayPoint one, RayPoint two) ApplyDirection(RayPerimeter rayPerimeter, (RayPoint one, RayPoint two) position)