protected Vector3 TrajecoryHorizontalPoint(Vector3Range range)
        {
            var origin = range.defaultValue;
            var min    = range.min;
            var max    = range.max;

            return(new Vector3
                       (Random.Range(min.x, max.x), origin.y,
                       Random.Range(min.z, max.z)));
        }
        /// <summary>
        /// Randomly get trajectory points in range
        /// Geerate randomized trajectory points and calculate velocity on spawn
        /// </summary>
        protected virtual TrajectoryPoints RandomizeTrajectory
            (Vector3Range range)
        {
            var points = new TrajectoryPoints();

            points.start = TrajecoryHorizontalPoint(range);
            points.end   = TrajecoryHorizontalPoint(range);
            points.top   = TrajecoryVerticalPoint(points, range);
            return(points);
        }
        protected Vector3 TrajecoryVerticalPoint
            (TrajectoryPoints points, Vector3Range range)
        {
            var origin = range.defaultValue;
            var min    = range.min;
            var max    = range.max;

            return(new Vector3
                       ((points.start.x + points.end.x) / 2.0f,
                       Random.Range(min.y, max.y),
                       (points.start.z + points.end.z) / 2.0f));
        }
예제 #4
0
        /// <summary>
        /// Set constrained value to default value
        /// </summary>
        protected virtual Vector3 Constrain
            (Vector3Range range, Vector3 unconstrained)
        {
            var constrained = unconstrained;

            if (range.constrainX)
            {
                constrained.x = range.defaultValue.x;
            }
            if (range.constrainY)
            {
                constrained.y = range.defaultValue.y;
            }
            if (range.constrainZ)
            {
                constrained.z = range.defaultValue.z;
            }
            return(constrained);
        }
        /// <summary>
        /// Randomly get constrained vector3 in range
        /// </summary>
        protected virtual Vector3 MinMaxConstrained(Vector3Range range)
        {
            var randomizedValue = RandomMinMax(range);

            return(Constrain(range, randomizedValue));
        }
 protected virtual Vector3 RandomMinMax(Vector3Range range)
 {
     return(RandomMinMax(range.min, range.max));
 }