コード例 #1
0
 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);
 }
コード例 #2
0
    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);
    }
コード例 #3
0
 private (RayPoint one, RayPoint two) ApplyDirection(RayPerimeter rayPerimeter,
                                                     (RayPoint one, RayPoint two) position)